ath9k: cleanup led_pin initial
Make ath_init_leds() and ath_deinit_leds() pairs as the only API to set leds, also removed direction configuration from ath9k_start() and ath9k_stop(). So the initial is more clear now. Signed-off-by: Miaoqing Pan <miaoqing@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
db2221901f
commit
79d4db1214
|
@ -813,7 +813,6 @@ static inline int ath9k_dump_btcoex(struct ath_softc *sc, u8 *buf, u32 size)
|
||||||
#ifdef CONFIG_MAC80211_LEDS
|
#ifdef CONFIG_MAC80211_LEDS
|
||||||
void ath_init_leds(struct ath_softc *sc);
|
void ath_init_leds(struct ath_softc *sc);
|
||||||
void ath_deinit_leds(struct ath_softc *sc);
|
void ath_deinit_leds(struct ath_softc *sc);
|
||||||
void ath_fill_led_pin(struct ath_softc *sc);
|
|
||||||
#else
|
#else
|
||||||
static inline void ath_init_leds(struct ath_softc *sc)
|
static inline void ath_init_leds(struct ath_softc *sc)
|
||||||
{
|
{
|
||||||
|
@ -822,9 +821,6 @@ static inline void ath_init_leds(struct ath_softc *sc)
|
||||||
static inline void ath_deinit_leds(struct ath_softc *sc)
|
static inline void ath_deinit_leds(struct ath_softc *sc)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
static inline void ath_fill_led_pin(struct ath_softc *sc)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/************************/
|
/************************/
|
||||||
|
|
|
@ -21,6 +21,33 @@
|
||||||
/********************************/
|
/********************************/
|
||||||
|
|
||||||
#ifdef CONFIG_MAC80211_LEDS
|
#ifdef CONFIG_MAC80211_LEDS
|
||||||
|
|
||||||
|
void ath_fill_led_pin(struct ath_softc *sc)
|
||||||
|
{
|
||||||
|
struct ath_hw *ah = sc->sc_ah;
|
||||||
|
|
||||||
|
/* Set default led pin if invalid */
|
||||||
|
if (ah->led_pin < 0) {
|
||||||
|
if (AR_SREV_9287(ah))
|
||||||
|
ah->led_pin = ATH_LED_PIN_9287;
|
||||||
|
else if (AR_SREV_9485(ah))
|
||||||
|
ah->led_pin = ATH_LED_PIN_9485;
|
||||||
|
else if (AR_SREV_9300(ah))
|
||||||
|
ah->led_pin = ATH_LED_PIN_9300;
|
||||||
|
else if (AR_SREV_9462(ah) || AR_SREV_9565(ah))
|
||||||
|
ah->led_pin = ATH_LED_PIN_9462;
|
||||||
|
else
|
||||||
|
ah->led_pin = ATH_LED_PIN_DEF;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Configure gpio for output */
|
||||||
|
ath9k_hw_gpio_request_out(ah, ah->led_pin, "ath9k-led",
|
||||||
|
AR_GPIO_OUTPUT_MUX_AS_OUTPUT);
|
||||||
|
|
||||||
|
/* LED off, active low */
|
||||||
|
ath9k_hw_set_gpio(ah, ah->led_pin, ah->config.led_active_high ? 0 : 1);
|
||||||
|
}
|
||||||
|
|
||||||
static void ath_led_brightness(struct led_classdev *led_cdev,
|
static void ath_led_brightness(struct led_classdev *led_cdev,
|
||||||
enum led_brightness brightness)
|
enum led_brightness brightness)
|
||||||
{
|
{
|
||||||
|
@ -51,6 +78,8 @@ void ath_init_leds(struct ath_softc *sc)
|
||||||
if (AR_SREV_9100(sc->sc_ah))
|
if (AR_SREV_9100(sc->sc_ah))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
ath_fill_led_pin(sc);
|
||||||
|
|
||||||
if (!ath9k_led_blink)
|
if (!ath9k_led_blink)
|
||||||
sc->led_cdev.default_trigger =
|
sc->led_cdev.default_trigger =
|
||||||
ieee80211_get_radio_led_name(sc->hw);
|
ieee80211_get_radio_led_name(sc->hw);
|
||||||
|
@ -66,39 +95,6 @@ void ath_init_leds(struct ath_softc *sc)
|
||||||
|
|
||||||
sc->led_registered = true;
|
sc->led_registered = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ath_fill_led_pin(struct ath_softc *sc)
|
|
||||||
{
|
|
||||||
struct ath_hw *ah = sc->sc_ah;
|
|
||||||
|
|
||||||
if (AR_SREV_9100(ah))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (ah->led_pin >= 0) {
|
|
||||||
if (!((1 << ah->led_pin) & AR_GPIO_OE_OUT_MASK))
|
|
||||||
ath9k_hw_gpio_request_out(ah, ah->led_pin, "ath9k-led",
|
|
||||||
AR_GPIO_OUTPUT_MUX_AS_OUTPUT);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (AR_SREV_9287(ah))
|
|
||||||
ah->led_pin = ATH_LED_PIN_9287;
|
|
||||||
else if (AR_SREV_9485(sc->sc_ah))
|
|
||||||
ah->led_pin = ATH_LED_PIN_9485;
|
|
||||||
else if (AR_SREV_9300(sc->sc_ah))
|
|
||||||
ah->led_pin = ATH_LED_PIN_9300;
|
|
||||||
else if (AR_SREV_9462(sc->sc_ah) || AR_SREV_9565(sc->sc_ah))
|
|
||||||
ah->led_pin = ATH_LED_PIN_9462;
|
|
||||||
else
|
|
||||||
ah->led_pin = ATH_LED_PIN_DEF;
|
|
||||||
|
|
||||||
/* Configure gpio 1 for output */
|
|
||||||
ath9k_hw_gpio_request_out(ah, ah->led_pin, "ath9k-led",
|
|
||||||
AR_GPIO_OUTPUT_MUX_AS_OUTPUT);
|
|
||||||
|
|
||||||
/* LED off, active low */
|
|
||||||
ath9k_hw_set_gpio(ah, ah->led_pin, (ah->config.led_active_high) ? 0 : 1);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*******************/
|
/*******************/
|
||||||
|
|
|
@ -660,7 +660,6 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc,
|
||||||
|
|
||||||
ath9k_cmn_init_crypto(sc->sc_ah);
|
ath9k_cmn_init_crypto(sc->sc_ah);
|
||||||
ath9k_init_misc(sc);
|
ath9k_init_misc(sc);
|
||||||
ath_fill_led_pin(sc);
|
|
||||||
ath_chanctx_init(sc);
|
ath_chanctx_init(sc);
|
||||||
ath9k_offchannel_init(sc);
|
ath9k_offchannel_init(sc);
|
||||||
|
|
||||||
|
|
|
@ -718,12 +718,9 @@ static int ath9k_start(struct ieee80211_hw *hw)
|
||||||
if (!ath_complete_reset(sc, false))
|
if (!ath_complete_reset(sc, false))
|
||||||
ah->reset_power_on = false;
|
ah->reset_power_on = false;
|
||||||
|
|
||||||
if (ah->led_pin >= 0) {
|
if (ah->led_pin >= 0)
|
||||||
ath9k_hw_set_gpio(ah, ah->led_pin,
|
ath9k_hw_set_gpio(ah, ah->led_pin,
|
||||||
(ah->config.led_active_high) ? 1 : 0);
|
(ah->config.led_active_high) ? 1 : 0);
|
||||||
ath9k_hw_gpio_request_out(ah, ah->led_pin, NULL,
|
|
||||||
AR_GPIO_OUTPUT_MUX_AS_OUTPUT);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reset key cache to sane defaults (all entries cleared) instead of
|
* Reset key cache to sane defaults (all entries cleared) instead of
|
||||||
|
@ -867,11 +864,9 @@ static void ath9k_stop(struct ieee80211_hw *hw)
|
||||||
|
|
||||||
spin_lock_bh(&sc->sc_pcu_lock);
|
spin_lock_bh(&sc->sc_pcu_lock);
|
||||||
|
|
||||||
if (ah->led_pin >= 0) {
|
if (ah->led_pin >= 0)
|
||||||
ath9k_hw_set_gpio(ah, ah->led_pin,
|
ath9k_hw_set_gpio(ah, ah->led_pin,
|
||||||
(ah->config.led_active_high) ? 0 : 1);
|
(ah->config.led_active_high) ? 0 : 1);
|
||||||
ath9k_hw_gpio_request_in(ah, ah->led_pin, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
ath_prepare_reset(sc);
|
ath_prepare_reset(sc);
|
||||||
|
|
||||||
|
|
|
@ -1168,8 +1168,6 @@ enum {
|
||||||
|
|
||||||
#define AR_GPIO_OE_OUT (AR_SREV_9340(ah) ? 0x4030 : \
|
#define AR_GPIO_OE_OUT (AR_SREV_9340(ah) ? 0x4030 : \
|
||||||
(AR_SREV_9300_20_OR_LATER(ah) ? 0x4050 : 0x404c))
|
(AR_SREV_9300_20_OR_LATER(ah) ? 0x4050 : 0x404c))
|
||||||
#define AR_GPIO_OE_OUT_MASK (AR_SREV_9550_OR_LATER(ah) ? \
|
|
||||||
0x0000000F : 0xFFFFFFFF)
|
|
||||||
#define AR_GPIO_OE_OUT_DRV 0x3
|
#define AR_GPIO_OE_OUT_DRV 0x3
|
||||||
#define AR_GPIO_OE_OUT_DRV_NO 0x0
|
#define AR_GPIO_OE_OUT_DRV_NO 0x0
|
||||||
#define AR_GPIO_OE_OUT_DRV_LOW 0x1
|
#define AR_GPIO_OE_OUT_DRV_LOW 0x1
|
||||||
|
|
Loading…
Reference in New Issue