public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jiri Slaby <jirislaby@gmail.com>
To: <linville@tuxdriver.com>
Cc: <linux-kernel@vger.kernel.org>
Cc: <linux-wireless@vger.kernel.org>
Cc: <netdev@vger.kernel.org>
Subject: [PATCH 5/5] Net: ath5k, kconfig changes
Date: Tue, 28 Aug 2007 12:01:30 -0400	[thread overview]
Message-ID: <280951420471148977@pripojeni.net> (raw)
In-Reply-To: <2713029743177393055@pripojeni.net>

ath5k, kconfig changes

- build 5120, 5111 and 5112 optionally
- alter Kconfig text

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>

---
commit 0902114e92b19bc080780f21f98807688244fc8f
tree d7b4a039e4d14ae73faf1b33907c38825d198461
parent 330c2ab9a53ddce27003218bd546034e8eeeff17
author Jiri Slaby <jirislaby@gmail.com> Tue, 28 Aug 2007 17:39:44 +0200
committer Jiri Slaby <jirislaby@gmail.com> Tue, 28 Aug 2007 17:39:44 +0200

 drivers/net/wireless/Kconfig            |   30 +++++++++++++++++++--------
 drivers/net/wireless/ath5k_hw_inivals.c |   35 ++++++++++++++++++++++++++++---
 drivers/net/wireless/ath5k_hw_phy.c     |   24 +++++++++++++++++++++
 3 files changed, 77 insertions(+), 12 deletions(-)

diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
index 00b4fcd..a4608f9 100644
--- a/drivers/net/wireless/Kconfig
+++ b/drivers/net/wireless/Kconfig
@@ -856,18 +856,30 @@ config IWL3945
 	  will be called iwl3945.ko.
 
 config ATH5K
-	tristate "Atheros 5xxx wireless cards support"
-	depends on MAC80211
-	depends on PCI
-	default m
+	tristate "Atheros 5xxx PCI/Cardbus wireless cards"
+	depends on PCI && MAC80211 && WLAN_80211 && EXPERIMENTAL
 	---help---
-	  This module adds support for atheros 5xxx (e.g. 5212) wireless
-	  cards. If you have this card in your PC, select this to be build.
+	  Say Y here if you intend to attach an Atheros 5xxx 
+	  series Cardbus or PCI wireless Ethernet networking card to 
+	  your computer. This driver uses mac80211 stack.
 
-	  This driver uses the kernel's mac80211 subsystem.
+	  To compile this driver as a module, choose M here: the module will be
+	  called ath5k.  If unsure, say M.
 
-	  If you choose to build a module, it'll be called ath5k. Say M if
-	  unsure.
+config ATH5K_AR5210
+	bool "Support AR5210"
+	depends on ATH5K
+	default y
+
+config ATH5K_AR5211
+	bool "Support AR5211"
+	depends on ATH5K
+	default y
+
+config ATH5K_AR5212
+	bool "Support AR5212"
+	depends on ATH5K
+	default y
 
 source "drivers/net/wireless/hostap/Kconfig"
 source "drivers/net/wireless/bcm43xx/Kconfig"
diff --git a/drivers/net/wireless/ath5k_hw_inivals.c b/drivers/net/wireless/ath5k_hw_inivals.c
index 062e03d..0531ad3 100644
--- a/drivers/net/wireless/ath5k_hw_inivals.c
+++ b/drivers/net/wireless/ath5k_hw_inivals.c
@@ -38,6 +38,7 @@ struct ath5k_ini_mode {
 	u32	mode_value[5];
 };
 
