aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/winbond/wb35tx_s.h
blob: 715f87d6ac5bc2005e80a5ed136ab193dc3c9cd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef __WINBOND_WB35_TX_S_H
#define __WINBOND_WB35_TX_S_H

#include "mds_s.h"

/* IS89C35 Tx related definition */
#define TX_INTERFACE		0	/* Interface 1 */
#define TX_PIPE			3	/* Endpoint 4 */
#define TX_INTERRUPT		1	/* Endpoint 2 */
#define MAX_INTERRUPT_LENGTH	64	/* It must be 64 for EP2 hardware */

/* Internal variable for module */
struct wb35_tx {
	/* For Tx buffer */
	u8	TxBuffer[ MAX_USB_TX_BUFFER_NUMBER ][ MAX_USB_TX_BUFFER ];

	/* For Interrupt pipe */
	u8	EP2_buf[MAX_INTERRUPT_LENGTH];

	atomic_t	TxResultCount; /* For thread control of EP2 931130.4.m */
	atomic_t	TxFireCounter; /* For thread control of EP4 931130.4.n */
	u32		ByteTransfer;

	u32	TxSendIndex; /* The next index of Mds array to be sent */
	u32	EP2vm_state; /* for EP2vm state */
	u32	EP4vm_state; /* for EP4vm state */
	u32	tx_halt; /* Stopping VM */

	struct urb	*Tx4Urb;
	struct urb	*Tx2Urb;

	int		EP2VM_status;
	int		EP4VM_status;

	u32	TxFillCount; /* 20060928 */
	u32	TxTimer; /* 20060928 Add if sending packet is greater than 13 */
};

#endif