diff options
author | David S. Miller <davem@davemloft.net> | 2009-09-16 20:01:24 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-09-16 20:01:24 -0400 |
commit | c127bdf9f6c8a8aaa531321721b29ab15f250a72 (patch) | |
tree | 1799546ce128e5425002ea9a0893cf86a2747490 /drivers | |
parent | 4e36a95e591e9c58dd10bb4103c00993917c27fd (diff) | |
parent | bbac31f4c0339f6c51afbd0edfb4959df9b53fa9 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/Kconfig | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ani.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/b43/main.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_main.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 10 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 9 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-power.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-rx.c | 24 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 24 | ||||
-rw-r--r-- | drivers/net/wireless/p54/p54usb.c | 1 | ||||
-rw-r--r-- | drivers/ssb/pci.c | 1 | ||||
-rw-r--r-- | drivers/ssb/sdio.c | 6 |
14 files changed, 68 insertions, 32 deletions
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index ad89d23968df..49ea9c92b7e6 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig | |||
@@ -5,6 +5,7 @@ | |||
5 | menuconfig WLAN | 5 | menuconfig WLAN |
6 | bool "Wireless LAN" | 6 | bool "Wireless LAN" |
7 | depends on !S390 | 7 | depends on !S390 |
8 | default y | ||
8 | ---help--- | 9 | ---help--- |
9 | This section contains all the pre 802.11 and 802.11 wireless | 10 | This section contains all the pre 802.11 and 802.11 wireless |
10 | device drivers. For a complete list of drivers and documentation | 11 | device drivers. For a complete list of drivers and documentation |
diff --git a/drivers/net/wireless/ath/ath9k/ani.c b/drivers/net/wireless/ath/ath9k/ani.c index a7cbb07988cf..2b493742ef10 100644 --- a/drivers/net/wireless/ath/ath9k/ani.c +++ b/drivers/net/wireless/ath/ath9k/ani.c | |||
@@ -327,7 +327,8 @@ static void ath9k_hw_ani_ofdm_err_trigger(struct ath_hw *ah) | |||
327 | aniState->firstepLevel + 1); | 327 | aniState->firstepLevel + 1); |
328 | return; | 328 | return; |
329 | } else { | 329 | } else { |
330 | if (conf->channel->band == IEEE80211_BAND_2GHZ) { | 330 | if ((conf->channel->band == IEEE80211_BAND_2GHZ) && |
331 | !conf_is_ht(conf)) { | ||
331 | if (!aniState->ofdmWeakSigDetectOff) | 332 | if (!aniState->ofdmWeakSigDetectOff) |
332 | ath9k_hw_ani_control(ah, | 333 | ath9k_hw_ani_control(ah, |
333 | ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION, | 334 | ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION, |
@@ -369,7 +370,8 @@ static void ath9k_hw_ani_cck_err_trigger(struct ath_hw *ah) | |||
369 | ath9k_hw_ani_control(ah, ATH9K_ANI_FIRSTEP_LEVEL, | 370 | ath9k_hw_ani_control(ah, ATH9K_ANI_FIRSTEP_LEVEL, |
370 | aniState->firstepLevel + 1); | 371 | aniState->firstepLevel + 1); |
371 | } else { | 372 | } else { |
372 | if (conf->channel->band == IEEE80211_BAND_2GHZ) { | 373 | if ((conf->channel->band == IEEE80211_BAND_2GHZ) && |
374 | !conf_is_ht(conf)) { | ||
373 | if (aniState->firstepLevel > 0) | 375 | if (aniState->firstepLevel > 0) |
374 | ath9k_hw_ani_control(ah, | 376 | ath9k_hw_ani_control(ah, |
375 | ATH9K_ANI_FIRSTEP_LEVEL, 0); | 377 | ATH9K_ANI_FIRSTEP_LEVEL, 0); |
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index 7a9a3fa55425..e789792a36bc 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c | |||
@@ -2289,11 +2289,7 @@ static int b43_upload_microcode(struct b43_wldev *dev) | |||
2289 | err = -ENODEV; | 2289 | err = -ENODEV; |
2290 | goto error; | 2290 | goto error; |
2291 | } | 2291 | } |
2292 | msleep_interruptible(50); | 2292 | msleep(50); |
2293 | if (signal_pending(current)) { | ||
2294 | err = -EINTR; | ||
2295 | goto error; | ||
2296 | } | ||
2297 | } | 2293 | } |
2298 | b43_read32(dev, B43_MMIO_GEN_IRQ_REASON); /* dummy read */ | 2294 | b43_read32(dev, B43_MMIO_GEN_IRQ_REASON); /* dummy read */ |
2299 | 2295 | ||
@@ -4287,6 +4283,8 @@ static int b43_wireless_core_init(struct b43_wldev *dev) | |||
4287 | if (!dev->suspend_in_progress) | 4283 | if (!dev->suspend_in_progress) |
4288 | b43_rng_init(wl); | 4284 | b43_rng_init(wl); |
4289 | 4285 | ||
4286 | ieee80211_wake_queues(dev->wl->hw); | ||
4287 | |||
4290 | b43_set_status(dev, B43_STAT_INITIALIZED); | 4288 | b43_set_status(dev, B43_STAT_INITIALIZED); |
4291 | 4289 | ||
4292 | if (!dev->suspend_in_progress) | 4290 | if (!dev->suspend_in_progress) |
diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c index 6fe122f18c0d..eb57d1ea361f 100644 --- a/drivers/net/wireless/hostap/hostap_main.c +++ b/drivers/net/wireless/hostap/hostap_main.c | |||
@@ -875,15 +875,16 @@ void hostap_setup_dev(struct net_device *dev, local_info_t *local, | |||
875 | 875 | ||
876 | switch(type) { | 876 | switch(type) { |
877 | case HOSTAP_INTERFACE_AP: | 877 | case HOSTAP_INTERFACE_AP: |
878 | dev->tx_queue_len = 0; /* use main radio device queue */ | ||
878 | dev->netdev_ops = &hostap_mgmt_netdev_ops; | 879 | dev->netdev_ops = &hostap_mgmt_netdev_ops; |
879 | dev->type = ARPHRD_IEEE80211; | 880 | dev->type = ARPHRD_IEEE80211; |
880 | dev->header_ops = &hostap_80211_ops; | 881 | dev->header_ops = &hostap_80211_ops; |
881 | break; | 882 | break; |
882 | case HOSTAP_INTERFACE_MASTER: | 883 | case HOSTAP_INTERFACE_MASTER: |
883 | dev->tx_queue_len = 0; /* use main radio device queue */ | ||
884 | dev->netdev_ops = &hostap_master_ops; | 884 | dev->netdev_ops = &hostap_master_ops; |
885 | break; | 885 | break; |
886 | default: | 886 | default: |
887 | dev->tx_queue_len = 0; /* use main radio device queue */ | ||
887 | dev->netdev_ops = &hostap_netdev_ops; | 888 | dev->netdev_ops = &hostap_netdev_ops; |
888 | } | 889 | } |
889 | 890 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 6a13bfbc9d98..ca61d3796cef 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
@@ -2346,6 +2346,7 @@ struct iwl_cfg iwl4965_agn_cfg = { | |||
2346 | .mod_params = &iwl4965_mod_params, | 2346 | .mod_params = &iwl4965_mod_params, |
2347 | .use_isr_legacy = true, | 2347 | .use_isr_legacy = true, |
2348 | .ht_greenfield_support = false, | 2348 | .ht_greenfield_support = false, |
2349 | .broken_powersave = true, | ||
2349 | }; | 2350 | }; |
2350 | 2351 | ||
2351 | /* Module firmware */ | 2352 | /* Module firmware */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c index 40b207aa8fef..346dc06fa7b7 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c | |||
@@ -760,6 +760,7 @@ static u32 rs_get_lower_rate(struct iwl_lq_sta *lq_sta, | |||
760 | u16 high_low; | 760 | u16 high_low; |
761 | u8 switch_to_legacy = 0; | 761 | u8 switch_to_legacy = 0; |
762 | u8 is_green = lq_sta->is_green; | 762 | u8 is_green = lq_sta->is_green; |
763 | struct iwl_priv *priv = lq_sta->drv; | ||
763 | 764 | ||
764 | /* check if we need to switch from HT to legacy rates. | 765 | /* check if we need to switch from HT to legacy rates. |
765 | * assumption is that mandatory rates (1Mbps or 6Mbps) | 766 | * assumption is that mandatory rates (1Mbps or 6Mbps) |
@@ -773,7 +774,8 @@ static u32 rs_get_lower_rate(struct iwl_lq_sta *lq_sta, | |||
773 | tbl->lq_type = LQ_G; | 774 | tbl->lq_type = LQ_G; |
774 | 775 | ||
775 | if (num_of_ant(tbl->ant_type) > 1) | 776 | if (num_of_ant(tbl->ant_type) > 1) |
776 | tbl->ant_type = ANT_A;/*FIXME:RS*/ | 777 | tbl->ant_type = |
778 | first_antenna(priv->hw_params.valid_tx_ant); | ||
777 | 779 | ||
778 | tbl->is_ht40 = 0; | 780 | tbl->is_ht40 = 0; |
779 | tbl->is_SGI = 0; | 781 | tbl->is_SGI = 0; |
@@ -883,6 +885,12 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband, | |||
883 | mac_index &= RATE_MCS_CODE_MSK; /* Remove # of streams */ | 885 | mac_index &= RATE_MCS_CODE_MSK; /* Remove # of streams */ |
884 | if (mac_index >= (IWL_RATE_9M_INDEX - IWL_FIRST_OFDM_RATE)) | 886 | if (mac_index >= (IWL_RATE_9M_INDEX - IWL_FIRST_OFDM_RATE)) |
885 | mac_index++; | 887 | mac_index++; |
888 | /* | ||
889 | * mac80211 HT index is always zero-indexed; we need to move | ||
890 | * HT OFDM rates after CCK rates in 2.4 GHz band | ||
891 | */ | ||
892 | if (priv->band == IEEE80211_BAND_2GHZ) | ||
893 | mac_index += IWL_FIRST_OFDM_RATE; | ||
886 | } | 894 | } |
887 | 895 | ||
888 | if ((mac_index < 0) || | 896 | if ((mac_index < 0) || |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index acfd7b40afb8..fd26c0dc9c54 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -1585,9 +1585,12 @@ int iwl_setup_mac(struct iwl_priv *priv) | |||
1585 | hw->flags = IEEE80211_HW_SIGNAL_DBM | | 1585 | hw->flags = IEEE80211_HW_SIGNAL_DBM | |
1586 | IEEE80211_HW_NOISE_DBM | | 1586 | IEEE80211_HW_NOISE_DBM | |
1587 | IEEE80211_HW_AMPDU_AGGREGATION | | 1587 | IEEE80211_HW_AMPDU_AGGREGATION | |
1588 | IEEE80211_HW_SPECTRUM_MGMT | | 1588 | IEEE80211_HW_SPECTRUM_MGMT; |
1589 | IEEE80211_HW_SUPPORTS_PS | | 1589 | |
1590 | IEEE80211_HW_SUPPORTS_DYNAMIC_PS; | 1590 | if (!priv->cfg->broken_powersave) |
1591 | hw->flags |= IEEE80211_HW_SUPPORTS_PS | | ||
1592 | IEEE80211_HW_SUPPORTS_DYNAMIC_PS; | ||
1593 | |||
1591 | hw->wiphy->interface_modes = | 1594 | hw->wiphy->interface_modes = |
1592 | BIT(NL80211_IFTYPE_STATION) | | 1595 | BIT(NL80211_IFTYPE_STATION) | |
1593 | BIT(NL80211_IFTYPE_ADHOC); | 1596 | BIT(NL80211_IFTYPE_ADHOC); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h index c04d2a270819..7ff9ffb2b702 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.h +++ b/drivers/net/wireless/iwlwifi/iwl-core.h | |||
@@ -252,6 +252,7 @@ struct iwl_cfg { | |||
252 | const u16 max_ll_items; | 252 | const u16 max_ll_items; |
253 | const bool shadow_ram_support; | 253 | const bool shadow_ram_support; |
254 | const bool ht_greenfield_support; | 254 | const bool ht_greenfield_support; |
255 | const bool broken_powersave; | ||
255 | }; | 256 | }; |
256 | 257 | ||
257 | /*************************** | 258 | /*************************** |
diff --git a/drivers/net/wireless/iwlwifi/iwl-power.c b/drivers/net/wireless/iwlwifi/iwl-power.c index 4ec6a8307cc6..60be976afff8 100644 --- a/drivers/net/wireless/iwlwifi/iwl-power.c +++ b/drivers/net/wireless/iwlwifi/iwl-power.c | |||
@@ -292,8 +292,9 @@ int iwl_power_update_mode(struct iwl_priv *priv, bool force) | |||
292 | else | 292 | else |
293 | dtimper = 1; | 293 | dtimper = 1; |
294 | 294 | ||
295 | /* TT power setting overwrites everything */ | 295 | if (priv->cfg->broken_powersave) |
296 | if (tt->state >= IWL_TI_1) | 296 | iwl_power_sleep_cam_cmd(priv, &cmd); |
297 | else if (tt->state >= IWL_TI_1) | ||
297 | iwl_static_sleep_cmd(priv, &cmd, tt->tt_power_mode, dtimper); | 298 | iwl_static_sleep_cmd(priv, &cmd, tt->tt_power_mode, dtimper); |
298 | else if (!enabled) | 299 | else if (!enabled) |
299 | iwl_power_sleep_cam_cmd(priv, &cmd); | 300 | iwl_power_sleep_cam_cmd(priv, &cmd); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c index 8150c5c3a16b..b90adcb73b06 100644 --- a/drivers/net/wireless/iwlwifi/iwl-rx.c +++ b/drivers/net/wireless/iwlwifi/iwl-rx.c | |||
@@ -239,26 +239,22 @@ void iwl_rx_allocate(struct iwl_priv *priv, gfp_t priority) | |||
239 | struct iwl_rx_queue *rxq = &priv->rxq; | 239 | struct iwl_rx_queue *rxq = &priv->rxq; |
240 | struct list_head *element; | 240 | struct list_head *element; |
241 | struct iwl_rx_mem_buffer *rxb; | 241 | struct iwl_rx_mem_buffer *rxb; |
242 | struct sk_buff *skb; | ||
242 | unsigned long flags; | 243 | unsigned long flags; |
243 | 244 | ||
244 | while (1) { | 245 | while (1) { |
245 | spin_lock_irqsave(&rxq->lock, flags); | 246 | spin_lock_irqsave(&rxq->lock, flags); |
246 | |||
247 | if (list_empty(&rxq->rx_used)) { | 247 | if (list_empty(&rxq->rx_used)) { |
248 | spin_unlock_irqrestore(&rxq->lock, flags); | 248 | spin_unlock_irqrestore(&rxq->lock, flags); |
249 | return; | 249 | return; |
250 | } | 250 | } |
251 | element = rxq->rx_used.next; | ||
252 | rxb = list_entry(element, struct iwl_rx_mem_buffer, list); | ||
253 | list_del(element); | ||
254 | |||
255 | spin_unlock_irqrestore(&rxq->lock, flags); | 251 | spin_unlock_irqrestore(&rxq->lock, flags); |
256 | 252 | ||
257 | /* Alloc a new receive buffer */ | 253 | /* Alloc a new receive buffer */ |
258 | rxb->skb = alloc_skb(priv->hw_params.rx_buf_size + 256, | 254 | skb = alloc_skb(priv->hw_params.rx_buf_size + 256, |
259 | priority); | 255 | priority); |
260 | 256 | ||
261 | if (!rxb->skb) { | 257 | if (!skb) { |
262 | IWL_CRIT(priv, "Can not allocate SKB buffers\n"); | 258 | IWL_CRIT(priv, "Can not allocate SKB buffers\n"); |
263 | /* We don't reschedule replenish work here -- we will | 259 | /* We don't reschedule replenish work here -- we will |
264 | * call the restock method and if it still needs | 260 | * call the restock method and if it still needs |
@@ -266,6 +262,20 @@ void iwl_rx_allocate(struct iwl_priv *priv, gfp_t priority) | |||
266 | break; | 262 | break; |
267 | } | 263 | } |
268 | 264 | ||
265 | spin_lock_irqsave(&rxq->lock, flags); | ||
266 | |||
267 | if (list_empty(&rxq->rx_used)) { | ||
268 | spin_unlock_irqrestore(&rxq->lock, flags); | ||
269 | dev_kfree_skb_any(skb); | ||
270 | return; | ||
271 | } | ||
272 | element = rxq->rx_used.next; | ||
273 | rxb = list_entry(element, struct iwl_rx_mem_buffer, list); | ||
274 | list_del(element); | ||
275 | |||
276 | spin_unlock_irqrestore(&rxq->lock, flags); | ||
277 | |||
278 | rxb->skb = skb; | ||
269 | /* Get physical address of RB/SKB */ | 279 | /* Get physical address of RB/SKB */ |
270 | rxb->real_dma_addr = pci_map_single( | 280 | rxb->real_dma_addr = pci_map_single( |
271 | priv->pci_dev, | 281 | priv->pci_dev, |
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index 2238c9f2018c..090966837f3c 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
@@ -1134,6 +1134,7 @@ static void iwl3945_rx_allocate(struct iwl_priv *priv, gfp_t priority) | |||
1134 | struct iwl_rx_queue *rxq = &priv->rxq; | 1134 | struct iwl_rx_queue *rxq = &priv->rxq; |
1135 | struct list_head *element; | 1135 | struct list_head *element; |
1136 | struct iwl_rx_mem_buffer *rxb; | 1136 | struct iwl_rx_mem_buffer *rxb; |
1137 | struct sk_buff *skb; | ||
1137 | unsigned long flags; | 1138 | unsigned long flags; |
1138 | 1139 | ||
1139 | while (1) { | 1140 | while (1) { |
@@ -1143,17 +1144,11 @@ static void iwl3945_rx_allocate(struct iwl_priv *priv, gfp_t priority) | |||
1143 | spin_unlock_irqrestore(&rxq->lock, flags); | 1144 | spin_unlock_irqrestore(&rxq->lock, flags); |
1144 | return; | 1145 | return; |
1145 | } | 1146 | } |
1146 | |||
1147 | element = rxq->rx_used.next; | ||
1148 | rxb = list_entry(element, struct iwl_rx_mem_buffer, list); | ||
1149 | list_del(element); | ||
1150 | spin_unlock_irqrestore(&rxq->lock, flags); | 1147 | spin_unlock_irqrestore(&rxq->lock, flags); |
1151 | 1148 | ||
1152 | /* Alloc a new receive buffer */ | 1149 | /* Alloc a new receive buffer */ |
1153 | rxb->skb = | 1150 | skb = alloc_skb(priv->hw_params.rx_buf_size, priority); |
1154 | alloc_skb(priv->hw_params.rx_buf_size, | 1151 | if (!skb) { |
1155 | priority); | ||
1156 | if (!rxb->skb) { | ||
1157 | if (net_ratelimit()) | 1152 | if (net_ratelimit()) |
1158 | IWL_CRIT(priv, ": Can not allocate SKB buffers\n"); | 1153 | IWL_CRIT(priv, ": Can not allocate SKB buffers\n"); |
1159 | /* We don't reschedule replenish work here -- we will | 1154 | /* We don't reschedule replenish work here -- we will |
@@ -1162,6 +1157,19 @@ static void iwl3945_rx_allocate(struct iwl_priv *priv, gfp_t priority) | |||
1162 | break; | 1157 | break; |
1163 | } | 1158 | } |
1164 | 1159 | ||
1160 | spin_lock_irqsave(&rxq->lock, flags); | ||
1161 | if (list_empty(&rxq->rx_used)) { | ||
1162 | spin_unlock_irqrestore(&rxq->lock, flags); | ||
1163 | dev_kfree_skb_any(skb); | ||
1164 | return; | ||
1165 | } | ||
1166 | element = rxq->rx_used.next; | ||
1167 | rxb = list_entry(element, struct iwl_rx_mem_buffer, list); | ||
1168 | list_del(element); | ||
1169 | spin_unlock_irqrestore(&rxq->lock, flags); | ||
1170 | |||
1171 | rxb->skb = skb; | ||
1172 | |||
1165 | /* If radiotap head is required, reserve some headroom here. | 1173 | /* If radiotap head is required, reserve some headroom here. |
1166 | * The physical head count is a variable rx_stats->phy_count. | 1174 | * The physical head count is a variable rx_stats->phy_count. |
1167 | * We reserve 4 bytes here. Plus these extra bytes, the | 1175 | * We reserve 4 bytes here. Plus these extra bytes, the |
diff --git a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c index e44460ff149c..17e199546eeb 100644 --- a/drivers/net/wireless/p54/p54usb.c +++ b/drivers/net/wireless/p54/p54usb.c | |||
@@ -67,6 +67,7 @@ static struct usb_device_id p54u_table[] __devinitdata = { | |||
67 | {USB_DEVICE(0x0bf8, 0x1009)}, /* FUJITSU E-5400 USB D1700*/ | 67 | {USB_DEVICE(0x0bf8, 0x1009)}, /* FUJITSU E-5400 USB D1700*/ |
68 | {USB_DEVICE(0x0cde, 0x0006)}, /* Medion MD40900 */ | 68 | {USB_DEVICE(0x0cde, 0x0006)}, /* Medion MD40900 */ |
69 | {USB_DEVICE(0x0cde, 0x0008)}, /* Sagem XG703A */ | 69 | {USB_DEVICE(0x0cde, 0x0008)}, /* Sagem XG703A */ |
70 | {USB_DEVICE(0x0cde, 0x0015)}, /* Zcomax XG-705A */ | ||
70 | {USB_DEVICE(0x0d8e, 0x3762)}, /* DLink DWL-G120 Cohiba */ | 71 | {USB_DEVICE(0x0d8e, 0x3762)}, /* DLink DWL-G120 Cohiba */ |
71 | {USB_DEVICE(0x124a, 0x4025)}, /* IOGear GWU513 (GW3887IK chip) */ | 72 | {USB_DEVICE(0x124a, 0x4025)}, /* IOGear GWU513 (GW3887IK chip) */ |
72 | {USB_DEVICE(0x1260, 0xee22)}, /* SMC 2862W-G version 2 */ | 73 | {USB_DEVICE(0x1260, 0xee22)}, /* SMC 2862W-G version 2 */ |
diff --git a/drivers/ssb/pci.c b/drivers/ssb/pci.c index f853d5600ca7..9e50896233aa 100644 --- a/drivers/ssb/pci.c +++ b/drivers/ssb/pci.c | |||
@@ -600,6 +600,7 @@ static int sprom_extract(struct ssb_bus *bus, struct ssb_sprom *out, | |||
600 | ssb_printk(KERN_WARNING PFX "Unsupported SPROM" | 600 | ssb_printk(KERN_WARNING PFX "Unsupported SPROM" |
601 | " revision %d detected. Will extract" | 601 | " revision %d detected. Will extract" |
602 | " v1\n", out->revision); | 602 | " v1\n", out->revision); |
603 | out->revision = 1; | ||
603 | sprom_extract_r123(out, in); | 604 | sprom_extract_r123(out, in); |
604 | } | 605 | } |
605 | } | 606 | } |
diff --git a/drivers/ssb/sdio.c b/drivers/ssb/sdio.c index 114051056b52..65a6080cb02a 100644 --- a/drivers/ssb/sdio.c +++ b/drivers/ssb/sdio.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include "ssb_private.h" | 21 | #include "ssb_private.h" |
22 | 22 | ||
23 | /* Define the following to 1 to enable a printk on each coreswitch. */ | 23 | /* Define the following to 1 to enable a printk on each coreswitch. */ |
24 | #define SSB_VERBOSE_SDIOCORESWITCH_DEBUG 1 | 24 | #define SSB_VERBOSE_SDIOCORESWITCH_DEBUG 0 |
25 | 25 | ||
26 | 26 | ||
27 | /* Hardware invariants CIS tuples */ | 27 | /* Hardware invariants CIS tuples */ |
@@ -333,7 +333,7 @@ static void ssb_sdio_block_read(struct ssb_device *dev, void *buffer, | |||
333 | goto out; | 333 | goto out; |
334 | 334 | ||
335 | err_out: | 335 | err_out: |
336 | dev_dbg(ssb_sdio_dev(bus), "%04X:%04X (width=%u, len=%u), error %d\n", | 336 | dev_dbg(ssb_sdio_dev(bus), "%04X:%04X (width=%u, len=%zu), error %d\n", |
337 | bus->sdio_sbaddr >> 16, offset, reg_width, saved_count, error); | 337 | bus->sdio_sbaddr >> 16, offset, reg_width, saved_count, error); |
338 | out: | 338 | out: |
339 | sdio_release_host(bus->host_sdio); | 339 | sdio_release_host(bus->host_sdio); |
@@ -440,7 +440,7 @@ static void ssb_sdio_block_write(struct ssb_device *dev, const void *buffer, | |||
440 | goto out; | 440 | goto out; |
441 | 441 | ||
442 | err_out: | 442 | err_out: |
443 | dev_dbg(ssb_sdio_dev(bus), "%04X:%04X (width=%u, len=%u), error %d\n", | 443 | dev_dbg(ssb_sdio_dev(bus), "%04X:%04X (width=%u, len=%zu), error %d\n", |
444 | bus->sdio_sbaddr >> 16, offset, reg_width, saved_count, error); | 444 | bus->sdio_sbaddr >> 16, offset, reg_width, saved_count, error); |
445 | out: | 445 | out: |
446 | sdio_release_host(bus->host_sdio); | 446 | sdio_release_host(bus->host_sdio); |