+#ifdef CONFIG_ATH5K_AR5210
 /* Initial register settings for AR5210 */
 static const struct ath5k_ini ar5210_ini[] = {
 	/* PCU and MAC registers */
@@ -249,7 +250,9 @@ static const struct ath5k_ini ar5210_ini[] = {
 	{ AR5K_PHY(52), 0x00000014 },
 	{ AR5K_PHY_ACT, AR5K_PHY_ACT_ENABLE },
 };
+#endif
 
+#ifdef CONFIG_ATH5K_AR5211
 /* Initial register settings for AR5211 */
 static const struct ath5k_ini ar5211_ini[] = {
 	{ AR5K_RXDP,		0x00000000 },
@@ -448,7 +451,9 @@ static const struct ath5k_ini_mode ar5211_ini_mode[] = {
 	{ AR5K_RF_BUFFER_CONTROL_4,
 		{ 0x00000010, 0x00000014, 0x00000010, 0x00000010, 0x00000010 } },
 };
+#endif
 
+#ifdef CONFIG_ATH5K_AR5212
 /* Initial register settings for AR5212 */
 static const struct ath5k_ini ar5212_ini[] = {
 	{ AR5K_RXDP,		0x00000000 },
@@ -842,12 +847,14 @@ static const struct ath5k_ini_mode ar5212_rf5112_ini_mode[] = {
 	{ AR5K_PHY_GAIN_2GHZ,
 		{ 0x642c0140, 0x642c0140, 0x6442c160, 0x6442c160, 0x6442c160 } },
 };
+#endif
 
 /*
  * Initial BaseBand Gain settings for RF5111/5112 (only AR5210 comes with
  * RF5110 so initial BB Gain settings are included in AR5K_AR5210_INI)
  */
 
+#if defined(CONFIG_ATH5K_AR5211) || defined (CONFIG_ATH5K_AR5212)
 /* RF5111 Initial BaseBand Gain settings */
 static const struct ath5k_ini rf5111_ini_bbgain[] = {
 	{ AR5K_BB_GAIN(0), 0x00000000 },
@@ -915,7 +922,9 @@ static const struct ath5k_ini rf5111_ini_bbgain[] = {
 	{ AR5K_BB_GAIN(62), 0x00000002 },
 	{ AR5K_BB_GAIN(63), 0x00000016 },
 };
+#endif
 
+#ifdef CONFIG_ATH5K_AR5212
 /* RF 5112 Initial BaseBand Gain settings */
 static const struct ath5k_ini rf5112_ini_bbgain[] = {
 	{ AR5K_BB_GAIN(0), 0x00000000 },
@@ -983,7 +992,10 @@ static const struct ath5k_ini rf5112_ini_bbgain[] = {
 	{ AR5K_BB_GAIN(62), 0x00000010 },
 	{ AR5K_BB_GAIN(63), 0x0000001a },
 };
+#endif
 
+#if defined(CONFIG_ATH5K_AR5210) || defined(CONFIG_ATH5K_AR5211) \
+	|| defined(CONFIG_ATH5K_AR5212)
 /*
  * Write initial register dump
  */
@@ -1014,7 +1026,12 @@ static void ath5k_hw_ini_registers(struct ath_hw *hal, unsigned int size,
 		}
 	}
 }
+#endif
 
+#if defined(CONFIG_ATH5K_AR5211) || defined(CONFIG_ATH5K_AR5212)
+/*
+ * Write initial mode-specific register dump
+ */
 static void ath5k_hw_ini_mode_registers(struct ath_hw *hal,
 		unsigned int size, const struct ath5k_ini_mode *ini_mode,
 		u8 mode)
@@ -1028,6 +1045,7 @@ static void ath5k_hw_ini_mode_registers(struct ath_hw *hal,
 	}
 
 }
+#endif
 
 int ath5k_hw_write_initvals(struct ath_hw *hal, u8 mode, bool change_channel)
 {
@@ -1035,6 +1053,7 @@ int ath5k_hw_write_initvals(struct ath_hw *hal, u8 mode, bool change_channel)
 	 * Write initial mode-specific settings
 	 */
 	/*For 5212*/
+#ifdef CONFIG_ATH5K_AR5212
 	if (hal->ah_version == AR5K_AR5212) {
 		ath5k_hw_ini_mode_registers(hal, ARRAY_SIZE(ar5212_ini_mode),
 				ar5212_ini_mode, mode);
@@ -1047,16 +1066,19 @@ int ath5k_hw_write_initvals(struct ath_hw *hal, u8 mode, bool change_channel)
 					ARRAY_SIZE(ar5212_rf5112_ini_mode),
 					ar5212_rf5112_ini_mode, mode);
 	}
+#endif
+#ifdef CONFIG_ATH5K_AR5211
 	/*For 5211*/
 	if (hal->ah_version == AR5K_AR5211)
 		ath5k_hw_ini_mode_registers(hal, ARRAY_SIZE(ar5211_ini_mode),
 				ar5211_ini_mode, mode);
+#endif
 	/* For 5210 mode settings check out ath5k_hw_reset_tx_queue */
 
 	/*
 	 * Write initial settings common for all modes
 	 */
-	/*For 5212*/
+#ifdef CONFIG_ATH5K_AR5212
 	if (hal->ah_version == AR5K_AR5212) {
 		ath5k_hw_ini_registers(hal, ARRAY_SIZE(ar5212_ini),
 				ar5212_ini, change_channel);
@@ -1075,16 +1097,23 @@ int ath5k_hw_write_initvals(struct ath_hw *hal, u8 mode, bool change_channel)
 					ARRAY_SIZE(rf5111_ini_bbgain),
 					rf5111_ini_bbgain, change_channel);
 		}
-	} else if (hal->ah_version == AR5K_AR5211) {
+	}
+#endif
+#ifdef CONFIG_ATH5K_AR5211
+	if (hal->ah_version == AR5K_AR5211) {
 		ath5k_hw_ini_registers(hal, ARRAY_SIZE(ar5211_ini),
 				ar5211_ini, change_channel);
 		/* AR5211 only comes with 5111 */
 		ath5k_hw_ini_registers(hal, ARRAY_SIZE(rf5111_ini_bbgain),
 				rf5111_ini_bbgain, change_channel);
-	} else if (hal->ah_version == AR5K_AR5210) {
+	}
+#endif
+#ifdef CONFIG_ATH5K_AR5210
+	if (hal->ah_version == AR5K_AR5210) {
 		ath5k_hw_ini_registers(hal, ARRAY_SIZE(ar5210_ini),
 				ar5210_ini, change_channel);
 	}
