2008-12-23 10:01:15

by Steve Brown

[permalink] [raw]
Subject: [PATCH] ath5k: Correct usage of AR5K_CFG_ADHOC

This corrects usage of AR5K_CFG_ADHOC introduced in commit
731818f956854fa3866f14107867969cf6e9b0cb and restores
beaconing in AP and mesh modes.

Signed-off-by: Steve Brown <[email protected]>
---
diff --git a/drivers/net/wireless/ath5k/pcu.c b/drivers/net/wireless/ath5k/pcu.c
index 0cac05c..b6e27a9 100644
--- a/drivers/net/wireless/ath5k/pcu.c
+++ b/drivers/net/wireless/ath5k/pcu.c
@@ -65,7 +65,7 @@ int ath5k_hw_set_opmode(struct ath5k_hw *ah)
if (ah->ah_version == AR5K_AR5210)
pcu_reg |= AR5K_STA_ID1_NO_PSPOLL;
else
- AR5K_REG_DISABLE_BITS(ah, AR5K_CFG, AR5K_CFG_ADHOC);
+ AR5K_REG_ENABLE_BITS(ah, AR5K_CFG, AR5K_CFG_ADHOC);
break;

case NL80211_IFTYPE_AP:
@@ -75,7 +75,7 @@ int ath5k_hw_set_opmode(struct ath5k_hw *ah)
if (ah->ah_version == AR5K_AR5210)
pcu_reg |= AR5K_STA_ID1_NO_PSPOLL;
else
- AR5K_REG_ENABLE_BITS(ah, AR5K_CFG, AR5K_CFG_ADHOC);
+ AR5K_REG_DISABLE_BITS(ah, AR5K_CFG, AR5K_CFG_ADHOC);
break;

case NL80211_IFTYPE_STATION:
diff --git a/drivers/net/wireless/ath5k/reg.h b/drivers/net/wireless/ath5k/reg.h
index 91aaeaf..b709ad1 100644
--- a/drivers/net/wireless/ath5k/reg.h
+++ b/drivers/net/wireless/ath5k/reg.h
@@ -73,7 +73,7 @@
#define AR5K_CFG_SWRD 0x00000004 /* Byte-swap RX descriptor */
#define AR5K_CFG_SWRB 0x00000008 /* Byte-swap RX buffer */
#define AR5K_CFG_SWRG 0x00000010 /* Byte-swap Register access */
-#define AR5K_CFG_ADHOC 0x00000020 /* AP/Adhoc indication [5211+] */
+#define AR5K_CFG_ADHOC 0x00000020 /* 0-AP, 1-ADHOC [5211+] */
#define AR5K_CFG_PHY_OK 0x00000100 /* [5211+] */
#define AR5K_CFG_EEBS 0x00000200 /* EEPROM is busy */
#define AR5K_CFG_CLKGD 0x00000400 /* Clock gated (Disable dynamic clock) */



2008-12-23 12:23:50

by Nick Kossifidis

[permalink] [raw]
Subject: Re: [PATCH] ath5k: Correct usage of AR5K_CFG_ADHOC

2008/12/23 Steve Brown <[email protected]>:
> This corrects usage of AR5K_CFG_ADHOC introduced in commit
> 731818f956854fa3866f14107867969cf6e9b0cb and restores beaconing in AP and
> mesh modes.
>
> Signed-off-by: Steve Brown <[email protected]>
> ---
> diff --git a/drivers/net/wireless/ath5k/pcu.c
> b/drivers/net/wireless/ath5k/pcu.c
> index 0cac05c..b6e27a9 100644
> --- a/drivers/net/wireless/ath5k/pcu.c
> +++ b/drivers/net/wireless/ath5k/pcu.c
> @@ -65,7 +65,7 @@ int ath5k_hw_set_opmode(struct ath5k_hw *ah)
> if (ah->ah_version == AR5K_AR5210)
> pcu_reg |= AR5K_STA_ID1_NO_PSPOLL;
> else
> - AR5K_REG_DISABLE_BITS(ah, AR5K_CFG, AR5K_CFG_ADHOC);
> + AR5K_REG_ENABLE_BITS(ah, AR5K_CFG, AR5K_CFG_ADHOC);
> break;
>
> case NL80211_IFTYPE_AP:
> @@ -75,7 +75,7 @@ int ath5k_hw_set_opmode(struct ath5k_hw *ah)
> if (ah->ah_version == AR5K_AR5210)
> pcu_reg |= AR5K_STA_ID1_NO_PSPOLL;
> else
> - AR5K_REG_ENABLE_BITS(ah, AR5K_CFG, AR5K_CFG_ADHOC);
> + AR5K_REG_DISABLE_BITS(ah, AR5K_CFG, AR5K_CFG_ADHOC);
> break;
>
> case NL80211_IFTYPE_STATION:
> diff --git a/drivers/net/wireless/ath5k/reg.h
> b/drivers/net/wireless/ath5k/reg.h
> index 91aaeaf..b709ad1 100644
> --- a/drivers/net/wireless/ath5k/reg.h
> +++ b/drivers/net/wireless/ath5k/reg.h
> @@ -73,7 +73,7 @@
> #define AR5K_CFG_SWRD 0x00000004 /* Byte-swap RX descriptor
> */
> #define AR5K_CFG_SWRB 0x00000008 /* Byte-swap RX buffer */
> #define AR5K_CFG_SWRG 0x00000010 /* Byte-swap Register access
> */
> -#define AR5K_CFG_ADHOC 0x00000020 /* AP/Adhoc indication
> [5211+] */
> +#define AR5K_CFG_ADHOC 0x00000020 /* 0-AP, 1-ADHOC [5211+] */
> #define AR5K_CFG_PHY_OK 0x00000100 /* [5211+] */
> #define AR5K_CFG_EEBS 0x00000200 /* EEPROM is busy */
> #define AR5K_CFG_CLKGD 0x00000400 /* Clock gated (Disable
> dynamic clock) */
>
>

Note: 0 is not only AP but also STA, i think we should rename this to
BSS/IBSS indicator, 0 is BSS and 1 is IBSS, also note that AR5K_CFG is
not a PCU register (it configures the host interface unit -HIU- and
these settings have to do with tx/rx descriptor setup, clock gating,
byteswaping and dma ops, i don't know how it affects beaconing) .
Sorry i missed that on one PCU patch, thanks a lot for the fix ;-)

Acked-by: Nick Kossifidis <[email protected]>


--
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick