~ubuntu-branches/ubuntu/natty/linux-backports-modules-2.6.38/natty-proposed

« back to all changes in this revision

Viewing changes to updates/cw-2.6.39/drivers/net/wireless/ath/ath9k/hif_usb.h

  • Committer: Bazaar Package Importer
  • Author(s): Tim Gardner, Tim Gardner
  • Date: 2011-06-08 10:44:09 UTC
  • Revision ID: james.westby@ubuntu.com-20110608104409-fnl8carkdo15bwsz
Tags: 2.6.38-10.6
[ Tim Gardner ]

Shorten compat-wireless package name to cw to accomodate
CDROM file name length restrictions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2010 Atheros Communications Inc.
 
3
 *
 
4
 * Permission to use, copy, modify, and/or distribute this software for any
 
5
 * purpose with or without fee is hereby granted, provided that the above
 
6
 * copyright notice and this permission notice appear in all copies.
 
7
 *
 
8
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 
9
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 
10
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 
11
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 
12
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 
13
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 
14
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
15
 */
 
16
 
 
17
#ifndef HTC_USB_H
 
18
#define HTC_USB_H
 
19
 
 
20
#define IS_AR7010_DEVICE(_v) (((_v) == AR9280_USB) || ((_v) == AR9287_USB))
 
21
 
 
22
#define AR9271_FIRMWARE       0x501000
 
23
#define AR9271_FIRMWARE_TEXT  0x903000
 
24
#define AR7010_FIRMWARE_TEXT  0x906000
 
25
 
 
26
#define FIRMWARE_DOWNLOAD       0x30
 
27
#define FIRMWARE_DOWNLOAD_COMP  0x31
 
28
 
 
29
#define ATH_USB_RX_STREAM_MODE_TAG 0x4e00
 
30
#define ATH_USB_TX_STREAM_MODE_TAG 0x697e
 
31
 
 
32
/* FIXME: Verify these numbers (with Windows) */
 
33
#define MAX_TX_URB_NUM  8
 
34
#define MAX_TX_BUF_NUM  1024
 
35
#define MAX_TX_BUF_SIZE 32768
 
36
#define MAX_TX_AGGR_NUM 20
 
37
 
 
38
#define MAX_RX_URB_NUM  8
 
39
#define MAX_RX_BUF_SIZE 16384
 
40
#define MAX_PKT_NUM_IN_TRANSFER 10
 
41
 
 
42
#define MAX_REG_OUT_URB_NUM  1
 
43
#define MAX_REG_OUT_BUF_NUM  8
 
44
 
 
45
#define MAX_REG_IN_BUF_SIZE 64
 
46
 
 
47
/* USB Endpoint definition */
 
48
#define USB_WLAN_TX_PIPE  1
 
49
#define USB_WLAN_RX_PIPE  2
 
50
#define USB_REG_IN_PIPE   3
 
51
#define USB_REG_OUT_PIPE  4
 
52
 
 
53
#define HIF_USB_MAX_RXPIPES 2
 
54
#define HIF_USB_MAX_TXPIPES 4
 
55
 
 
56
struct tx_buf {
 
57
        u8 *buf;
 
58
        u16 len;
 
59
        u16 offset;
 
60
        struct urb *urb;
 
61
        struct sk_buff_head skb_queue;
 
62
        struct hif_device_usb *hif_dev;
 
63
        struct list_head list;
 
64
};
 
65
 
 
66
#define HIF_USB_TX_STOP  BIT(0)
 
67
#define HIF_USB_TX_FLUSH BIT(1)
 
68
 
 
69
struct hif_usb_tx {
 
70
        u8 flags;
 
71
        u8 tx_buf_cnt;
 
72
        u16 tx_skb_cnt;
 
73
        struct sk_buff_head tx_skb_queue;
 
74
        struct list_head tx_buf;
 
75
        struct list_head tx_pending;
 
76
        spinlock_t tx_lock;
 
77
};
 
78
 
 
79
struct cmd_buf {
 
80
        struct sk_buff *skb;
 
81
        struct hif_device_usb *hif_dev;
 
82
};
 
83
 
 
84
#define HIF_USB_START BIT(0)
 
85
 
 
86
struct hif_device_usb {
 
87
        u16 device_id;
 
88
        struct usb_device *udev;
 
89
        struct usb_interface *interface;
 
90
        const struct firmware *firmware;
 
91
        struct htc_target *htc_handle;
 
92
        struct hif_usb_tx tx;
 
93
        struct urb *reg_in_urb;
 
94
        struct usb_anchor regout_submitted;
 
95
        struct usb_anchor rx_submitted;
 
96
        struct sk_buff *remain_skb;
 
97
        const char *fw_name;
 
98
        int rx_remain_len;
 
99
        int rx_pkt_len;
 
100
        int rx_transfer_len;
 
101
        int rx_pad_len;
 
102
        spinlock_t rx_lock;
 
103
        u8 flags; /* HIF_USB_* */
 
104
};
 
105
 
 
106
int ath9k_hif_usb_init(void);
 
107
void ath9k_hif_usb_exit(void);
 
108
 
 
109
#endif /* HTC_USB_H */