rfkill: rewrite
This patch completely rewrites the rfkill core to address the following deficiencies: * all rfkill drivers need to implement polling where necessary rather than having one central implementation * updating the rfkill state cannot be done from arbitrary contexts, forcing drivers to use schedule_work and requiring lots of code * rfkill drivers need to keep track of soft/hard blocked internally -- the core should do this * the rfkill API has many unexpected quirks, for example being asymmetric wrt. alloc/free and register/unregister * rfkill can call back into a driver from within a function the driver called -- this is prone to deadlocks and generally should be avoided * rfkill-input pointlessly is a separate module * drivers need to #ifdef rfkill functions (unless they want to depend on or select RFKILL) -- rfkill should provide inlines that do nothing if it isn't compiled in * the rfkill structure is not opaque -- drivers need to initialise it ...
Showing
- Documentation/rfkill.txt 78 additions, 519 deletionsDocumentation/rfkill.txt
- MAINTAINERS 3 additions, 3 deletionsMAINTAINERS
- arch/arm/mach-pxa/tosa-bt.c 15 additions, 15 deletionsarch/arm/mach-pxa/tosa-bt.c
- arch/arm/mach-pxa/tosa.c 0 additions, 1 deletionarch/arm/mach-pxa/tosa.c
- drivers/net/usb/hso.c 22 additions, 20 deletionsdrivers/net/usb/hso.c
- drivers/net/wireless/ath/ath9k/ath9k.h 1 addition, 6 deletionsdrivers/net/wireless/ath/ath9k/ath9k.h
- drivers/net/wireless/ath/ath9k/main.c 29 additions, 86 deletionsdrivers/net/wireless/ath/ath9k/main.c
- drivers/net/wireless/ath/ath9k/pci.c 0 additions, 15 deletionsdrivers/net/wireless/ath/ath9k/pci.c
- drivers/net/wireless/b43/Kconfig 1 addition, 1 deletiondrivers/net/wireless/b43/Kconfig
- drivers/net/wireless/b43/leds.c 1 addition, 1 deletiondrivers/net/wireless/b43/leds.c
- drivers/net/wireless/b43/main.c 2 additions, 2 deletionsdrivers/net/wireless/b43/main.c
- drivers/net/wireless/b43/phy_a.c 2 additions, 2 deletionsdrivers/net/wireless/b43/phy_a.c
- drivers/net/wireless/b43/phy_common.c 6 additions, 11 deletionsdrivers/net/wireless/b43/phy_common.c
- drivers/net/wireless/b43/phy_common.h 2 additions, 2 deletionsdrivers/net/wireless/b43/phy_common.h
- drivers/net/wireless/b43/phy_g.c 2 additions, 2 deletionsdrivers/net/wireless/b43/phy_g.c
- drivers/net/wireless/b43/phy_lp.c 1 addition, 1 deletiondrivers/net/wireless/b43/phy_lp.c
- drivers/net/wireless/b43/phy_n.c 1 addition, 1 deletiondrivers/net/wireless/b43/phy_n.c
- drivers/net/wireless/b43/rfkill.c 34 additions, 89 deletionsdrivers/net/wireless/b43/rfkill.c
- drivers/net/wireless/b43/rfkill.h 1 addition, 4 deletionsdrivers/net/wireless/b43/rfkill.h
- drivers/net/wireless/b43legacy/Kconfig 1 addition, 1 deletiondrivers/net/wireless/b43legacy/Kconfig
Please register or sign in to comment