blob: f70f4339559155a4d1942095c63a443909965e4c [file] [log] [blame]
Pekka Enberg80aba532008-10-30 13:04:29 +02001#ifndef __WINBOND_WB35_TX_S_H
2#define __WINBOND_WB35_TX_S_H
3
Pekka Enberg9ce922f2008-10-30 13:05:42 +02004#include "mds_s.h"
Pekka Enberg80aba532008-10-30 13:04:29 +02005
Pavel Machek66101de2008-10-01 14:36:56 +02006//====================================
7// IS89C35 Tx related definition
8//====================================
9#define TX_INTERFACE 0 // Interface 1
10#define TX_PIPE 3 // endpoint 4
11#define TX_INTERRUPT 1 // endpoint 2
12#define MAX_INTERRUPT_LENGTH 64 // It must be 64 for EP2 hardware
13
14
15
16//====================================
17// Internal variable for module
18//====================================
19
20
Pekka Enbergeb62f3e2009-01-08 18:32:14 +020021struct wb35_tx {
Pavel Machek66101de2008-10-01 14:36:56 +020022 // For Tx buffer
23 u8 TxBuffer[ MAX_USB_TX_BUFFER_NUMBER ][ MAX_USB_TX_BUFFER ];
24
25 // For Interrupt pipe
26 u8 EP2_buf[MAX_INTERRUPT_LENGTH];
27
Pekka Enberg44e85412008-10-29 20:10:32 +020028 atomic_t TxResultCount;// For thread control of EP2 931130.4.m
29 atomic_t TxFireCounter;// For thread control of EP4 931130.4.n
Pavel Machek66101de2008-10-01 14:36:56 +020030 u32 ByteTransfer;
31
32 u32 TxSendIndex;// The next index of Mds array to be sent
33 u32 EP2vm_state; // for EP2vm state
34 u32 EP4vm_state; // for EP4vm state
35 u32 tx_halt; // Stopping VM
36
37 struct urb * Tx4Urb;
38 struct urb * Tx2Urb;
39
40 int EP2VM_status;
41 int EP4VM_status;
42
43 u32 TxFillCount; // 20060928
44 u32 TxTimer; // 20060928 Add if sending packet not great than 13
Pekka Enbergeb62f3e2009-01-08 18:32:14 +020045};
Pavel Machek66101de2008-10-01 14:36:56 +020046
Pekka Enberg80aba532008-10-30 13:04:29 +020047#endif