Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH 3/8] ath5k: Identify RF2413 and deal with PHY_SPENDING
@ 2008-02-24  4:19 Nick Kossifidis
  2008-02-27  4:02 ` Luis R. Rodriguez
  0 siblings, 1 reply; 4+ messages in thread
From: Nick Kossifidis @ 2008-02-24  4:19 UTC (permalink / raw)
  To: ath5k-devel, linux-wireless; +Cc: linville, bruno, jirislaby, mcgrof

 * Attach RF2413.

 * Propertly handle different AR5K_PHY_SPENDING settings for each RF 
chip by adding a field in ath5k_hw. This way we won't have to check 
inside hw_reset (see next patch).

Changes-licensed-under: ISC
Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>

---
diff --git a/drivers/net/wireless/ath5k/ath5k.h b/drivers/net/wireless/ath5k/ath5k.h
index 25c8e98..c0b6596 100644
--- a/drivers/net/wireless/ath5k/ath5k.h
+++ b/drivers/net/wireless/ath5k/ath5k.h
@@ -966,6 +966,7 @@ struct ath5k_hw {
 	u16			ah_phy_revision;
 	u16			ah_radio_5ghz_revision;
 	u16			ah_radio_2ghz_revision;
+	u32			ah_phy_spending;
 
 	enum ath5k_version	ah_version;
 	enum ath5k_radio	ah_radio;
diff --git a/drivers/net/wireless/ath5k/hw.c b/drivers/net/wireless/ath5k/hw.c
index 998da6b..1d7bc1f 100644
--- a/drivers/net/wireless/ath5k/hw.c
+++ b/drivers/net/wireless/ath5k/hw.c
@@ -208,7 +208,7 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
 
 	/* Identify single chip solutions */
 	if((srev <= AR5K_SREV_VER_AR5414) &&
-	(srev >= AR5K_SREV_VER_AR2424)) {
+	(srev >= AR5K_SREV_VER_AR2413)) {
 		ah->ah_single_chip = true;
 	} else {
 		ah->ah_single_chip = false;
@@ -223,10 +223,33 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
 		ah->ah_radio = AR5K_RF5110;
 	} else if (ah->ah_radio_5ghz_revision < AR5K_SREV_RAD_5112) {
 		ah->ah_radio = AR5K_RF5111;
-	} else if (ah->ah_radio_5ghz_revision < AR5K_SREV_RAD_SC1) {
+		ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5111;
+	} else if (ah->ah_radio_5ghz_revision < AR5K_SREV_RAD_SC0) {
+
 		ah->ah_radio = AR5K_RF5112;
+
+		if (ah->ah_radio_5ghz_revision < AR5K_SREV_RAD_5112A) {
+			ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5112;
+		} else {
+			ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5112A;
+		}
+
+	} else if (ah->ah_radio_5ghz_revision < AR5K_SREV_RAD_SC1) {
+		ah->ah_radio = AR5K_RF2413;
+		ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5112A;
 	} else {
+
 		ah->ah_radio = AR5K_RF5413;
+
+		if(ah->ah_mac_srev <= AR5K_SREV_VER_AR5424 &&
+		ah->ah_mac_srev >= AR5K_SREV_VER_AR2424) {
+			ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5424;
+		} else if(ah->ah_mac_srev >= AR5K_SREV_VER_AR2425) {
+			ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5112;
+		} else {
+			ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5112A;
+		}
+
 	}
 
 	ah->ah_phy = AR5K_PHY(0);
diff --git a/drivers/net/wireless/ath5k/reg.h b/drivers/net/wireless/ath5k/reg.h
index 2f41c83..30629b3 100644
--- a/drivers/net/wireless/ath5k/reg.h
+++ b/drivers/net/wireless/ath5k/reg.h
@@ -1923,7 +1923,9 @@ after DFS is enabled */
 #define AR5K_PHY_SDELAY_32MHZ		0x000000ff
 #define AR5K_PHY_SPENDING		0x99f8
 #define AR5K_PHY_SPENDING_RF5111	0x00000018
-#define AR5K_PHY_SPENDING_RF5112	0x00000014
+#define AR5K_PHY_SPENDING_RF5112	0x00000014 /* <- i 've only seen this on 2425 dumps ! */
+#define AR5K_PHY_SPENDING_RF5112A	0x0000000e /* but since i only have 5112A-based chips */
+#define AR5K_PHY_SPENDING_RF5424	0x00000012 /* to test it might be also for old 5112.  */
 
 /*
  * Misc PHY/radio registers [5110 - 5111]



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 3/8] ath5k: Identify RF2413 and deal with PHY_SPENDING
  2008-02-24  4:19 [PATCH 3/8] ath5k: Identify RF2413 and deal with PHY_SPENDING Nick Kossifidis
@ 2008-02-27  4:02 ` Luis R. Rodriguez
  2008-02-27  5:57   ` [ath5k-devel] " Nick Kossifidis
  0 siblings, 1 reply; 4+ messages in thread
From: Luis R. Rodriguez @ 2008-02-27  4:02 UTC (permalink / raw)
  To: ath5k-devel, linux-wireless, linville, bruno, jirislaby, mcgrof

On Sat, Feb 23, 2008 at 11:19 PM, Nick Kossifidis <mick@madwifi.org> wrote:
>  * Attach RF2413.
>
>   * Propertly handle different AR5K_PHY_SPENDING settings for each RF
>  chip by adding a field in ath5k_hw. This way we won't have to check
>  inside hw_reset (see next patch).
>
>  Changes-licensed-under: ISC
>  Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>

Please run through checkpatch first. BTW do we know what this
AR5K_PHY_SPENDING is for?

  Luis

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ath5k-devel] [PATCH 3/8] ath5k: Identify RF2413 and deal with PHY_SPENDING
  2008-02-27  4:02 ` Luis R. Rodriguez