+#endif
 
 	return 0;
 }
diff --git a/drivers/net/wireless/ath5k_hw_phy.c b/drivers/net/wireless/ath5k_hw_phy.c
index 899b79e..510bf86 100644
--- a/drivers/net/wireless/ath5k_hw_phy.c
+++ b/drivers/net/wireless/ath5k_hw_phy.c
@@ -35,6 +35,7 @@ struct ath5k_gain_opt {
 	const struct ath5k_gain_opt_step	go_step[AR5K_GAIN_STEP_COUNT];
 };
 
+#if defined(CONFIG_ATH5K_AR5211) || defined(CONFIG_ATH5K_AR5212)
 /* RF5111 mode-specific init registers */
 static const struct ath5k_ini_rf rfregs_5111[] = {
 	{ 0, 0x989c,
@@ -214,8 +215,10 @@ static const struct ath5k_gain_opt rfgain_opt_5111 = {
 		{ { 2, 1, 1, 0 }, -6 }
 	}
 };
+#endif
 
 /* RF5112 mode-specific init registers */
+#ifdef CONFIG_ATH5K_AR5212
 static const struct ath5k_ini_rf rfregs_5112[] = {
 	{ 1, 0x98d4,
 	/*    mode a/XR   mode aTurbo mode b      mode g      mode gTurbo */
@@ -529,6 +532,7 @@ static const struct ath5k_gain_opt rfgain_opt_5112 = {
 		{ { 0, 1, 0, 1, 1, 0, 1 }, -16 },
 	}
 };
+#endif
 
 /*
  * Used to modify RF Banks before writing them to AR5K_RF_BUFFER
@@ -661,12 +665,16 @@ static s32 ath5k_hw_rfregs_gain_adjust(struct ath_hw *hal)
 	int ret = 0;
 
 	switch (hal->ah_radio) {
+#if defined(CONFIG_ATH5K_AR5211) || defined(CONFIG_ATH5K_AR5212)
 	case AR5K_RF5111:
 		go = &rfgain_opt_5111;
 		break;
+#endif
+#if defined(CONFIG_ATH5K_AR5212)
 	case AR5K_RF5112:
 		go = &rfgain_opt_5112;
 		break;
+#endif
 	default:
 		return 0;
 	}
@@ -715,6 +723,7 @@ done:
 	return ret;
 }
 
+#if defined(CONFIG_ATH5K_AR5211) || defined(CONFIG_ATH5K_AR5212)
 /*
  * Read EEPROM Calibration data, modify RF Banks and Initialize RF5111
  */
@@ -815,7 +824,9 @@ static int ath5k_hw_rf5111_rfregs(struct ath_hw *hal,
 
 	return 0;
 }
+#endif
 
+#ifdef CONFIG_ATH5K_AR5212
 /*
  * Read EEPROM Calibration data, modify RF Banks and Initialize RF5112
  */
@@ -910,6 +921,7 @@ static int ath5k_hw_rf5112_rfregs(struct ath_hw *hal,
 
 	return 0;
 }
+#endif
 
 /*
  * Initialize RF
@@ -921,10 +933,13 @@ int ath5k_hw_rfregs(struct ath_hw *hal, struct ieee80211_channel *channel,
 	int ret;
 
 	switch (hal->ah_radio) {
+#if defined(CONFIG_ATH5K_AR5211) || defined(CONFIG_ATH5K_AR5212)
 	case AR5K_RF5111:
 		hal->ah_rf_banks_size = sizeof(rfregs_5111);
 		func = ath5k_hw_rf5111_rfregs;
 		break;
+#endif
+#ifdef CONFIG_ATH5K_AR5212
 	case AR5K_RF5112:
 		if (hal->ah_radio_5ghz_revision >= AR5K_SREV_RAD_5112A)
 			hal->ah_rf_banks_size = sizeof(rfregs_5112a);
@@ -932,6 +947,7 @@ int ath5k_hw_rfregs(struct ath_hw *hal, struct ieee80211_channel *channel,
 			hal->ah_rf_banks_size = sizeof(rfregs_5112);
 		func = ath5k_hw_rf5112_rfregs;
 		break;
+#endif
 	default:
 		return -EINVAL;
 	}
@@ -958,14 +974,18 @@ int ath5k_hw_rfgain(struct ath_hw *hal, unsigned int freq)
 	unsigned int i, size;
 
 	switch (hal->ah_radio) {
+#if defined(CONFIG_ATH5K_AR5211) || defined(CONFIG_ATH5K_AR5212)
 	case AR5K_RF5111:
 		ath5k_rfg = rfgain_5111;
 		size = ARRAY_SIZE(rfgain_5111);
 		break;
+#endif
+#ifdef CONFIG_ATH5K_AR5212
 	case AR5K_RF5112:
 		ath5k_rfg = rfgain_5112;
 		size = ARRAY_SIZE(rfgain_5112);
 		break;
+#endif
 	default:
 		return -EINVAL;
 	}
@@ -1031,6 +1051,7 @@ int ath5k_hw_set_rfgain_opt(struct ath_hw *hal)
 {
 	/* Initialize the gain optimization values */
 	switch (hal->ah_radio) {
+#if defined(CONFIG_ATH5K_AR5211) || defined(CONFIG_ATH5K_AR5212)
 	case AR5K_RF5111:
 		hal->ah_gain.g_step_idx = rfgain_opt_5111.go_default;
 		hal->ah_gain.g_step =
@@ -1039,6 +1060,8 @@ int ath5k_hw_set_rfgain_opt(struct ath_hw *hal)
 		hal->ah_gain.g_high = 35;
 		hal->ah_gain.g_active = 1;
 		break;
+#endif
+#ifdef CONFIG_ATH5K_AR5212
 	case AR5K_RF5112:
 		hal->ah_gain.g_step_idx = rfgain_opt_5112.go_default;
 		hal->ah_gain.g_step =
@@ -1047,6 +1070,7 @@ int ath5k_hw_set_rfgain_opt(struct ath_hw *hal)
 		hal->ah_gain.g_high = 85;
 		hal->ah_gain.g_active = 1;
 		break;
+#endif
 	default:
 		return -EINVAL;
 	}

  parent reply	other threads:[~2007-08-28 16:01 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2713029743177393055@pripojeni.net>
2007-08-28 15:59 ` [PATCH 2/5] Net: ath5k, switch to ioread/iowrite Jiri Slaby
2007-08-28 16:00 ` [PATCH 3/5] Net: ath5k, use int as retval Jiri Slaby
2007-08-30 12:40   ` John W. Linville
2007-09-01 20:08     ` Jiri Slaby
2007-09-02 15:55       ` Nick Kossifidis
2007-08-28 16:00 ` [PATCH 4/5] Net: ath5k, license is GPLv2 Jiri Slaby
2007-08-28 17:11   ` Christoph Hellwig
2007-08-28 20:11     ` Luis R. Rodriguez
2007-08-29 17:29     ` Valdis.Kletnieks
2007-08-29 18:01       ` Jon Smirl
2007-08-29 18:28         ` Alan Cox
2007-08-29 19:33           ` Jon Smirl
2007-08-29 19:37             ` Michael Buesch
2007-08-30  8:26               ` Jarek Poplawski
2007-08-30  8:32                 ` Jarek Poplawski
2007-08-29 19:45             ` Alan Cox
2007-08-30 13:45               ` Jarek Poplawski
2007-08-30 13:02             ` David Newall
2007-08-29  9:59   ` Johannes Berg
2007-08-29 10:35     ` Jiri Slaby
2007-08-29 13:13       ` Xavier Bestel
2007-08-30 11:59         ` Johannes Berg
2007-08-28 16:01 ` Jiri Slaby [this message]
2007-08-28 17:13   ` [PATCH 5/5] Net: ath5k, kconfig changes Christoph Hellwig
2007-08-30  1:38     ` Nick Kossifidis
2007-08-30 12:35       ` Christoph Hellwig
2007-08-30 12:36       ` John W. Linville
2007-08-30 22:18         ` Nick Kossifidis
2007-09-01  5:58           ` Nick Kossifidis
2007-08-31 11:58         ` Dan Williams
2007-08-31 13:30           ` Jeff Garzik
2007-08-31 14:32             ` Dan Williams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=280951420471148977@pripojeni.net \
    --to=jirislaby@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox