Loading MAINTAINERS +10 −1 Original line number Diff line number Diff line Loading @@ -4984,7 +4984,7 @@ L: linux-wireless@vger.kernel.org W: http://linuxwireless.org/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git S: Maintained F: drivers/net/wireless/rtl818* F: drivers/net/wireless/rtl818x/rtl8180* RTL8187 WIRELESS DRIVER P: Herton Ronaldo Krzesinski Loading Loading @@ -6466,6 +6466,15 @@ M: mitr@volny.cz S: Maintained F: drivers/input/misc/wistron_btns.c WL1251 WIRELESS DRIVER P: Kalle Valo M: kalle.valo@nokia.com L: linux-wireless@vger.kernel.org W: http://wireless.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git S: Maintained F: drivers/net/wireless/wl12xx/wl1251* WL3501 WIRELESS PCMCIA CARD DRIVER P: Arnaldo Carvalho de Melo M: acme@ghostprotocols.net Loading drivers/net/wireless/Kconfig +4 −2 Original line number Diff line number Diff line Loading @@ -428,10 +428,12 @@ config RTL8187 Micronet SP907GK V5 Encore ENUWI-G2 Trendnet TEW-424UB ASUS P5B Deluxe ASUS P5B Deluxe/P5K Premium motherboards Toshiba Satellite Pro series of laptops Asus Wireless Link Linksys WUSB54GC-EU Linksys WUSB54GC-EU v2 (v1 = rt73usb; v3 is rt2070-based, use staging/rt3070 or try rt2800usb) Thanks to Realtek for their support! Loading drivers/net/wireless/adm8211.c +0 −17 Original line number Diff line number Diff line Loading @@ -1964,14 +1964,6 @@ static void __devexit adm8211_remove(struct pci_dev *pdev) #ifdef CONFIG_PM static int adm8211_suspend(struct pci_dev *pdev, pm_message_t state) { struct ieee80211_hw *dev = pci_get_drvdata(pdev); struct adm8211_priv *priv = dev->priv; if (priv->mode != NL80211_IFTYPE_UNSPECIFIED) { ieee80211_stop_queues(dev); adm8211_stop(dev); } pci_save_state(pdev); pci_set_power_state(pdev, pci_choose_state(pdev, state)); return 0; Loading @@ -1979,17 +1971,8 @@ static int adm8211_suspend(struct pci_dev *pdev, pm_message_t state) static int adm8211_resume(struct pci_dev *pdev) { struct ieee80211_hw *dev = pci_get_drvdata(pdev); struct adm8211_priv *priv = dev->priv; pci_set_power_state(pdev, PCI_D0); pci_restore_state(pdev); if (priv->mode != NL80211_IFTYPE_UNSPECIFIED) { adm8211_start(dev); ieee80211_wake_queues(dev); } return 0; } #endif /* CONFIG_PM */ Loading drivers/net/wireless/arlan-main.c +1 −1 Original line number Diff line number Diff line Loading @@ -1022,7 +1022,7 @@ static int arlan_mac_addr(struct net_device *dev, void *p) ARLAN_DEBUG_ENTRY("arlan_mac_addr"); return -EINVAL; if (!netif_running(dev)) if (netif_running(dev)) return -EBUSY; memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); Loading drivers/net/wireless/ath/ar9170/ar9170.h +52 −0 Original line number Diff line number Diff line Loading @@ -109,11 +109,52 @@ struct ar9170_rxstream_mpdu_merge { bool has_plcp; }; #define AR9170_NUM_MAX_BA_RETRY 5 #define AR9170_NUM_TID 16 #define WME_BA_BMP_SIZE 64 #define AR9170_NUM_MAX_AGG_LEN (2 * WME_BA_BMP_SIZE) #define WME_AC_BE 2 #define WME_AC_BK 3 #define WME_AC_VI 1 #define WME_AC_VO 0 #define TID_TO_WME_AC(_tid) \ ((((_tid) == 0) || ((_tid) == 3)) ? WME_AC_BE : \ (((_tid) == 1) || ((_tid) == 2)) ? WME_AC_BK : \ (((_tid) == 4) || ((_tid) == 5)) ? WME_AC_VI : \ WME_AC_VO) #define BAW_WITHIN(_start, _bawsz, _seqno) \ ((((_seqno) - (_start)) & 0xfff) < (_bawsz)) enum ar9170_tid_state { AR9170_TID_STATE_INVALID, AR9170_TID_STATE_SHUTDOWN, AR9170_TID_STATE_PROGRESS, AR9170_TID_STATE_COMPLETE, }; struct ar9170_sta_tid { struct list_head list; struct sk_buff_head queue; u8 addr[ETH_ALEN]; u16 ssn; u16 tid; enum ar9170_tid_state state; bool active; u8 retry; }; #define AR9170_QUEUE_TIMEOUT 64 #define AR9170_TX_TIMEOUT 8 #define AR9170_BA_TIMEOUT 4 #define AR9170_JANITOR_DELAY 128 #define AR9170_TX_INVALID_RATE 0xffffffff #define AR9170_NUM_TX_STATUS 128 #define AR9170_NUM_TX_AGG_MAX 30 struct ar9170 { struct ieee80211_hw *hw; struct mutex mutex; Loading Loading @@ -187,14 +228,25 @@ struct ar9170 { struct sk_buff_head tx_pending[__AR9170_NUM_TXQ]; struct sk_buff_head tx_status[__AR9170_NUM_TXQ]; struct delayed_work tx_janitor; /* tx ampdu */ struct sk_buff_head tx_status_ampdu; spinlock_t tx_ampdu_list_lock; struct list_head tx_ampdu_list; unsigned int tx_ampdu_pending; /* rxstream mpdu merge */ struct ar9170_rxstream_mpdu_merge rx_mpdu; struct sk_buff *rx_failover; int rx_failover_missing; /* (cached) HW A-MPDU settings */ u8 global_ampdu_density; u8 global_ampdu_factor; }; struct ar9170_sta_info { struct ar9170_sta_tid agg[AR9170_NUM_TID]; unsigned int ampdu_max_len; }; #define AR9170_TX_FLAG_WAIT_FOR_ACK BIT(0) Loading Loading
MAINTAINERS +10 −1 Original line number Diff line number Diff line Loading @@ -4984,7 +4984,7 @@ L: linux-wireless@vger.kernel.org W: http://linuxwireless.org/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git S: Maintained F: drivers/net/wireless/rtl818* F: drivers/net/wireless/rtl818x/rtl8180* RTL8187 WIRELESS DRIVER P: Herton Ronaldo Krzesinski Loading Loading @@ -6466,6 +6466,15 @@ M: mitr@volny.cz S: Maintained F: drivers/input/misc/wistron_btns.c WL1251 WIRELESS DRIVER P: Kalle Valo M: kalle.valo@nokia.com L: linux-wireless@vger.kernel.org W: http://wireless.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git S: Maintained F: drivers/net/wireless/wl12xx/wl1251* WL3501 WIRELESS PCMCIA CARD DRIVER P: Arnaldo Carvalho de Melo M: acme@ghostprotocols.net Loading
drivers/net/wireless/Kconfig +4 −2 Original line number Diff line number Diff line Loading @@ -428,10 +428,12 @@ config RTL8187 Micronet SP907GK V5 Encore ENUWI-G2 Trendnet TEW-424UB ASUS P5B Deluxe ASUS P5B Deluxe/P5K Premium motherboards Toshiba Satellite Pro series of laptops Asus Wireless Link Linksys WUSB54GC-EU Linksys WUSB54GC-EU v2 (v1 = rt73usb; v3 is rt2070-based, use staging/rt3070 or try rt2800usb) Thanks to Realtek for their support! Loading
drivers/net/wireless/adm8211.c +0 −17 Original line number Diff line number Diff line Loading @@ -1964,14 +1964,6 @@ static void __devexit adm8211_remove(struct pci_dev *pdev) #ifdef CONFIG_PM static int adm8211_suspend(struct pci_dev *pdev, pm_message_t state) { struct ieee80211_hw *dev = pci_get_drvdata(pdev); struct adm8211_priv *priv = dev->priv; if (priv->mode != NL80211_IFTYPE_UNSPECIFIED) { ieee80211_stop_queues(dev); adm8211_stop(dev); } pci_save_state(pdev); pci_set_power_state(pdev, pci_choose_state(pdev, state)); return 0; Loading @@ -1979,17 +1971,8 @@ static int adm8211_suspend(struct pci_dev *pdev, pm_message_t state) static int adm8211_resume(struct pci_dev *pdev) { struct ieee80211_hw *dev = pci_get_drvdata(pdev); struct adm8211_priv *priv = dev->priv; pci_set_power_state(pdev, PCI_D0); pci_restore_state(pdev); if (priv->mode != NL80211_IFTYPE_UNSPECIFIED) { adm8211_start(dev); ieee80211_wake_queues(dev); } return 0; } #endif /* CONFIG_PM */ Loading
drivers/net/wireless/arlan-main.c +1 −1 Original line number Diff line number Diff line Loading @@ -1022,7 +1022,7 @@ static int arlan_mac_addr(struct net_device *dev, void *p) ARLAN_DEBUG_ENTRY("arlan_mac_addr"); return -EINVAL; if (!netif_running(dev)) if (netif_running(dev)) return -EBUSY; memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); Loading
drivers/net/wireless/ath/ar9170/ar9170.h +52 −0 Original line number Diff line number Diff line Loading @@ -109,11 +109,52 @@ struct ar9170_rxstream_mpdu_merge { bool has_plcp; }; #define AR9170_NUM_MAX_BA_RETRY 5 #define AR9170_NUM_TID 16 #define WME_BA_BMP_SIZE 64 #define AR9170_NUM_MAX_AGG_LEN (2 * WME_BA_BMP_SIZE) #define WME_AC_BE 2 #define WME_AC_BK 3 #define WME_AC_VI 1 #define WME_AC_VO 0 #define TID_TO_WME_AC(_tid) \ ((((_tid) == 0) || ((_tid) == 3)) ? WME_AC_BE : \ (((_tid) == 1) || ((_tid) == 2)) ? WME_AC_BK : \ (((_tid) == 4) || ((_tid) == 5)) ? WME_AC_VI : \ WME_AC_VO) #define BAW_WITHIN(_start, _bawsz, _seqno) \ ((((_seqno) - (_start)) & 0xfff) < (_bawsz)) enum ar9170_tid_state { AR9170_TID_STATE_INVALID, AR9170_TID_STATE_SHUTDOWN, AR9170_TID_STATE_PROGRESS, AR9170_TID_STATE_COMPLETE, }; struct ar9170_sta_tid { struct list_head list; struct sk_buff_head queue; u8 addr[ETH_ALEN]; u16 ssn; u16 tid; enum ar9170_tid_state state; bool active; u8 retry; }; #define AR9170_QUEUE_TIMEOUT 64 #define AR9170_TX_TIMEOUT 8 #define AR9170_BA_TIMEOUT 4 #define AR9170_JANITOR_DELAY 128 #define AR9170_TX_INVALID_RATE 0xffffffff #define AR9170_NUM_TX_STATUS 128 #define AR9170_NUM_TX_AGG_MAX 30 struct ar9170 { struct ieee80211_hw *hw; struct mutex mutex; Loading Loading @@ -187,14 +228,25 @@ struct ar9170 { struct sk_buff_head tx_pending[__AR9170_NUM_TXQ]; struct sk_buff_head tx_status[__AR9170_NUM_TXQ]; struct delayed_work tx_janitor; /* tx ampdu */ struct sk_buff_head tx_status_ampdu; spinlock_t tx_ampdu_list_lock; struct list_head tx_ampdu_list; unsigned int tx_ampdu_pending; /* rxstream mpdu merge */ struct ar9170_rxstream_mpdu_merge rx_mpdu; struct sk_buff *rx_failover; int rx_failover_missing; /* (cached) HW A-MPDU settings */ u8 global_ampdu_density; u8 global_ampdu_factor; }; struct ar9170_sta_info { struct ar9170_sta_tid agg[AR9170_NUM_TID]; unsigned int ampdu_max_len; }; #define AR9170_TX_FLAG_WAIT_FOR_ACK BIT(0) Loading