blob: 545bc95007234d2d46250a330692dd7307bc5228 [file] [log] [blame]
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +05301#ifndef __WINBOND_35RX_S_H
2#define __WINBOND_35RX_S_H
Pavel Machek66101de2008-10-01 14:36:56 +02003
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +05304/* Definition for this module used */
5#define MAX_USB_RX_BUFFER 4096 /* This parameter must be 4096 931130.4.f */
6#define MAX_USB_RX_BUFFER_NUMBER ETHERNET_RX_DESCRIPTORS /* Maximum 254, 255 is RESERVED ID */
7#define RX_INTERFACE 0 /* Interface 1 */
8#define RX_PIPE 2 /* Pipe 3 */
9#define MAX_PACKET_SIZE 1600 /* 1568 = 8 + 1532 + 4 + 24(IV EIV MIC ICV CRC) for check DMA data 931130.4.g */
10#define RX_END_TAG 0x0badbeef
Pavel Machek66101de2008-10-01 14:36:56 +020011
12
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +053013/*
14 * Internal variable for module
15 */
Pekka Enbergeb62f3e2009-01-08 18:32:14 +020016struct wb35_rx {
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +053017 u32 ByteReceived; /* For calculating throughput of BulkIn */
18 atomic_t RxFireCounter;/* Does Wb35Rx module fire? */
Pavel Machek66101de2008-10-01 14:36:56 +020019
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +053020 u8 RxBuffer[MAX_USB_RX_BUFFER_NUMBER][((MAX_USB_RX_BUFFER+3) & ~0x03)];
21 u16 RxBufferSize[((MAX_USB_RX_BUFFER_NUMBER+1) & ~0x01)];
22 u8 RxOwner[((MAX_USB_RX_BUFFER_NUMBER+3) & ~0x03)]; /* Ownership of buffer 0:SW 1:HW */
Pavel Machek66101de2008-10-01 14:36:56 +020023
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +053024 u32 RxProcessIndex; /* The next index to process */
25 u32 RxBufferId;
26 u32 EP3vm_state;
Pavel Machek66101de2008-10-01 14:36:56 +020027
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +053028 u32 rx_halt; /* For VM stopping */
Pavel Machek66101de2008-10-01 14:36:56 +020029
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +053030 u16 MoreDataSize;
31 u16 PacketSize;
Pavel Machek66101de2008-10-01 14:36:56 +020032
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +053033 u32 CurrentRxBufferId; /* For complete routine usage */
34 u32 Rx3UrbCancel;
Pavel Machek66101de2008-10-01 14:36:56 +020035
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +053036 u32 LastR1; /* For RSSI reporting */
37 struct urb *RxUrb;
38 u32 Ep3ErrorCount2; /* 20060625.1 Usbd for Rx DMA error count */
Pavel Machek66101de2008-10-01 14:36:56 +020039
40 int EP3VM_status;
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +053041 u8 *pDRx;
Pekka Enbergeb62f3e2009-01-08 18:32:14 +020042};
Adil Mujeeb3d20e8e2012-11-08 00:20:03 +053043
44#endif /* __WINBOND_35RX_S_H */