0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef __USBPIPE_H__
0015 #define __USBPIPE_H__
0016
0017 #include "device.h"
0018
0019 struct vnt_interrupt_data {
0020 u8 tsr0;
0021 u8 pkt0;
0022 u16 time0;
0023 u8 tsr1;
0024 u8 pkt1;
0025 u16 time1;
0026 u8 tsr2;
0027 u8 pkt2;
0028 u16 time2;
0029 u8 tsr3;
0030 u8 pkt3;
0031 u16 time3;
0032 __le64 tsf;
0033 u8 isr0;
0034 u8 isr1;
0035 u8 rts_success;
0036 u8 rts_fail;
0037 u8 ack_fail;
0038 u8 fcs_err;
0039 u8 sw[2];
0040 } __packed;
0041
0042 struct vnt_tx_usb_header {
0043 u8 type;
0044 u8 pkt_no;
0045 __le16 tx_byte_count;
0046 } __packed;
0047
0048 #define VNT_REG_BLOCK_SIZE 64
0049
0050 int vnt_control_out(struct vnt_private *priv, u8 request, u16 value,
0051 u16 index, u16 length, const u8 *buffer);
0052 int vnt_control_in(struct vnt_private *priv, u8 request, u16 value,
0053 u16 index, u16 length, u8 *buffer);
0054
0055 int vnt_control_out_u8(struct vnt_private *priv, u8 reg, u8 ref_off, u8 data);
0056 int vnt_control_in_u8(struct vnt_private *priv, u8 reg, u8 reg_off, u8 *data);
0057
0058 int vnt_control_out_blocks(struct vnt_private *priv,
0059 u16 block, u8 reg, u16 len, const u8 *data);
0060
0061 int vnt_start_interrupt_urb(struct vnt_private *priv);
0062 int vnt_submit_rx_urb(struct vnt_private *priv, struct vnt_rcb *rcb);
0063 int vnt_tx_context(struct vnt_private *priv,
0064 struct vnt_usb_send_context *context,
0065 struct sk_buff *skb);
0066
0067 #endif