1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16#ifndef __USBPIPE_H__
17#define __USBPIPE_H__
18
19#include "device.h"
20
21struct vnt_interrupt_data {
22 u8 tsr0;
23 u8 pkt0;
24 u16 time0;
25 u8 tsr1;
26 u8 pkt1;
27 u16 time1;
28 u8 tsr2;
29 u8 pkt2;
30 u16 time2;
31 u8 tsr3;
32 u8 pkt3;
33 u16 time3;
34 __le64 tsf;
35 u8 isr0;
36 u8 isr1;
37 u8 rts_success;
38 u8 rts_fail;
39 u8 ack_fail;
40 u8 fcs_err;
41 u8 sw[2];
42} __packed;
43
44#define VNT_REG_BLOCK_SIZE 64
45
46int vnt_control_out(struct vnt_private *priv, u8 request, u16 value,
47 u16 index, u16 length, const u8 *buffer);
48int vnt_control_in(struct vnt_private *priv, u8 request, u16 value,
49 u16 index, u16 length, u8 *buffer);
50
51int vnt_control_out_u8(struct vnt_private *priv, u8 reg, u8 ref_off, u8 data);
52int vnt_control_in_u8(struct vnt_private *priv, u8 reg, u8 reg_off, u8 *data);
53
54int vnt_control_out_blocks(struct vnt_private *priv,
55 u16 block, u8 reg, u16 len, u8 *data);
56
57int vnt_start_interrupt_urb(struct vnt_private *priv);
58int vnt_submit_rx_urb(struct vnt_private *priv, struct vnt_rcb *rcb);
59int vnt_tx_context(struct vnt_private *priv,
60 struct vnt_usb_send_context *context);
61
62#endif
63