![Vijay Kumar](/assets/img/avatar_default.png)
This is the first cut at a driver for the Redrapids Pocket Change CardBus devices. Receiving data seems to work properly, but overflows happen on transmit. Still needs more hardware debugging to work properly. (cleaned up to use proper driver core api functions by Greg) From: Vijay Kumar <vijaykumar@bravegnu.org> Cc: Alexey Zaytsev <alexey.zaytsev@gmail.com> Cc: Jaya Kumar <jayakumar.lkml@gmail.com> Cc: Ken Sienski <sienski@redrapids.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
30 lines
768 B
C
30 lines
768 B
C
/*
|
|
* User-space DMA and UIO based Redrapids Pocket Change CardBus driver
|
|
*
|
|
* Copyright 2008 Vijay Kumar <vijaykumar@bravegnu.org>
|
|
*
|
|
* Part of userspace API. Should be moved to a header file in
|
|
* include/linux for final version.
|
|
*
|
|
*/
|
|
struct poch_cbuf_header {
|
|
__s32 group_size_bytes;
|
|
__s32 group_count;
|
|
__s32 group_offsets[0];
|
|
};
|
|
|
|
struct poch_counters {
|
|
__u32 fifo_empty;
|
|
__u32 fifo_overflow;
|
|
__u32 pll_unlock;
|
|
};
|
|
|
|
#define POCH_IOC_NUM '9'
|
|
|
|
#define POCH_IOC_TRANSFER_START _IO(POCH_IOC_NUM, 0)
|
|
#define POCH_IOC_TRANSFER_STOP _IO(POCH_IOC_NUM, 1)
|
|
#define POCH_IOC_GET_COUNTERS _IOR(POCH_IOC_NUM, 2, \
|
|
struct poch_counters)
|
|
#define POCH_IOC_SYNC_GROUP_FOR_USER _IO(POCH_IOC_NUM, 3)
|
|
#define POCH_IOC_SYNC_GROUP_FOR_DEVICE _IO(POCH_IOC_NUM, 4)
|