/* 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__ */