Search Linux Wireless

Re: [PATCH] ath5k: discard 11g caps if reported by an ar5211 eeprom

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

 



2009/1/12 Helmut Schaa <helmut.schaa@xxxxxxxxxxxxxx>:
> At least one ar5211 card (GIGABYTE GN-WLMA101, 168c:0012 subsystem
> 1458:e800) reports itself as 11g capable which seems to be a bug in the
> eeprom. initvals.c assumes that ar5211 is only 11b capable and thus refuses
> to initialize this card. Hence this patch changes the probing for 11g
> capabilities to discard 11g capabilities for ar5211 cards which allows this
> specific card to work fine in 11b and 11a modes.
>
> Signed-off-by: Helmut Schaa <helmut.schaa@xxxxxxxxxxxxxx>
> ---
>
> Is anybody aware of 11g-capable ar5211 cards which would be limited by
> this patch?
>
> diff --git a/drivers/net/wireless/ath5k/caps.c b/drivers/net/wireless/ath5k/caps.c
> index 150f5ed..367a6c7 100644
> --- a/drivers/net/wireless/ath5k/caps.c
> +++ b/drivers/net/wireless/ath5k/caps.c
> @@ -85,7 +85,8 @@ int ath5k_hw_set_capabilities(struct ath5k_hw *ah)
>                /* Enable  802.11b if a 2GHz capable radio (2111/5112) is
>                 * connected */
>                if (AR5K_EEPROM_HDR_11B(ee_header) ||
> -                               AR5K_EEPROM_HDR_11G(ee_header)) {
> +                   (AR5K_EEPROM_HDR_11G(ee_header) &&
> +                    ah->ah_version != AR5K_AR5211)) {
>                        /* 2312 */
>                        ah->ah_capabilities.cap_range.range_2ghz_min = 2412;
>                        ah->ah_capabilities.cap_range.range_2ghz_max = 2732;
> @@ -94,7 +95,8 @@ int ath5k_hw_set_capabilities(struct ath5k_hw *ah)
>                                __set_bit(AR5K_MODE_11B,
>                                                ah->ah_capabilities.cap_mode);
>
> -                       if (AR5K_EEPROM_HDR_11G(ee_header))
> +                       if (AR5K_EEPROM_HDR_11G(ee_header) &&
> +                           ah->ah_version != AR5K_AR5211)
>                                __set_bit(AR5K_MODE_11G,
>                                                ah->ah_capabilities.cap_mode);
>                }
>

This should be O.K. for now but i think AR5211 supports the so called
"pureg" mode which means ofdm only g (no cck headers etc). It seems
radio (RF5111) supports g mode (it can be found on AR5212 abg cards)
but baseband doesn't support dynamic cck/ofdm switching. This bit on
your eeprom might indicate the pureg capability. Since we don't handle
this yet it's ok to skip it and use only b mode.

-- 
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick
--
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