diff options
Diffstat (limited to 'drivers/staging/vt6656/usbpipe.h')
-rw-r--r-- | drivers/staging/vt6656/usbpipe.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/drivers/staging/vt6656/usbpipe.h b/drivers/staging/vt6656/usbpipe.h new file mode 100644 index 0000000000..922312e299 --- /dev/null +++ b/drivers/staging/vt6656/usbpipe.h @@ -0,0 +1,67 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. + * All rights reserved. + * + * Purpose: + * + * Author: Warren Hsu + * + * Date: Mar. 30, 2005 + * + */ + +#ifndef __USBPIPE_H__ +#define __USBPIPE_H__ + +#include "device.h" + +struct vnt_interrupt_data { + u8 tsr0; + u8 pkt0; + u16 time0; + u8 tsr1; + u8 pkt1; + u16 time1; + u8 tsr2; + u8 pkt2; + u16 time2; + u8 tsr3; + u8 pkt3; + u16 time3; + __le64 tsf; + u8 isr0; + u8 isr1; + u8 rts_success; + u8 rts_fail; + u8 ack_fail; + u8 fcs_err; + u8 sw[2]; +} __packed; + +struct vnt_tx_usb_header { + u8 type; + u8 pkt_no; + __le16 tx_byte_count; +} __packed; + +#define VNT_REG_BLOCK_SIZE 64 + +int vnt_control_out(struct vnt_private *priv, u8 request, u16 value, + u16 index, u16 length, const u8 *buffer); +int vnt_control_in(struct vnt_private *priv, u8 request, u16 value, + u16 index, u16 length, u8 *buffer); + +int vnt_control_out_u8(struct vnt_private *priv, u8 reg, u8 ref_off, u8 data); +int vnt_control_in_u8(struct vnt_private *priv, u8 reg, u8 reg_off, u8 *data); + +int vnt_control_out_blocks(struct vnt_private *priv, + u16 block, u8 reg, u16 len, const u8 *data); + +int vnt_start_interrupt_urb(struct vnt_private *priv); +int vnt_submit_rx_urb(struct vnt_private *priv, struct vnt_rcb *rcb); +int vnt_tx_context(struct vnt_private *priv, + struct vnt_usb_send_context *context, + struct sk_buff *skb); + +#endif /* __USBPIPE_H__ */ |