@ 2008-02-27  5:57   ` Nick Kossifidis
  0 siblings, 0 replies; 4+ messages in thread
From: Nick Kossifidis @ 2008-02-27  5:57 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: ath5k-devel, linux-wireless, linville, bruno, jirislaby

2008/2/27, Luis R. Rodriguez <mcgrof@gmail.com>:
> On Sat, Feb 23, 2008 at 11:19 PM, Nick Kossifidis <mick@madwifi.org> wrote:
>  >  * Attach RF2413.
>  >
>  >   * Propertly handle different AR5K_PHY_SPENDING settings for each RF
>  >  chip by adding a field in ath5k_hw. This way we won't have to check
>  >  inside hw_reset (see next patch).
>  >
>  >  Changes-licensed-under: ISC
>  >  Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
>
>
> Please run through checkpatch first. BTW do we know what this
>  AR5K_PHY_SPENDING is for?
>
>

Some kind of interval used to switch to 32Khz mode (power save using
external 32Khz crystal instead of core clock) i guess...


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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 3/8] ath5k: Identify RF2413 and deal with PHY_SPENDING
  2008-02-28 22:56 [PATCH 1/8] ath5k: Add RF2413 srev values Luis R. Rodriguez
@ 2008-02-28 22:58 ` Luis R. Rodriguez
  0 siblings, 0 replies; 4+ messages in thread
From: Luis R. Rodriguez @ 2008-02-28 22:58 UTC (permalink / raw)
  To: linville; +Cc: ath5k-devel, linux-wireless, jirislaby, mickflemm, bruno, me

 * Attach RF2413.

 * Propertly handle different AR5K_PHY_SPENDING settings for each RF
chip by adding a field in ath5k_hw. This way we won't have to check
inside hw_reset (see next patch).

Changes-licensed-under: ISC
Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@winlab.rutgers.edu>
---
 drivers/net/wireless/ath5k/ath5k.h |    1 +
 drivers/net/wireless/ath5k/hw.c    |   27 +++++++++++++++++++++++++--
 drivers/net/wireless/ath5k/reg.h   |    4 +++-
 3 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath5k/ath5k.h b/drivers/net/wireless/ath5k/ath5k.h
