Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6

+44 -11
+17 -7
drivers/net/wireless/ath9k/main.c
··· 1538 1538 bad: 1539 1539 if (ah) 1540 1540 ath9k_hw_detach(ah); 1541 + ath9k_exit_debug(sc); 1541 1542 1542 1543 return error; 1543 1544 } ··· 1546 1545 static int ath_attach(u16 devid, struct ath_softc *sc) 1547 1546 { 1548 1547 struct ieee80211_hw *hw = sc->hw; 1549 - int error = 0; 1548 + int error = 0, i; 1550 1549 1551 1550 DPRINTF(sc, ATH_DBG_CONFIG, "Attach ATH hw\n"); 1552 1551 ··· 1590 1589 /* initialize tx/rx engine */ 1591 1590 error = ath_tx_init(sc, ATH_TXBUF); 1592 1591 if (error != 0) 1593 - goto detach; 1592 + goto error_attach; 1594 1593 1595 1594 error = ath_rx_init(sc, ATH_RXBUF); 1596 1595 if (error != 0) 1597 - goto detach; 1596 + goto error_attach; 1598 1597 1599 1598 #if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE) 1600 1599 /* Initialze h/w Rfkill */ ··· 1602 1601 INIT_DELAYED_WORK(&sc->rf_kill.rfkill_poll, ath_rfkill_poll); 1603 1602 1604 1603 /* Initialize s/w rfkill */ 1605 - if (ath_init_sw_rfkill(sc)) 1606 - goto detach; 1604 + error = ath_init_sw_rfkill(sc); 1605 + if (error) 1606 + goto error_attach; 1607 1607 #endif 1608 1608 1609 1609 error = ieee80211_register_hw(hw); ··· 1613 1611 ath_init_leds(sc); 1614 1612 1615 1613 return 0; 1616 - detach: 1617 - ath_detach(sc); 1614 + 1615 + error_attach: 1616 + /* cleanup tx queues */ 1617 + for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) 1618 + if (ATH_TXQ_SETUP(sc, i)) 1619 + ath_tx_cleanupq(sc, &sc->tx.txq[i]); 1620 + 1621 + ath9k_hw_detach(sc->sc_ah); 1622 + ath9k_exit_debug(sc); 1623 + 1618 1624 return error; 1619 1625 } 1620 1626
+15 -4
drivers/net/wireless/orinoco/orinoco.c
··· 3157 3157 3158 3158 return NOTIFY_DONE; 3159 3159 } 3160 + 3161 + static void orinoco_register_pm_notifier(struct orinoco_private *priv) 3162 + { 3163 + priv->pm_notifier.notifier_call = orinoco_pm_notifier; 3164 + register_pm_notifier(&priv->pm_notifier); 3165 + } 3166 + 3167 + static void orinoco_unregister_pm_notifier(struct orinoco_private *priv) 3168 + { 3169 + unregister_pm_notifier(&priv->pm_notifier); 3170 + } 3160 3171 #else /* !PM_SLEEP || HERMES_CACHE_FW_ON_INIT */ 3161 - #define orinoco_pm_notifier NULL 3172 + #define orinoco_register_pm_notifier(priv) do { } while(0) 3173 + #define orinoco_unregister_pm_notifier(priv) do { } while(0) 3162 3174 #endif 3163 3175 3164 3176 /********************************************************************/ ··· 3660 3648 priv->cached_fw = NULL; 3661 3649 3662 3650 /* Register PM notifiers */ 3663 - priv->pm_notifier.notifier_call = orinoco_pm_notifier; 3664 - register_pm_notifier(&priv->pm_notifier); 3651 + orinoco_register_pm_notifier(priv); 3665 3652 3666 3653 return dev; 3667 3654 } ··· 3684 3673 kfree(rx_data); 3685 3674 } 3686 3675 3687 - unregister_pm_notifier(&priv->pm_notifier); 3676 + orinoco_unregister_pm_notifier(priv); 3688 3677 orinoco_uncache_fw(priv); 3689 3678 3690 3679 priv->wpa_ie_len = 0;
+12
drivers/net/wireless/rtl818x/rtl8187_dev.c
··· 48 48 {USB_DEVICE(0x0bda, 0x8189), .driver_info = DEVICE_RTL8187B}, 49 49 {USB_DEVICE(0x0bda, 0x8197), .driver_info = DEVICE_RTL8187B}, 50 50 {USB_DEVICE(0x0bda, 0x8198), .driver_info = DEVICE_RTL8187B}, 51 + /* Surecom */ 52 + {USB_DEVICE(0x0769, 0x11F2), .driver_info = DEVICE_RTL8187}, 53 + /* Logitech */ 54 + {USB_DEVICE(0x0789, 0x010C), .driver_info = DEVICE_RTL8187}, 51 55 /* Netgear */ 52 56 {USB_DEVICE(0x0846, 0x6100), .driver_info = DEVICE_RTL8187}, 53 57 {USB_DEVICE(0x0846, 0x6a00), .driver_info = DEVICE_RTL8187}, ··· 61 57 /* Sitecom */ 62 58 {USB_DEVICE(0x0df6, 0x000d), .driver_info = DEVICE_RTL8187}, 63 59 {USB_DEVICE(0x0df6, 0x0028), .driver_info = DEVICE_RTL8187B}, 60 + /* Sphairon Access Systems GmbH */ 61 + {USB_DEVICE(0x114B, 0x0150), .driver_info = DEVICE_RTL8187}, 62 + /* Dick Smith Electronics */ 63 + {USB_DEVICE(0x1371, 0x9401), .driver_info = DEVICE_RTL8187}, 64 64 /* Abocom */ 65 65 {USB_DEVICE(0x13d1, 0xabe6), .driver_info = DEVICE_RTL8187}, 66 + /* Qcom */ 67 + {USB_DEVICE(0x18E8, 0x6232), .driver_info = DEVICE_RTL8187}, 68 + /* AirLive */ 69 + {USB_DEVICE(0x1b75, 0x8187), .driver_info = DEVICE_RTL8187}, 66 70 {} 67 71 }; 68 72