diff options
-rw-r--r-- | drivers/net/wireless/rtl8180.h | 31 | ||||
-rw-r--r-- | drivers/net/wireless/rtl8180_dev.c | 34 | ||||
-rw-r--r-- | drivers/net/wireless/rtl8187.h | 6 | ||||
-rw-r--r-- | drivers/net/wireless/rtl8187_dev.c | 10 | ||||
-rw-r--r-- | drivers/net/wireless/rtl818x.h | 35 |
5 files changed, 57 insertions, 59 deletions
diff --git a/drivers/net/wireless/rtl8180.h b/drivers/net/wireless/rtl8180.h index 082a11f93be..8721282a818 100644 --- a/drivers/net/wireless/rtl8180.h +++ b/drivers/net/wireless/rtl8180.h | |||
@@ -24,20 +24,6 @@ | |||
24 | #define ANAPARAM_PWR1_SHIFT 20 | 24 | #define ANAPARAM_PWR1_SHIFT 20 |
25 | #define ANAPARAM_PWR1_MASK (0x7F << ANAPARAM_PWR1_SHIFT) | 25 | #define ANAPARAM_PWR1_MASK (0x7F << ANAPARAM_PWR1_SHIFT) |
26 | 26 | ||
27 | enum rtl8180_tx_desc_flags { | ||
28 | RTL8180_TX_DESC_FLAG_NO_ENC = (1 << 15), | ||
29 | RTL8180_TX_DESC_FLAG_TX_OK = (1 << 15), | ||
30 | RTL8180_TX_DESC_FLAG_SPLCP = (1 << 16), | ||
31 | RTL8180_TX_DESC_FLAG_RX_UNDER = (1 << 16), | ||
32 | RTL8180_TX_DESC_FLAG_MOREFRAG = (1 << 17), | ||
33 | RTL8180_TX_DESC_FLAG_CTS = (1 << 18), | ||
34 | RTL8180_TX_DESC_FLAG_RTS = (1 << 23), | ||
35 | RTL8180_TX_DESC_FLAG_LS = (1 << 28), | ||
36 | RTL8180_TX_DESC_FLAG_FS = (1 << 29), | ||
37 | RTL8180_TX_DESC_FLAG_DMA = (1 << 30), | ||
38 | RTL8180_TX_DESC_FLAG_OWN = (1 << 31) | ||
39 | }; | ||
40 | |||
41 | struct rtl8180_tx_desc { | 27 | struct rtl8180_tx_desc { |
42 | __le32 flags; | 28 | __le32 flags; |
43 | __le16 rts_duration; | 29 | __le16 rts_duration; |
@@ -52,23 +38,6 @@ struct rtl8180_tx_desc { | |||
52 | u32 reserved[2]; | 38 | u32 reserved[2]; |
53 | } __attribute__ ((packed)); | 39 | } __attribute__ ((packed)); |
54 | 40 | ||
55 | enum rtl8180_rx_desc_flags { | ||
56 | RTL8180_RX_DESC_FLAG_ICV_ERR = (1 << 12), | ||
57 | RTL8180_RX_DESC_FLAG_CRC32_ERR = (1 << 13), | ||
58 | RTL8180_RX_DESC_FLAG_PM = (1 << 14), | ||
59 | RTL8180_RX_DESC_FLAG_RX_ERR = (1 << 15), | ||
60 | RTL8180_RX_DESC_FLAG_BCAST = (1 << 16), | ||
61 | RTL8180_RX_DESC_FLAG_PAM = (1 << 17), | ||
62 | RTL8180_RX_DESC_FLAG_MCAST = (1 << 18), | ||
63 | RTL8180_RX_DESC_FLAG_SPLCP = (1 << 25), | ||
64 | RTL8180_RX_DESC_FLAG_FOF = (1 << 26), | ||
65 | RTL8180_RX_DESC_FLAG_DMA_FAIL = (1 << 27), | ||
66 | RTL8180_RX_DESC_FLAG_LS = (1 << 28), | ||
67 | RTL8180_RX_DESC_FLAG_FS = (1 << 29), | ||
68 | RTL8180_RX_DESC_FLAG_EOR = (1 << 30), | ||
69 | RTL8180_RX_DESC_FLAG_OWN = (1 << 31) | ||
70 | }; | ||
71 | |||
72 | struct rtl8180_rx_desc { | 41 | struct rtl8180_rx_desc { |
73 | __le32 flags; | 42 | __le32 flags; |
74 | __le32 flags2; | 43 | __le32 flags2; |
diff --git a/drivers/net/wireless/rtl8180_dev.c b/drivers/net/wireless/rtl8180_dev.c index b7172a12c05..861c76a65d6 100644 --- a/drivers/net/wireless/rtl8180_dev.c +++ b/drivers/net/wireless/rtl8180_dev.c | |||
@@ -110,12 +110,12 @@ static void rtl8180_handle_rx(struct ieee80211_hw *dev) | |||
110 | struct sk_buff *skb = priv->rx_buf[priv->rx_idx]; | 110 | struct sk_buff *skb = priv->rx_buf[priv->rx_idx]; |
111 | u32 flags = le32_to_cpu(entry->flags); | 111 | u32 flags = le32_to_cpu(entry->flags); |
112 | 112 | ||
113 | if (flags & RTL8180_RX_DESC_FLAG_OWN) | 113 | if (flags & RTL818X_RX_DESC_FLAG_OWN) |
114 | return; | 114 | return; |
115 | 115 | ||
116 | if (unlikely(flags & (RTL8180_RX_DESC_FLAG_DMA_FAIL | | 116 | if (unlikely(flags & (RTL818X_RX_DESC_FLAG_DMA_FAIL | |
117 | RTL8180_RX_DESC_FLAG_FOF | | 117 | RTL818X_RX_DESC_FLAG_FOF | |
118 | RTL8180_RX_DESC_FLAG_RX_ERR))) | 118 | RTL818X_RX_DESC_FLAG_RX_ERR))) |
119 | goto done; | 119 | goto done; |
120 | else { | 120 | else { |
121 | u32 flags2 = le32_to_cpu(entry->flags2); | 121 | u32 flags2 = le32_to_cpu(entry->flags2); |
@@ -140,7 +140,7 @@ static void rtl8180_handle_rx(struct ieee80211_hw *dev) | |||
140 | rx_status.band = dev->conf.channel->band; | 140 | rx_status.band = dev->conf.channel->band; |
141 | rx_status.mactime = le64_to_cpu(entry->tsft); | 141 | rx_status.mactime = le64_to_cpu(entry->tsft); |
142 | rx_status.flag |= RX_FLAG_TSFT; | 142 | rx_status.flag |= RX_FLAG_TSFT; |
143 | if (flags & RTL8180_RX_DESC_FLAG_CRC32_ERR) | 143 | if (flags & RTL818X_RX_DESC_FLAG_CRC32_ERR) |
144 | rx_status.flag |= RX_FLAG_FAILED_FCS_CRC; | 144 | rx_status.flag |= RX_FLAG_FAILED_FCS_CRC; |
145 | 145 | ||
146 | ieee80211_rx_irqsafe(dev, skb, &rx_status); | 146 | ieee80211_rx_irqsafe(dev, skb, &rx_status); |
@@ -154,10 +154,10 @@ static void rtl8180_handle_rx(struct ieee80211_hw *dev) | |||
154 | 154 | ||
155 | done: | 155 | done: |
156 | entry->rx_buf = cpu_to_le32(*((dma_addr_t *)skb->cb)); | 156 | entry->rx_buf = cpu_to_le32(*((dma_addr_t *)skb->cb)); |
157 | entry->flags = cpu_to_le32(RTL8180_RX_DESC_FLAG_OWN | | 157 | entry->flags = cpu_to_le32(RTL818X_RX_DESC_FLAG_OWN | |
158 | MAX_RX_SIZE); | 158 | MAX_RX_SIZE); |
159 | if (priv->rx_idx == 31) | 159 | if (priv->rx_idx == 31) |
160 | entry->flags |= cpu_to_le32(RTL8180_RX_DESC_FLAG_EOR); | 160 | entry->flags |= cpu_to_le32(RTL818X_RX_DESC_FLAG_EOR); |
161 | priv->rx_idx = (priv->rx_idx + 1) % 32; | 161 | priv->rx_idx = (priv->rx_idx + 1) % 32; |
162 | } | 162 | } |
163 | } | 163 | } |
@@ -173,7 +173,7 @@ static void rtl8180_handle_tx(struct ieee80211_hw *dev, unsigned int prio) | |||
173 | struct ieee80211_tx_info *info; | 173 | struct ieee80211_tx_info *info; |
174 | u32 flags = le32_to_cpu(entry->flags); | 174 | u32 flags = le32_to_cpu(entry->flags); |
175 | 175 | ||
176 | if (flags & RTL8180_TX_DESC_FLAG_OWN) | 176 | if (flags & RTL818X_TX_DESC_FLAG_OWN) |
177 | return; | 177 | return; |
178 | 178 | ||
179 | ring->idx = (ring->idx + 1) % ring->entries; | 179 | ring->idx = (ring->idx + 1) % ring->entries; |
@@ -185,7 +185,7 @@ static void rtl8180_handle_tx(struct ieee80211_hw *dev, unsigned int prio) | |||
185 | memset(&info->status, 0, sizeof(info->status)); | 185 | memset(&info->status, 0, sizeof(info->status)); |
186 | 186 | ||
187 | if (!(info->flags & IEEE80211_TX_CTL_NO_ACK)) { | 187 | if (!(info->flags & IEEE80211_TX_CTL_NO_ACK)) { |
188 | if (flags & RTL8180_TX_DESC_FLAG_TX_OK) | 188 | if (flags & RTL818X_TX_DESC_FLAG_TX_OK) |
189 | info->flags |= IEEE80211_TX_STAT_ACK; | 189 | info->flags |= IEEE80211_TX_STAT_ACK; |
190 | else | 190 | else |
191 | info->status.excessive_retries = 1; | 191 | info->status.excessive_retries = 1; |
@@ -252,20 +252,20 @@ static int rtl8180_tx(struct ieee80211_hw *dev, struct sk_buff *skb) | |||
252 | mapping = pci_map_single(priv->pdev, skb->data, | 252 | mapping = pci_map_single(priv->pdev, skb->data, |
253 | skb->len, PCI_DMA_TODEVICE); | 253 | skb->len, PCI_DMA_TODEVICE); |
254 | 254 | ||
255 | tx_flags = RTL8180_TX_DESC_FLAG_OWN | RTL8180_TX_DESC_FLAG_FS | | 255 | tx_flags = RTL818X_TX_DESC_FLAG_OWN | RTL818X_TX_DESC_FLAG_FS | |
256 | RTL8180_TX_DESC_FLAG_LS | | 256 | RTL818X_TX_DESC_FLAG_LS | |
257 | (ieee80211_get_tx_rate(dev, info)->hw_value << 24) | | 257 | (ieee80211_get_tx_rate(dev, info)->hw_value << 24) | |
258 | skb->len; | 258 | skb->len; |
259 | 259 | ||
260 | if (priv->r8185) | 260 | if (priv->r8185) |
261 | tx_flags |= RTL8180_TX_DESC_FLAG_DMA | | 261 | tx_flags |= RTL818X_TX_DESC_FLAG_DMA | |
262 | RTL8180_TX_DESC_FLAG_NO_ENC; | 262 | RTL818X_TX_DESC_FLAG_NO_ENC; |
263 | 263 | ||
264 | if (info->flags & IEEE80211_TX_CTL_USE_RTS_CTS) { | 264 | if (info->flags & IEEE80211_TX_CTL_USE_RTS_CTS) { |
265 | tx_flags |= RTL8180_TX_DESC_FLAG_RTS; | 265 | tx_flags |= RTL818X_TX_DESC_FLAG_RTS; |
266 | tx_flags |= ieee80211_get_rts_cts_rate(dev, info)->hw_value << 19; | 266 | tx_flags |= ieee80211_get_rts_cts_rate(dev, info)->hw_value << 19; |
267 | } else if (info->flags & IEEE80211_TX_CTL_USE_CTS_PROTECT) { | 267 | } else if (info->flags & IEEE80211_TX_CTL_USE_CTS_PROTECT) { |
268 | tx_flags |= RTL8180_TX_DESC_FLAG_CTS; | 268 | tx_flags |= RTL818X_TX_DESC_FLAG_CTS; |
269 | tx_flags |= ieee80211_get_rts_cts_rate(dev, info)->hw_value << 19; | 269 | tx_flags |= ieee80211_get_rts_cts_rate(dev, info)->hw_value << 19; |
270 | } | 270 | } |
271 | 271 | ||
@@ -446,10 +446,10 @@ static int rtl8180_init_rx_ring(struct ieee80211_hw *dev) | |||
446 | *mapping = pci_map_single(priv->pdev, skb_tail_pointer(skb), | 446 | *mapping = pci_map_single(priv->pdev, skb_tail_pointer(skb), |
447 | MAX_RX_SIZE, PCI_DMA_FROMDEVICE); | 447 | MAX_RX_SIZE, PCI_DMA_FROMDEVICE); |
448 | entry->rx_buf = cpu_to_le32(*mapping); | 448 | entry->rx_buf = cpu_to_le32(*mapping); |
449 | entry->flags = cpu_to_le32(RTL8180_RX_DESC_FLAG_OWN | | 449 | entry->flags = cpu_to_le32(RTL818X_RX_DESC_FLAG_OWN | |
450 | MAX_RX_SIZE); | 450 | MAX_RX_SIZE); |
451 | } | 451 | } |
452 | entry->flags |= cpu_to_le32(RTL8180_RX_DESC_FLAG_EOR); | 452 | entry->flags |= cpu_to_le32(RTL818X_RX_DESC_FLAG_EOR); |
453 | return 0; | 453 | return 0; |
454 | } | 454 | } |
455 | 455 | ||
diff --git a/drivers/net/wireless/rtl8187.h b/drivers/net/wireless/rtl8187.h index 5a9515c9996..e82bb4d289e 100644 --- a/drivers/net/wireless/rtl8187.h +++ b/drivers/net/wireless/rtl8187.h | |||
@@ -58,12 +58,6 @@ struct rtl8187b_rx_hdr { | |||
58 | 58 | ||
59 | /* {rtl8187,rtl8187b}_tx_info is in skb */ | 59 | /* {rtl8187,rtl8187b}_tx_info is in skb */ |
60 | 60 | ||
61 | /* Tx flags are common between rtl8187 and rtl8187b */ | ||
62 | #define RTL8187_TX_FLAG_NO_ENCRYPT (1 << 15) | ||
63 | #define RTL8187_TX_FLAG_MORE_FRAG (1 << 17) | ||
64 | #define RTL8187_TX_FLAG_CTS (1 << 18) | ||
65 | #define RTL8187_TX_FLAG_RTS (1 << 23) | ||
66 | |||
67 | struct rtl8187_tx_hdr { | 61 | struct rtl8187_tx_hdr { |
68 | __le32 flags; | 62 | __le32 flags; |
69 | __le16 rts_duration; | 63 | __le16 rts_duration; |
diff --git a/drivers/net/wireless/rtl8187_dev.c b/drivers/net/wireless/rtl8187_dev.c index ca5deb6244e..060a2650535 100644 --- a/drivers/net/wireless/rtl8187_dev.c +++ b/drivers/net/wireless/rtl8187_dev.c | |||
@@ -187,18 +187,18 @@ static int rtl8187_tx(struct ieee80211_hw *dev, struct sk_buff *skb) | |||
187 | } | 187 | } |
188 | 188 | ||
189 | flags = skb->len; | 189 | flags = skb->len; |
190 | flags |= RTL8187_TX_FLAG_NO_ENCRYPT; | 190 | flags |= RTL818X_TX_DESC_FLAG_NO_ENC; |
191 | 191 | ||
192 | flags |= ieee80211_get_tx_rate(dev, info)->hw_value << 24; | 192 | flags |= ieee80211_get_tx_rate(dev, info)->hw_value << 24; |
193 | if (ieee80211_has_morefrags(((struct ieee80211_hdr *)skb->data)->frame_control)) | 193 | if (ieee80211_has_morefrags(((struct ieee80211_hdr *)skb->data)->frame_control)) |
194 | flags |= RTL8187_TX_FLAG_MORE_FRAG; | 194 | flags |= RTL818X_TX_DESC_FLAG_MOREFRAG; |
195 | if (info->flags & IEEE80211_TX_CTL_USE_RTS_CTS) { | 195 | if (info->flags & IEEE80211_TX_CTL_USE_RTS_CTS) { |
196 | flags |= RTL8187_TX_FLAG_RTS; | 196 | flags |= RTL818X_TX_DESC_FLAG_RTS; |
197 | flags |= ieee80211_get_rts_cts_rate(dev, info)->hw_value << 19; | 197 | flags |= ieee80211_get_rts_cts_rate(dev, info)->hw_value << 19; |
198 | rts_dur = ieee80211_rts_duration(dev, priv->vif, | 198 | rts_dur = ieee80211_rts_duration(dev, priv->vif, |
199 | skb->len, info); | 199 | skb->len, info); |
200 | } else if (info->flags & IEEE80211_TX_CTL_USE_CTS_PROTECT) { | 200 | } else if (info->flags & IEEE80211_TX_CTL_USE_CTS_PROTECT) { |
201 | flags |= RTL8187_TX_FLAG_CTS; | 201 | flags |= RTL818X_TX_DESC_FLAG_CTS; |
202 | flags |= ieee80211_get_rts_cts_rate(dev, info)->hw_value << 19; | 202 | flags |= ieee80211_get_rts_cts_rate(dev, info)->hw_value << 19; |
203 | } | 203 | } |
204 | 204 | ||
@@ -354,7 +354,7 @@ static void rtl8187_rx_cb(struct urb *urb) | |||
354 | rx_status.freq = dev->conf.channel->center_freq; | 354 | rx_status.freq = dev->conf.channel->center_freq; |
355 | rx_status.band = dev->conf.channel->band; | 355 | rx_status.band = dev->conf.channel->band; |
356 | rx_status.flag |= RX_FLAG_TSFT; | 356 | rx_status.flag |= RX_FLAG_TSFT; |
357 | if (flags & (1 << 13)) | 357 | if (flags & RTL818X_RX_DESC_FLAG_CRC32_ERR) |
358 | rx_status.flag |= RX_FLAG_FAILED_FCS_CRC; | 358 | rx_status.flag |= RX_FLAG_FAILED_FCS_CRC; |
359 | ieee80211_rx_irqsafe(dev, skb, &rx_status); | 359 | ieee80211_rx_irqsafe(dev, skb, &rx_status); |
360 | 360 | ||
diff --git a/drivers/net/wireless/rtl818x.h b/drivers/net/wireless/rtl818x.h index 00900fe16fc..3538b15211b 100644 --- a/drivers/net/wireless/rtl818x.h +++ b/drivers/net/wireless/rtl818x.h | |||
@@ -193,4 +193,39 @@ struct rtl818x_rf_ops { | |||
193 | void (*set_chan)(struct ieee80211_hw *, struct ieee80211_conf *); | 193 | void (*set_chan)(struct ieee80211_hw *, struct ieee80211_conf *); |
194 | }; | 194 | }; |
195 | 195 | ||
196 | /* Tx/Rx flags are common between RTL818X chips */ | ||
197 | |||
198 | enum rtl818x_tx_desc_flags { | ||
199 | RTL818X_TX_DESC_FLAG_NO_ENC = (1 << 15), | ||
200 | RTL818X_TX_DESC_FLAG_TX_OK = (1 << 15), | ||
201 | RTL818X_TX_DESC_FLAG_SPLCP = (1 << 16), | ||
202 | RTL818X_TX_DESC_FLAG_RX_UNDER = (1 << 16), | ||
203 | RTL818X_TX_DESC_FLAG_MOREFRAG = (1 << 17), | ||
204 | RTL818X_TX_DESC_FLAG_CTS = (1 << 18), | ||
205 | RTL818X_TX_DESC_FLAG_RTS = (1 << 23), | ||
206 | RTL818X_TX_DESC_FLAG_LS = (1 << 28), | ||
207 | RTL818X_TX_DESC_FLAG_FS = (1 << 29), | ||
208 | RTL818X_TX_DESC_FLAG_DMA = (1 << 30), | ||
209 | RTL818X_TX_DESC_FLAG_OWN = (1 << 31) | ||
210 | }; | ||
211 | |||
212 | enum rtl818x_rx_desc_flags { | ||
213 | RTL818X_RX_DESC_FLAG_ICV_ERR = (1 << 12), | ||
214 | RTL818X_RX_DESC_FLAG_CRC32_ERR = (1 << 13), | ||
215 | RTL818X_RX_DESC_FLAG_PM = (1 << 14), | ||
216 | RTL818X_RX_DESC_FLAG_RX_ERR = (1 << 15), | ||
217 | RTL818X_RX_DESC_FLAG_BCAST = (1 << 16), | ||
218 | RTL818X_RX_DESC_FLAG_PAM = (1 << 17), | ||
219 | RTL818X_RX_DESC_FLAG_MCAST = (1 << 18), | ||
220 | RTL818X_RX_DESC_FLAG_QOS = (1 << 19), /* RTL8187(B) only */ | ||
221 | RTL818X_RX_DESC_FLAG_TRSW = (1 << 24), /* RTL8187(B) only */ | ||
222 | RTL818X_RX_DESC_FLAG_SPLCP = (1 << 25), | ||
223 | RTL818X_RX_DESC_FLAG_FOF = (1 << 26), | ||
224 | RTL818X_RX_DESC_FLAG_DMA_FAIL = (1 << 27), | ||
225 | RTL818X_RX_DESC_FLAG_LS = (1 << 28), | ||
226 | RTL818X_RX_DESC_FLAG_FS = (1 << 29), | ||
227 | RTL818X_RX_DESC_FLAG_EOR = (1 << 30), | ||
228 | RTL818X_RX_DESC_FLAG_OWN = (1 << 31) | ||
229 | }; | ||
230 | |||
196 | #endif /* RTL818X_H */ | 231 | #endif /* RTL818X_H */ |