index 25c8e98..c0b6596 100644
--- a/drivers/net/wireless/ath5k/ath5k.h
+++ b/drivers/net/wireless/ath5k/ath5k.h
@@ -966,6 +966,7 @@ struct ath5k_hw {
 	u16			ah_phy_revision;
 	u16			ah_radio_5ghz_revision;
 	u16			ah_radio_2ghz_revision;
+	u32			ah_phy_spending;
 
 	enum ath5k_version	ah_version;
 	enum ath5k_radio	ah_radio;
diff --git a/drivers/net/wireless/ath5k/hw.c b/drivers/net/wireless/ath5k/hw.c
index 998da6b..96b881d 100644
--- a/drivers/net/wireless/ath5k/hw.c
+++ b/drivers/net/wireless/ath5k/hw.c
@@ -208,7 +208,7 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
 
 	/* Identify single chip solutions */
 	if((srev <= AR5K_SREV_VER_AR5414) &&
-	(srev >= AR5K_SREV_VER_AR2424)) {
+	(srev >= AR5K_SREV_VER_AR2413)) {
 		ah->ah_single_chip = true;
 	} else {
 		ah->ah_single_chip = false;
@@ -223,10 +223,33 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
 		ah->ah_radio = AR5K_RF5110;
 	} else if (ah->ah_radio_5ghz_revision < AR5K_SREV_RAD_5112) {
 		ah->ah_radio = AR5K_RF5111;
-	} else if (ah->ah_radio_5ghz_revision < AR5K_SREV_RAD_SC1) {
+		ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5111;
+	} else if (ah->ah_radio_5ghz_revision < AR5K_SREV_RAD_SC0) {
+
 		ah->ah_radio = AR5K_RF5112;
+
+		if (ah->ah_radio_5ghz_revision < AR5K_SREV_RAD_5112A) {
+			ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5112;
+		} else {
+			ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5112A;
+		}
+
+	} else if (ah->ah_radio_5ghz_revision < AR5K_SREV_RAD_SC1) {
+		ah->ah_radio = AR5K_RF2413;
+		ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5112A;
 	} else {
+
 		ah->ah_radio = AR5K_RF5413;
+
+		if (ah->ah_mac_srev <= AR5K_SREV_VER_AR5424 &&
+			ah->ah_mac_srev >= AR5K_SREV_VER_AR2424)
+			ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5424;
+		else if (ah->ah_mac_srev >= AR5K_SREV_VER_AR2425)
+			ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5112;
+		else
+			ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5112A;
+
+
 	}
 
 	ah->ah_phy = AR5K_PHY(0);
diff --git a/drivers/net/wireless/ath5k/reg.h b/drivers/net/wireless/ath5k/reg.h
index 2f41c83..30629b3 100644
--- a/drivers/net/wireless/ath5k/reg.h
+++ b/drivers/net/wireless/ath5k/reg.h
@@ -1923,7 +1923,9 @@ after DFS is enabled */
 #define AR5K_PHY_SDELAY_32MHZ		0x000000ff
 #define AR5K_PHY_SPENDING		0x99f8
 #define AR5K_PHY_SPENDING_RF5111	0x00000018
-#define AR5K_PHY_SPENDING_RF5112	0x00000014
+#define AR5K_PHY_SPENDING_RF5112	0x00000014 /* <- i 've only seen this on 2425 dumps ! */
+#define AR5K_PHY_SPENDING_RF5112A	0x0000000e /* but since i only have 5112A-based chips */
+#define AR5K_PHY_SPENDING_RF5424	0x00000012 /* to test it might be also for old 5112.  */
 
 /*
  * Misc PHY/radio registers [5110 - 5111]
-- 
1.5.3.7


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-02-28 22:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-24  4:19 [PATCH 3/8] ath5k: Identify RF2413 and deal with PHY_SPENDING Nick Kossifidis
2008-02-27  4:02 ` Luis R. Rodriguez
2008-02-27  5:57   ` [ath5k-devel] " Nick Kossifidis
  -- strict thread matches above, loose matches on Subject: below --
2008-02-28 22:56 [PATCH 1/8] ath5k: Add RF2413 srev values Luis R. Rodriguez
2008-02-28 22:58 ` [PATCH 3/8] ath5k: Identify RF2413 and deal with PHY_SPENDING Luis R. Rodriguez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox