Please pull from "upstream" branch of rt2x00
Hi John,
This is quite fast after the previous pull request, but this fixes several important bugs where the most important 2 are the debugsfs fixes.
After these fedora bugs should be fixed.
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=233345
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=233434
Ivo
---
The following changes since commit fd349fec02854ab413d9aa47c732f892a13f83b6:
John W. Linville (1):
Merge branch 'zd1211rw-week15' of git://git.kernel.org/.../mwu/mac80211-drivers
are found in the git repository at:
http://git.serialmonkey.com/rt2x00.git/ upstream
Ivo van Doorn (8):
rt2x00: Add new rt73 USB ID
rt2x00: Add new "invisible" config options for PCI and USB
rt2x00: Don't unregister unregistered interfaces
rt2x00: Create generic rt2x00lib_{enable,disable}_radio() function
rt2x00: rt2x00debug should be compiled into rt2x00lib Merge branch 'wireless-dev'
rt2x00: Fix debugfs register length handling
rt2x00: Fix crash during rmmod with debugfs enabled
drivers/net/wireless/mac80211/rt2x00/Kconfig | 15 +++++- drivers/net/wireless/mac80211/rt2x00/Makefile | 5 +- drivers/net/wireless/mac80211/rt2x00/rt2400pci.c | 59 ++++--------------- drivers/net/wireless/mac80211/rt2x00/rt2400pci.h | 6 -- drivers/net/wireless/mac80211/rt2x00/rt2500pci.c | 59 ++++--------------- drivers/net/wireless/mac80211/rt2x00/rt2500pci.h | 6 -- drivers/net/wireless/mac80211/rt2x00/rt2500usb.c | 58 ++++--------------- drivers/net/wireless/mac80211/rt2x00/rt2500usb.h | 6 -- drivers/net/wireless/mac80211/rt2x00/rt2x00.h | 5 +- drivers/net/wireless/mac80211/rt2x00/rt2x00debug.c | 46 +++------------ drivers/net/wireless/mac80211/rt2x00/rt2x00debug.h | 5 +- drivers/net/wireless/mac80211/rt2x00/rt2x00dev.c | 51 +++++++++++++++++ drivers/net/wireless/mac80211/rt2x00/rt2x00lib.h | 6 ++ drivers/net/wireless/mac80211/rt2x00/rt2x00mac.c | 12 ++-- drivers/net/wireless/mac80211/rt2x00/rt61pci.c | 55 ++++-------------- drivers/net/wireless/mac80211/rt2x00/rt61pci.h | 6 -- drivers/net/wireless/mac80211/rt2x00/rt73usb.c | 59 +++++--------------- drivers/net/wireless/mac80211/rt2x00/rt73usb.h | 6 -- 18 files changed, 163 insertions(+), 302 deletions(-)
drivers/net/wireless/mac80211/rt2x00/Kconfig +14 -1
@@ -15,6 +15,14 @@ config RT2X00_LIB tristate depends on RT2X00 +config RT2X00_LIB_PCI + tristate + depends on RT2X00 + +config RT2X00_LIB_USB + tristate + depends on RT2X00 + config RT2X00_LIB_FIRMWARE boolean depends on RT2X00
@@ -23,6 +31,7 @@ config RT2400PCI tristate "Ralink rt2400 pci/pcmcia support" depends on RT2X00 && PCI select RT2X00_LIB + select RT2X00_LIB_PCI select EEPROM_93CX6 ---help--- This is an experimental driver for the Ralink rt2400 wireless chip.
@@ -33,6 +42,7 @@ config RT2500PCI tristate "Ralink rt2500 pci/pcmcia support" depends on RT2X00 && PCI select RT2X00_LIB + select RT2X00_LIB_PCI select EEPROM_93CX6 ---help--- This is an experimental driver for the Ralink rt2500 wireless chip.
@@ -43,6 +53,7 @@ config RT61PCI tristate "Ralink rt61 pci/pcmcia support" depends on RT2X00 && FW_LOADER && PCI select RT2X00_LIB + select RT2X00_LIB_PCI select RT2X00_LIB_FIRMWARE select CRC_ITU_T select EEPROM_93CX6
@@ -55,6 +66,7 @@ config RT2500USB tristate "Ralink rt2500 usb support" depends on RT2X00 && USB select RT2X00_LIB + select RT2X00_LIB_USB ---help--- This is an experimental driver for the Ralink rt2500 wireless chip.
@@ -64,6 +76,7 @@ config RT73USB tristate "Ralink rt73 usb support" depends on RT2X00 && FW_LOADER && USB select RT2X00_LIB + select RT2X00_LIB_USB select RT2X00_LIB_FIRMWARE select CRC_ITU_T ---help---
@@ -72,7 +85,7 @@ config RT73USB When compiled as a module, this driver will be called "rt73usb.ko". config RT2X00_DEBUGFS - tristate "Ralink debugfs support" + bool "Ralink debugfs support" depends on RT2X00 && RT2X00_LIB && MAC80211_DEBUGFS ---help--- Enable creation of debugfs files for the rt2x00 drivers.
drivers/net/wireless/mac80211/rt2x00/Makefile +4 -1
@@ -1,9 +1,12 @@ rt2x00lib-objs := rt2x00dev.o rt2x00mac.o +ifeq ($(CONFIG_RT2X00_DEBUGFS),y) + rt2x00lib-objs += rt2x00debug.o +endif + obj-$(CONFIG_RT2X00_LIB) += rt2x00lib.o obj-$(CONFIG_RT2400PCI) += rt2400pci.o obj-$(CONFIG_RT2500PCI) += rt2500pci.o obj-$(CONFIG_RT61PCI) += rt61pci.o obj-$(CONFIG_RT2500USB) += rt2500usb.o obj-$(CONFIG_RT73USB) += rt73usb.o -obj-$(CONFIG_RT2X00_DEBUGFS) += rt2x00debug.o
drivers/net/wireless/mac80211/rt2x00/rt2400pci.c +13 -46
155 lines not on this page · raw message
drivers/net/wireless/mac80211/rt2x00/rt2400pci.h +0 -6
@@ -916,12 +916,6 @@ static void rt2400pci_activity_led(struct rt2x00_dev *rt2x00dev, char activity);/* -* Radio control functions. -*/ -static int rt2400pci_enable_radio (struct rt2x00_dev *rt2x00dev); -static void rt2400pci_disable_radio (struct rt2x00_dev *rt2x00dev); - -/* * Interrupt functions. */ static void rt2400pci_rxdone (struct work_struct *work);
drivers/net/wireless/mac80211/rt2x00/rt2500pci.c +13 -46
155 lines not on this page · raw message
drivers/net/wireless/mac80211/rt2x00/rt2500pci.h +0 -6
@@ -1183,12 +1183,6 @@ static void rt2500pci_activity_led(struct rt2x00_dev *rt2x00dev, char activity);/* -* Radio control functions. -*/ -static int rt2500pci_enable_radio (struct rt2x00_dev *rt2x00dev); -static void rt2500pci_disable_radio (struct rt2x00_dev *rt2x00dev); - -/* * Interrupt functions. */ static void rt2500pci_rxdone (struct work_struct *work);
drivers/net/wireless/mac80211/rt2x00/rt2500usb.c +13 -45
144 lines not on this page · raw message
drivers/net/wireless/mac80211/rt2x00/rt2500usb.h +0 -6
@@ -731,12 +731,6 @@ static void rt2500usb_enable_led(struct rt2x00_dev *rt2x00dev);static void rt2500usb_disable_led (struct rt2x00_dev *rt2x00dev);/* -* Radio control functions. -*/ -static int rt2500usb_enable_radio (struct rt2x00_dev *rt2x00dev); -static void rt2500usb_disable_radio (struct rt2x00_dev *rt2x00dev); - -/* * Interrupt functions. */ static void rt2500usb_interrupt_beacondone (struct urb *urb);
drivers/net/wireless/mac80211/rt2x00/rt2x00.h +3 -2
@@ -809,9 +809,10 @@ struct rt2x00_dev {void __iomem *csr_addr;/* -* If enabled, the structure for the debugfs files. +* If enabled, the debugfs interface that should be +* used for deregistration of debugfs. */ -void *debugfs_data; +struct rt2x00debug_intf *debugfs_intf;/* * Queue for deferred work.
drivers/net/wireless/mac80211/rt2x00/rt2x00debug.c +10 -36
89 lines not on this page · raw message
drivers/net/wireless/mac80211/rt2x00/rt2x00debug.h +3 -2
@@ -31,6 +31,7 @@#include <net/wireless.h> struct rt2x00_dev ; +struct rt2x00debug_intf ;typedef void (debug_access_t )(struct rt2x00_dev *rt2x00dev,const unsigned long word,void *data);
@@ -40,7 +41,7 @@ struct rt2x00debug_reg {debug_access_t *write;unsigned int word_size; -unsigned int length; +unsigned int word_count; };struct rt2x00debug {
@@ -65,6 +66,6 @@ struct rt2x00debug {void *rt2x00debug_register (struct rt2x00debug *debug,struct wiphy *wiphy,struct rt2x00_dev *rt2x00dev); -void rt2x00debug_deregister (void *debugfs_data); +void rt2x00debug_deregister (struct rt2x00debug_intf *intf);#endif /* RT2X00DEBUG_H */
drivers/net/wireless/mac80211/rt2x00/rt2x00dev.c +51 -0
57 lines not on this page · raw message
drivers/net/wireless/mac80211/rt2x00/rt2x00lib.h +6 -0
@@ -31,6 +31,12 @@#include <linux/firmware.h> /* +* Radio control handlers. +*/ +int rt2x00lib_enable_radio (struct rt2x00_dev *rt2x00dev); +void rt2x00lib_disable_radio (struct rt2x00_dev *rt2x00dev); + +/* * Firmware handlers. */ #ifdef CONFIG_RT2X00_LIB_FIRMWARE
drivers/net/wireless/mac80211/rt2x00/rt2x00mac.c +6 -6
@@ -118,8 +118,8 @@ int rt2x00lib_reset(struct ieee80211_hw *hw) {struct rt2x00_dev *rt2x00dev = hw->priv; - rt2x00dev->lib_ops->disable_radio (rt2x00dev); -return rt2x00dev->lib_ops->enable_radio (rt2x00dev); +rt2x00lib_disable_radio (rt2x00dev); +return rt2x00lib_enable_radio (rt2x00dev); }EXPORT_SYMBOL_GPL (rt2x00lib_reset);
@@ -172,7 +172,7 @@ int rt2x00lib_add_interface(struct ieee80211_hw *hw,/* * Enable radio. */ - status = rt2x00dev->lib_ops->enable_radio (rt2x00dev); + status =rt2x00lib_enable_radio (rt2x00dev);if (status)return status; }
@@ -238,7 +238,7 @@ void rt2x00lib_remove_interface(struct ieee80211_hw *hw,*/ if (!GET_FLAG (rt2x00dev,INTERFACE_INITIALIZED_MONITOR ) && !GET_FLAG (rt2x00dev,INTERFACE_INITIALIZED )) - rt2x00dev->lib_ops->disable_radio (rt2x00dev); +rt2x00lib_disable_radio (rt2x00dev);/* * Check if we still have 1 non-monitor or a monitor
@@ -275,7 +275,7 @@ int rt2x00lib_config(struct ieee80211_hw *hw, struct ieee80211_conf *conf)*/ if (GET_FLAG (rt2x00dev,DEVICE_ENABLED_RADIO )) {if (!conf->radio_enabled) - rt2x00dev->lib_ops->disable_radio (rt2x00dev); +rt2x00lib_disable_radio (rt2x00dev);else { rt2x00dev->lib_ops->toggle_rx (rt2x00dev,0 ); }
@@ -297,7 +297,7 @@ int rt2x00lib_config(struct ieee80211_hw *hw, struct ieee80211_conf *conf)if (GET_FLAG (rt2x00dev,DEVICE_ENABLED_RADIO )) { rt2x00dev->lib_ops->toggle_rx (rt2x00dev,1 ); }else if (conf->radio_enabled) -return rt2x00dev->lib_ops->enable_radio (rt2x00dev); +return rt2x00lib_enable_radio (rt2x00dev);return 0 ; }
drivers/net/wireless/mac80211/rt2x00/rt61pci.c +13 -42
154 lines not on this page · raw message
drivers/net/wireless/mac80211/rt2x00/rt61pci.h +0 -6
@@ -1346,12 +1346,6 @@ static void rt61pci_disable_led(struct rt2x00_dev *rt2x00dev);static void rt61pci_activity_led (struct rt2x00_dev *rt2x00dev,char rssi);/* -* Radio control functions. -*/ -static int rt61pci_enable_radio (struct rt2x00_dev *rt2x00dev); -static void rt61pci_disable_radio (struct rt2x00_dev *rt2x00dev); - -/* * Interrupt functions. */ static void rt61pci_rxdone (struct work_struct *work);
drivers/net/wireless/mac80211/rt2x00/rt73usb.c +14 -45
151 lines not on this page · raw message
drivers/net/wireless/mac80211/rt2x00/rt73usb.h +0 -6
@@ -930,12 +930,6 @@ static void rt73usb_disable_led(struct rt2x00_dev *rt2x00dev);static void rt73usb_activity_led (struct rt2x00_dev *rt2x00dev,char rssi);/* -* Radio control functions. -*/ -static int rt73usb_enable_radio (struct rt2x00_dev *rt2x00dev); -static void rt73usb_disable_radio (struct rt2x00_dev *rt2x00dev); - -/* * Interrupt functions. */ static void rt73usb_interrupt_beacondone (struct urb *urb);