~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/rtl818x/rtl8180/rtl8180.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
#ifndef RTL8180_H
 
2
#define RTL8180_H
 
3
 
 
4
#include "rtl818x.h"
 
5
 
 
6
#define MAX_RX_SIZE IEEE80211_MAX_RTS_THRESHOLD
 
7
 
 
8
#define RF_PARAM_ANALOGPHY      (1 << 0)
 
9
#define RF_PARAM_ANTBDEFAULT    (1 << 1)
 
10
#define RF_PARAM_CARRIERSENSE1  (1 << 2)
 
11
#define RF_PARAM_CARRIERSENSE2  (1 << 3)
 
12
 
 
13
#define BB_ANTATTEN_CHAN14      0x0C
 
14
#define BB_ANTENNA_B            0x40
 
15
 
 
16
#define BB_HOST_BANG            (1 << 30)
 
17
#define BB_HOST_BANG_EN         (1 << 2)
 
18
#define BB_HOST_BANG_CLK        (1 << 1)
 
19
#define BB_HOST_BANG_DATA       1
 
20
 
 
21
#define ANAPARAM_TXDACOFF_SHIFT 27
 
22
#define ANAPARAM_PWR0_SHIFT     28
 
23
#define ANAPARAM_PWR0_MASK      (0x07 << ANAPARAM_PWR0_SHIFT)
 
24
#define ANAPARAM_PWR1_SHIFT     20
 
25
#define ANAPARAM_PWR1_MASK      (0x7F << ANAPARAM_PWR1_SHIFT)
 
26
 
 
27
struct rtl8180_tx_desc {
 
28
        __le32 flags;
 
29
        __le16 rts_duration;
 
30
        __le16 plcp_len;
 
31
        __le32 tx_buf;
 
32
        __le32 frame_len;
 
33
        __le32 next_tx_desc;
 
34
        u8 cw;
 
35
        u8 retry_limit;
 
36
        u8 agc;
 
37
        u8 flags2;
 
38
        u32 reserved[2];
 
39
} __packed;
 
40
 
 
41
struct rtl8180_rx_desc {
 
42
        __le32 flags;
 
43
        __le32 flags2;
 
44
        union {
 
45
                __le32 rx_buf;
 
46
                __le64 tsft;
 
47
        };
 
48
} __packed;
 
49
 
 
50
struct rtl8180_tx_ring {
 
51
        struct rtl8180_tx_desc *desc;
 
52
        dma_addr_t dma;
 
53
        unsigned int idx;
 
54
        unsigned int entries;
 
55
        struct sk_buff_head queue;
 
56
};
 
57
 
 
58
struct rtl8180_vif {
 
59
        struct ieee80211_hw *dev;
 
60
 
 
61
        /* beaconing */
 
62
        struct delayed_work beacon_work;
 
63
        bool enable_beacon;
 
64
};
 
65
 
 
66
struct rtl8180_priv {
 
67
        /* common between rtl818x drivers */
 
68
        struct rtl818x_csr __iomem *map;
 
69
        const struct rtl818x_rf_ops *rf;
 
70
        struct ieee80211_vif *vif;
 
71
 
 
72
        /* rtl8180 driver specific */
 
73
        spinlock_t lock;
 
74
        struct rtl8180_rx_desc *rx_ring;
 
75
        dma_addr_t rx_ring_dma;
 
76
        unsigned int rx_idx;
 
77
        struct sk_buff *rx_buf[32];
 
78
        struct rtl8180_tx_ring tx_ring[4];
 
79
        struct ieee80211_channel channels[14];
 
80
        struct ieee80211_rate rates[12];
 
81
        struct ieee80211_supported_band band;
 
82
        struct pci_dev *pdev;
 
83
        u32 rx_conf;
 
84
 
 
85
        int r8185;
 
86
        u32 anaparam;
 
87
        u16 rfparam;
 
88
        u8 csthreshold;
 
89
 
 
90
        /* sequence # */
 
91
        u16 seqno;
 
92
};
 
93
 
 
94
void rtl8180_write_phy(struct ieee80211_hw *dev, u8 addr, u32 data);
 
95
void rtl8180_set_anaparam(struct rtl8180_priv *priv, u32 anaparam);
 
96
 
 
97
static inline u8 rtl818x_ioread8(struct rtl8180_priv *priv, u8 __iomem *addr)
 
98
{
 
99
        return ioread8(addr);
 
100
}
 
101
 
 
102
static inline u16 rtl818x_ioread16(struct rtl8180_priv *priv, __le16 __iomem *addr)
 
103
{
 
104
        return ioread16(addr);
 
105
}
 
106
 
 
107
static inline u32 rtl818x_ioread32(struct rtl8180_priv *priv, __le32 __iomem *addr)
 
108
{
 
109
        return ioread32(addr);
 
110
}
 
111
 
 
112
static inline void rtl818x_iowrite8(struct rtl8180_priv *priv,
 
113
                                    u8 __iomem *addr, u8 val)
 
114
{
 
115
        iowrite8(val, addr);
 
116
}
 
117
 
 
118
static inline void rtl818x_iowrite16(struct rtl8180_priv *priv,
 
119
                                     __le16 __iomem *addr, u16 val)
 
120
{
 
121
        iowrite16(val, addr);
 
122
}
 
123
 
 
124
static inline void rtl818x_iowrite32(struct rtl8180_priv *priv,
 
125
                                     __le32 __iomem *addr, u32 val)
 
126
{
 
127
        iowrite32(val, addr);
 
128
}
 
129
 
 
130
#endif /* RTL8180_H */