Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
This commit is contained in:
commit
0c9a3aaaf3
|
@ -1538,6 +1538,7 @@ bad2:
|
||||||
bad:
|
bad:
|
||||||
if (ah)
|
if (ah)
|
||||||
ath9k_hw_detach(ah);
|
ath9k_hw_detach(ah);
|
||||||
|
ath9k_exit_debug(sc);
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
@ -1545,7 +1546,7 @@ bad:
|
||||||
static int ath_attach(u16 devid, struct ath_softc *sc)
|
static int ath_attach(u16 devid, struct ath_softc *sc)
|
||||||
{
|
{
|
||||||
struct ieee80211_hw *hw = sc->hw;
|
struct ieee80211_hw *hw = sc->hw;
|
||||||
int error = 0;
|
int error = 0, i;
|
||||||
|
|
||||||
DPRINTF(sc, ATH_DBG_CONFIG, "Attach ATH hw\n");
|
DPRINTF(sc, ATH_DBG_CONFIG, "Attach ATH hw\n");
|
||||||
|
|
||||||
|
@ -1589,11 +1590,11 @@ static int ath_attach(u16 devid, struct ath_softc *sc)
|
||||||
/* initialize tx/rx engine */
|
/* initialize tx/rx engine */
|
||||||
error = ath_tx_init(sc, ATH_TXBUF);
|
error = ath_tx_init(sc, ATH_TXBUF);
|
||||||
if (error != 0)
|
if (error != 0)
|
||||||
goto detach;
|
goto error_attach;
|
||||||
|
|
||||||
error = ath_rx_init(sc, ATH_RXBUF);
|
error = ath_rx_init(sc, ATH_RXBUF);
|
||||||
if (error != 0)
|
if (error != 0)
|
||||||
goto detach;
|
goto error_attach;
|
||||||
|
|
||||||
#if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE)
|
#if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE)
|
||||||
/* Initialze h/w Rfkill */
|
/* Initialze h/w Rfkill */
|
||||||
|
@ -1601,8 +1602,9 @@ static int ath_attach(u16 devid, struct ath_softc *sc)
|
||||||
INIT_DELAYED_WORK(&sc->rf_kill.rfkill_poll, ath_rfkill_poll);
|
INIT_DELAYED_WORK(&sc->rf_kill.rfkill_poll, ath_rfkill_poll);
|
||||||
|
|
||||||
/* Initialize s/w rfkill */
|
/* Initialize s/w rfkill */
|
||||||
if (ath_init_sw_rfkill(sc))
|
error = ath_init_sw_rfkill(sc);
|
||||||
goto detach;
|
if (error)
|
||||||
|
goto error_attach;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
error = ieee80211_register_hw(hw);
|
error = ieee80211_register_hw(hw);
|
||||||
|
@ -1611,8 +1613,16 @@ static int ath_attach(u16 devid, struct ath_softc *sc)
|
||||||
ath_init_leds(sc);
|
ath_init_leds(sc);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
detach:
|
|
||||||
ath_detach(sc);
|
error_attach:
|
||||||
|
/* cleanup tx queues */
|
||||||
|
for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++)
|
||||||
|
if (ATH_TXQ_SETUP(sc, i))
|
||||||
|
ath_tx_cleanupq(sc, &sc->tx.txq[i]);
|
||||||
|
|
||||||
|
ath9k_hw_detach(sc->sc_ah);
|
||||||
|
ath9k_exit_debug(sc);
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3157,8 +3157,20 @@ static int orinoco_pm_notifier(struct notifier_block *notifier,
|
||||||
|
|
||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void orinoco_register_pm_notifier(struct orinoco_private *priv)
|
||||||
|
{
|
||||||
|
priv->pm_notifier.notifier_call = orinoco_pm_notifier;
|
||||||
|
register_pm_notifier(&priv->pm_notifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void orinoco_unregister_pm_notifier(struct orinoco_private *priv)
|
||||||
|
{
|
||||||
|
unregister_pm_notifier(&priv->pm_notifier);
|
||||||
|
}
|
||||||
#else /* !PM_SLEEP || HERMES_CACHE_FW_ON_INIT */
|
#else /* !PM_SLEEP || HERMES_CACHE_FW_ON_INIT */
|
||||||
#define orinoco_pm_notifier NULL
|
#define orinoco_register_pm_notifier(priv) do { } while(0)
|
||||||
|
#define orinoco_unregister_pm_notifier(priv) do { } while(0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
|
@ -3648,8 +3660,7 @@ struct net_device
|
||||||
priv->cached_fw = NULL;
|
priv->cached_fw = NULL;
|
||||||
|
|
||||||
/* Register PM notifiers */
|
/* Register PM notifiers */
|
||||||
priv->pm_notifier.notifier_call = orinoco_pm_notifier;
|
orinoco_register_pm_notifier(priv);
|
||||||
register_pm_notifier(&priv->pm_notifier);
|
|
||||||
|
|
||||||
return dev;
|
return dev;
|
||||||
}
|
}
|
||||||
|
@ -3673,7 +3684,7 @@ void free_orinocodev(struct net_device *dev)
|
||||||
kfree(rx_data);
|
kfree(rx_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
unregister_pm_notifier(&priv->pm_notifier);
|
orinoco_unregister_pm_notifier(priv);
|
||||||
orinoco_uncache_fw(priv);
|
orinoco_uncache_fw(priv);
|
||||||
|
|
||||||
priv->wpa_ie_len = 0;
|
priv->wpa_ie_len = 0;
|
||||||
|
|
|
@ -48,6 +48,10 @@ static struct usb_device_id rtl8187_table[] __devinitdata = {
|
||||||
{USB_DEVICE(0x0bda, 0x8189), .driver_info = DEVICE_RTL8187B},
|
{USB_DEVICE(0x0bda, 0x8189), .driver_info = DEVICE_RTL8187B},
|
||||||
{USB_DEVICE(0x0bda, 0x8197), .driver_info = DEVICE_RTL8187B},
|
{USB_DEVICE(0x0bda, 0x8197), .driver_info = DEVICE_RTL8187B},
|
||||||
{USB_DEVICE(0x0bda, 0x8198), .driver_info = DEVICE_RTL8187B},
|
{USB_DEVICE(0x0bda, 0x8198), .driver_info = DEVICE_RTL8187B},
|
||||||
|
/* Surecom */
|
||||||
|
{USB_DEVICE(0x0769, 0x11F2), .driver_info = DEVICE_RTL8187},
|
||||||
|
/* Logitech */
|
||||||
|
{USB_DEVICE(0x0789, 0x010C), .driver_info = DEVICE_RTL8187},
|
||||||
/* Netgear */
|
/* Netgear */
|
||||||
{USB_DEVICE(0x0846, 0x6100), .driver_info = DEVICE_RTL8187},
|
{USB_DEVICE(0x0846, 0x6100), .driver_info = DEVICE_RTL8187},
|
||||||
{USB_DEVICE(0x0846, 0x6a00), .driver_info = DEVICE_RTL8187},
|
{USB_DEVICE(0x0846, 0x6a00), .driver_info = DEVICE_RTL8187},
|
||||||
|
@ -57,8 +61,16 @@ static struct usb_device_id rtl8187_table[] __devinitdata = {
|
||||||
/* Sitecom */
|
/* Sitecom */
|
||||||
{USB_DEVICE(0x0df6, 0x000d), .driver_info = DEVICE_RTL8187},
|
{USB_DEVICE(0x0df6, 0x000d), .driver_info = DEVICE_RTL8187},
|
||||||
{USB_DEVICE(0x0df6, 0x0028), .driver_info = DEVICE_RTL8187B},
|
{USB_DEVICE(0x0df6, 0x0028), .driver_info = DEVICE_RTL8187B},
|
||||||
|
/* Sphairon Access Systems GmbH */
|
||||||
|
{USB_DEVICE(0x114B, 0x0150), .driver_info = DEVICE_RTL8187},
|
||||||
|
/* Dick Smith Electronics */
|
||||||
|
{USB_DEVICE(0x1371, 0x9401), .driver_info = DEVICE_RTL8187},
|
||||||
/* Abocom */
|
/* Abocom */
|
||||||
{USB_DEVICE(0x13d1, 0xabe6), .driver_info = DEVICE_RTL8187},
|
{USB_DEVICE(0x13d1, 0xabe6), .driver_info = DEVICE_RTL8187},
|
||||||
|
/* Qcom */
|
||||||
|
{USB_DEVICE(0x18E8, 0x6232), .driver_info = DEVICE_RTL8187},
|
||||||
|
/* AirLive */
|
||||||
|
{USB_DEVICE(0x1b75, 0x8187), .driver_info = DEVICE_RTL8187},
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Reference in New Issue