提交 a6ae0716 编写于 作者: B Bob Copeland 提交者: John W. Linville

ath5k: minor rfkill cleanup

Always enable rfkill since the ifdefs in the code is not really worth
the Kconfig option.  Also fix a few code style things, and remove the
usage of the ah_gpio[] array so we can remove it later.
Signed-off-by: NBob Copeland <me@bobcopeland.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 27004b10
...@@ -39,11 +39,3 @@ config ATH5K_DEBUG ...@@ -39,11 +39,3 @@ config ATH5K_DEBUG
modprobe ath5k debug=0x00000400 modprobe ath5k debug=0x00000400
config ATH5K_RFKILL
bool "Atheros 5xxx rfkill support"
depends on ATH5K
default y
---help---
Include support for enabling/disabling WiFi via rfkill switch
with Atheros 5xxx cards
...@@ -11,6 +11,6 @@ ath5k-y += reset.o ...@@ -11,6 +11,6 @@ ath5k-y += reset.o
ath5k-y += attach.o ath5k-y += attach.o
ath5k-y += base.o ath5k-y += base.o
ath5k-y += led.o ath5k-y += led.o
ath5k-y += rfkill.o
ath5k-$(CONFIG_ATH5K_DEBUG) += debug.o ath5k-$(CONFIG_ATH5K_DEBUG) += debug.o
ath5k-$(CONFIG_ATH5K_RFKILL) += rfkill.o
obj-$(CONFIG_ATH5K) += ath5k.o obj-$(CONFIG_ATH5K) += ath5k.o
...@@ -1257,13 +1257,8 @@ extern int ath5k_hw_set_gpio(struct ath5k_hw *ah, u32 gpio, u32 val); ...@@ -1257,13 +1257,8 @@ extern int ath5k_hw_set_gpio(struct ath5k_hw *ah, u32 gpio, u32 val);
extern void ath5k_hw_set_gpio_intr(struct ath5k_hw *ah, unsigned int gpio, u32 interrupt_level); extern void ath5k_hw_set_gpio_intr(struct ath5k_hw *ah, unsigned int gpio, u32 interrupt_level);
/* rfkill Functions */ /* rfkill Functions */
#ifdef CONFIG_ATH5K_RFKILL
extern void ath5k_rfkill_hw_start(struct ath5k_hw *ah); extern void ath5k_rfkill_hw_start(struct ath5k_hw *ah);
extern void ath5k_rfkill_hw_stop(struct ath5k_hw *ah); extern void ath5k_rfkill_hw_stop(struct ath5k_hw *ah);
#else
static inline void ath5k_rfkill_hw_start(struct ath5k_hw *ah) {}
static inline void ath5k_rfkill_hw_stop(struct ath5k_hw *ah) {}
#endif
/* Misc functions */ /* Misc functions */
int ath5k_hw_set_capabilities(struct ath5k_hw *ah); int ath5k_hw_set_capabilities(struct ath5k_hw *ah);
......
...@@ -2530,12 +2530,9 @@ ath5k_intr(int irq, void *dev_id) ...@@ -2530,12 +2530,9 @@ ath5k_intr(int irq, void *dev_id)
*/ */
ath5k_hw_update_mib_counters(ah, &sc->ll_stats); ath5k_hw_update_mib_counters(ah, &sc->ll_stats);
} }
#ifdef CONFIG_ATH5K_RFKILL
if (status & AR5K_INT_GPIO) if (status & AR5K_INT_GPIO)
{
tasklet_schedule(&sc->rf_kill.toggleq); tasklet_schedule(&sc->rf_kill.toggleq);
}
#endif
} }
} while (ath5k_hw_is_intr_pending(ah) && --counter > 0); } while (ath5k_hw_is_intr_pending(ah) && --counter > 0);
......
...@@ -177,9 +177,7 @@ struct ath5k_softc { ...@@ -177,9 +177,7 @@ struct ath5k_softc {
struct tasklet_struct txtq; /* tx intr tasklet */ struct tasklet_struct txtq; /* tx intr tasklet */
struct ath5k_led tx_led; /* tx led */ struct ath5k_led tx_led; /* tx led */
#ifdef CONFIG_ATH5K_RFKILL
struct ath5k_rfkill rf_kill; struct ath5k_rfkill rf_kill;
#endif
spinlock_t block; /* protects beacon */ spinlock_t block; /* protects beacon */
struct tasklet_struct beacontq; /* beacon intr tasklet */ struct tasklet_struct beacontq; /* beacon intr tasklet */
......
...@@ -56,10 +56,12 @@ static inline void ath5k_rfkill_enable(struct ath5k_softc *sc) ...@@ -56,10 +56,12 @@ static inline void ath5k_rfkill_enable(struct ath5k_softc *sc)
static inline void ath5k_rfkill_set_intr(struct ath5k_softc *sc, bool enable) static inline void ath5k_rfkill_set_intr(struct ath5k_softc *sc, bool enable)
{ {
struct ath5k_hw *ah = sc->ah; struct ath5k_hw *ah = sc->ah;
u32 curval;
ath5k_hw_set_gpio_input(ah, sc->rf_kill.gpio); ath5k_hw_set_gpio_input(ah, sc->rf_kill.gpio);
ah->ah_gpio[0] = ath5k_hw_get_gpio(ah, sc->rf_kill.gpio); curval = ath5k_hw_get_gpio(ah, sc->rf_kill.gpio);
ath5k_hw_set_gpio_intr(ah, sc->rf_kill.gpio, enable ? ath5k_hw_set_gpio_intr(ah, sc->rf_kill.gpio, enable ?
!!ah->ah_gpio[0] : !ah->ah_gpio[0]); !!curval : !curval);
} }
static bool static bool
...@@ -97,9 +99,8 @@ ath5k_rfkill_hw_start(struct ath5k_hw *ah) ...@@ -97,9 +99,8 @@ ath5k_rfkill_hw_start(struct ath5k_hw *ah)
ath5k_rfkill_disable(sc); ath5k_rfkill_disable(sc);
/* enable interrupt for rfkill switch */ /* enable interrupt for rfkill switch */
if (AR5K_EEPROM_HDR_RFKILL(ah->ah_capabilities.cap_eeprom.ee_header)) { if (AR5K_EEPROM_HDR_RFKILL(ah->ah_capabilities.cap_eeprom.ee_header))
ath5k_rfkill_set_intr(sc, true); ath5k_rfkill_set_intr(sc, true);
}
} }
...@@ -109,9 +110,8 @@ ath5k_rfkill_hw_stop(struct ath5k_hw *ah) ...@@ -109,9 +110,8 @@ ath5k_rfkill_hw_stop(struct ath5k_hw *ah)
struct ath5k_softc *sc = ah->ah_sc; struct ath5k_softc *sc = ah->ah_sc;
/* disable interrupt for rfkill switch */ /* disable interrupt for rfkill switch */
if (AR5K_EEPROM_HDR_RFKILL(ah->ah_capabilities.cap_eeprom.ee_header)) { if (AR5K_EEPROM_HDR_RFKILL(ah->ah_capabilities.cap_eeprom.ee_header))
ath5k_rfkill_set_intr(sc, false); ath5k_rfkill_set_intr(sc, false);
}
tasklet_kill(&sc->rf_kill.toggleq); tasklet_kill(&sc->rf_kill.toggleq);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册