Loading...
1/*
2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3 * All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 *
20 * File: usbpipe.h
21 *
22 * Purpose:
23 *
24 * Author: Warren Hsu
25 *
26 * Date: Mar. 30, 2005
27 *
28 */
29
30#ifndef __USBPIPE_H__
31#define __USBPIPE_H__
32
33#include "ttype.h"
34#include "device.h"
35
36/*--------------------- Export Definitions -------------------------*/
37
38/*--------------------- Export Classes ----------------------------*/
39
40/*--------------------- Export Variables --------------------------*/
41
42/*--------------------- Export Functions --------------------------*/
43
44int PIPEnsControlOut(
45 PSDevice pDevice,
46 BYTE byRequest,
47 WORD wValue,
48 WORD wIndex,
49 WORD wLength,
50 PBYTE pbyBuffer
51 );
52
53int PIPEnsControlOutAsyn(
54 PSDevice pDevice,
55 BYTE byRequest,
56 WORD wValue,
57 WORD wIndex,
58 WORD wLength,
59 PBYTE pbyBuffer
60 );
61
62int PIPEnsControlIn(
63 PSDevice pDevice,
64 BYTE byRequest,
65 WORD wValue,
66 WORD wIndex,
67 WORD wLength,
68 PBYTE pbyBuffer
69 );
70
71int PIPEnsInterruptRead(PSDevice pDevice);
72int PIPEnsBulkInUsbRead(PSDevice pDevice, PRCB pRCB);
73int PIPEnsSendBulkOut(PSDevice pDevice, PUSB_SEND_CONTEXT pContext);
74
75#endif /* __USBPIPE_H__ */
1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
4 * All rights reserved.
5 *
6 * File: usbpipe.h
7 *
8 * Purpose:
9 *
10 * Author: Warren Hsu
11 *
12 * Date: Mar. 30, 2005
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
44struct vnt_tx_usb_header {
45 u8 type;
46 u8 pkt_no;
47 __le16 tx_byte_count;
48} __packed;
49
50#define VNT_REG_BLOCK_SIZE 64
51
52int vnt_control_out(struct vnt_private *priv, u8 request, u16 value,
53 u16 index, u16 length, const u8 *buffer);
54int vnt_control_in(struct vnt_private *priv, u8 request, u16 value,
55 u16 index, u16 length, u8 *buffer);
56
57int vnt_control_out_u8(struct vnt_private *priv, u8 reg, u8 ref_off, u8 data);
58int vnt_control_in_u8(struct vnt_private *priv, u8 reg, u8 reg_off, u8 *data);
59
60int vnt_control_out_blocks(struct vnt_private *priv,
61 u16 block, u8 reg, u16 len, const u8 *data);
62
63int vnt_start_interrupt_urb(struct vnt_private *priv);
64int vnt_submit_rx_urb(struct vnt_private *priv, struct vnt_rcb *rcb);
65int vnt_tx_context(struct vnt_private *priv,
66 struct vnt_usb_send_context *context,
67 struct sk_buff *skb);
68
69#endif /* __USBPIPE_H__ */