Search Linux Wireless

Re: [PATCH] ath9k: Enable MIB and TIM interrupts for station mode.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 28, 2009 at 01:35:39AM -0800, Vivek Natarajan wrote:
> Enable operating mode specific interrupts in ath9k_add_interface instead
> of ath9k_start.
> 
> Signed-off-by: Vivek Natarajan <vnatarajan@xxxxxxxxxxx>
> ---
>  drivers/net/wireless/ath9k/main.c |   40 +++++++++++++++++++-----------------
>  1 files changed, 21 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c
> index d8e8266..8b149ef 100644
> --- a/drivers/net/wireless/ath9k/main.c
> +++ b/drivers/net/wireless/ath9k/main.c
> @@ -1957,25 +1957,6 @@ static int ath9k_start(struct ieee80211_hw *hw)
>         if (sc->sc_ah->ah_caps.hw_caps & ATH9K_HW_CAP_HT)
>                 sc->sc_imask |= ATH9K_INT_CST;
> 
> -       /*
> -        * Enable MIB interrupts when there are hardware phy counters.
> -        * Note we only do this (at the moment) for station mode.
> -        */
> -       if (ath9k_hw_phycounters(sc->sc_ah) &&
> -           ((sc->sc_ah->ah_opmode == NL80211_IFTYPE_STATION) ||
> -            (sc->sc_ah->ah_opmode == NL80211_IFTYPE_ADHOC)))
> -               sc->sc_imask |= ATH9K_INT_MIB;
> -       /*
> -        * Some hardware processes the TIM IE and fires an
> -        * interrupt when the TIM bit is set.  For hardware
> -        * that does, if not overridden by configuration,
> -        * enable the TIM interrupt when operating as station.
> -        */
> -       if ((sc->sc_ah->ah_caps.hw_caps & ATH9K_HW_CAP_ENHANCEDPM) &&
> -           (sc->sc_ah->ah_opmode == NL80211_IFTYPE_STATION) &&
> -           !sc->sc_config.swBeaconProcess)
> -               sc->sc_imask |= ATH9K_INT_TIM;
> -
>         ath_cache_conf_rate(sc, &hw->conf);
> 
>         sc->sc_flags &= ~SC_OP_INVALID;
> @@ -2124,6 +2105,27 @@ static int ath9k_add_interface(struct ieee80211_hw *hw,
>         /* Set the device opmode */
>         sc->sc_ah->ah_opmode = ic_opmode;
> 
> +       /*
> +        * Enable MIB interrupts when there are hardware phy counters.
> +        * Note we only do this (at the moment) for station mode.
> +        */
> +       if (ath9k_hw_phycounters(sc->sc_ah) &&
> +           ((sc->sc_ah->ah_opmode == NL80211_IFTYPE_STATION) ||
> +            (sc->sc_ah->ah_opmode == NL80211_IFTYPE_ADHOC)))

Please use conf->type == NL80211_IFTYPE_STATION as done
below instead of our own sc->sc_ah->ah_opmode. We want
to try to avoid duplicated data for configuration and eventually
remove it.

> +               sc->sc_imask |= ATH9K_INT_MIB;
> +       /*
> +        * Some hardware processes the TIM IE and fires an
> +        * interrupt when the TIM bit is set.  For hardware
> +        * that does, if not overridden by configuration,
> +        * enable the TIM interrupt when operating as station.
> +        */
> +       if ((sc->sc_ah->ah_caps.hw_caps & ATH9K_HW_CAP_ENHANCEDPM) &&
> +           (sc->sc_ah->ah_opmode == NL80211_IFTYPE_STATION) &&

Same here.

> +           !sc->sc_config.swBeaconProcess)
> +               sc->sc_imask |= ATH9K_INT_TIM;
> +
> +       ath9k_hw_set_interrupts(sc->sc_ah, sc->sc_imask);
> +
>         if (conf->type == NL80211_IFTYPE_AP) {

Like this.

>                 /* TODO: is this a suitable place to start ANI for AP mode? */
>                 /* Start ANI */
> --

  Luis
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux