Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH 0/5] Support for Intel(r) WiMax/WiFi Link 5050 Series
@ 2008-12-02  0:32 Reinette Chatre
  2008-12-02  0:32 ` [PATCH 1/5] iwlwifi: 5150 add support for 5150 Reinette Chatre
  2008-12-03 22:54 ` [PATCH 0/5] Support for Intel(r) WiMax/WiFi Link 5050 Series Dan Williams
  0 siblings, 2 replies; 8+ messages in thread
From: Reinette Chatre @ 2008-12-02  0:32 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Reinette Chatre

This series adds support for a member of the Intel(r)
 WiMax/WiFi Link 5050 Series.

[PATCH 1/5] iwlwifi: 5150 add support for 5150
[PATCH 2/5] iwlwifi: 5150 enable DC calibration
[PATCH 3/5] iwlwifi: 5150 compute ct kill threshold
[PATCH 4/5] iwlwifi: 5150 parametrize eeprom versions
[PATCH 5/5] iwlwifi: 5150 enable LO, TXIQ and BB calibrations


Thank you

Reinette

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

* [PATCH 1/5] iwlwifi: 5150 add support for 5150
  2008-12-02  0:32 [PATCH 0/5] Support for Intel(r) WiMax/WiFi Link 5050 Series Reinette Chatre
@ 2008-12-02  0:32 ` Reinette Chatre
  2008-12-02  0:32   ` [PATCH 2/5] iwlwifi: 5150 enable DC calibration Reinette Chatre
  2008-12-03 22:54 ` [PATCH 0/5] Support for Intel(r) WiMax/WiFi Link 5050 Series Dan Williams
  1 sibling, 1 reply; 8+ messages in thread
From: Reinette Chatre @ 2008-12-02  0:32 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Tomas Winkler, Reinette Chatre

From: Tomas Winkler <tomas.winkler@intel.com>

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-5000.c |   12 ++++++++++++
 drivers/net/wireless/iwlwifi/iwl-agn.c  |    4 ++++
 drivers/net/wireless/iwlwifi/iwl-dev.h  |    1 +
 3 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index c3dce81..8f92ab0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -45,8 +45,10 @@
 #include "iwl-5000-hw.h"
 
 #define IWL5000_UCODE_API  "-1"
+#define IWL5150_UCODE_API  "-1"
 
 #define IWL5000_MODULE_FIRMWARE "iwlwifi-5000" IWL5000_UCODE_API ".ucode"
+#define IWL5150_MODULE_FIRMWARE "iwlwifi-5150" IWL5150_UCODE_API ".ucode"
 
 static const u16 iwl5000_default_queue_to_tx_fifo[] = {
 	IWL_TX_FIFO_AC3,
@@ -1563,7 +1565,17 @@ struct iwl_cfg iwl5350_agn_cfg = {
 	.mod_params = &iwl50_mod_params,
 };
 
+struct iwl_cfg iwl5150_agn_cfg = {
+	.name = "5150AGN",
+	.fw_name = IWL5150_MODULE_FIRMWARE,
+	.sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N,
+	.ops = &iwl5000_ops,
+	.eeprom_size = IWL_5000_EEPROM_IMG_SIZE,
+	.mod_params = &iwl50_mod_params,
+};
+
 MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE);
+MODULE_FIRMWARE(IWL5150_MODULE_FIRMWARE);
 
 module_param_named(disable50, iwl50_mod_params.disable, int, 0444);
 MODULE_PARM_DESC(disable50,
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 8008b10..247b54d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -4220,7 +4220,11 @@ static struct pci_device_id iwl_hw_card_ids[] = {
 	{IWL_PCI_DEVICE(0x423A, 0x1001, iwl5350_agn_cfg)},
 	{IWL_PCI_DEVICE(0x423A, 0x1021, iwl5350_agn_cfg)},
 	{IWL_PCI_DEVICE(0x423B, 0x1011, iwl5350_agn_cfg)},
+/* 5150 Wifi/WiMax */
+	{IWL_PCI_DEVICE(0x423C, PCI_ANY_ID, iwl5150_agn_cfg)},
+	{IWL_PCI_DEVICE(0x423D, PCI_ANY_ID, iwl5150_agn_cfg)},
 #endif /* CONFIG_IWL5000 */
+
 	{0}
 };
 MODULE_DEVICE_TABLE(pci, iwl_hw_card_ids);
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 4da988e..cb6edfd 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -54,6 +54,7 @@ extern struct iwl_cfg iwl5100_agn_cfg;
 extern struct iwl_cfg iwl5350_agn_cfg;
 extern struct iwl_cfg iwl5100_bg_cfg;
 extern struct iwl_cfg iwl5100_abg_cfg;
+extern struct iwl_cfg iwl5150_agn_cfg;
 
 /* CT-KILL constants */
 #define CT_KILL_THRESHOLD	110 /* in Celsius */
-- 
1.5.4.3


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

* [PATCH 2/5] iwlwifi: 5150 enable DC calibration
  2008-12-02  0:32 ` [PATCH 1/5] iwlwifi: 5150 add support for 5150 Reinette Chatre
@ 2008-12-02  0:32   ` Reinette Chatre
  2008-12-02  0:32     ` [PATCH 3/5] iwlwifi: 5150 compute ct kill threshold Reinette Chatre
  0 siblings, 1 reply; 8+ messages in thread
From: Reinette Chatre @ 2008-12-02  0:32 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Tomas Winkler, Reinette Chatre

From: Tomas Winkler <tomas.winkler@intel.com>

This patch enables DC calibration for 5150

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-5000.c |    7 ++++++-
 drivers/net/wireless/iwlwifi/iwl-dev.h  |    1 +
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index 8f92ab0..c1e7a42 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -477,6 +477,9 @@ static void iwl5000_rx_calib_result(struct iwl_priv *priv,
 	 * uCode. iwl_send_calib_results sends them in a row according to their
 	 * index. We sort them here */
 	switch (hdr->op_code) {
+	case IWL_PHY_CALIBRATE_DC_CMD:
+		index = IWL_CALIB_DC;
+		break;
 	case IWL_PHY_CALIBRATE_LO_CMD:
 		index = IWL_CALIB_LO;
 		break;
@@ -873,7 +876,9 @@ static int iwl5000_hw_set_hw_params(struct iwl_priv *priv)
 			BIT(IWL_CALIB_BASE_BAND);
 		break;
 	case CSR_HW_REV_TYPE_5150:
-		priv->hw_params.calib_init_cfg = 0;
+		priv->hw_params.calib_init_cfg =
+			BIT(IWL_CALIB_DC);
+
 		break;
 	}
 
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index cb6edfd..b2ce29c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -693,6 +693,7 @@ struct statistics_general_data {
  */
 enum iwl_calib {
 	IWL_CALIB_XTAL,
+	IWL_CALIB_DC,
 	IWL_CALIB_LO,
 	IWL_CALIB_TX_IQ,
 	IWL_CALIB_TX_IQ_PERD,
-- 
1.5.4.3


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

* [PATCH 3/5] iwlwifi: 5150 compute ct kill threshold
  2008-12-02  0:32   ` [PATCH 2/5] iwlwifi: 5150 enable DC calibration Reinette Chatre
@ 2008-12-02  0:32     ` Reinette Chatre
  2008-12-02  0:32       ` [PATCH 4/5] iwlwifi: 5150 parametrize eeprom versions Reinette Chatre
  0 siblings, 1 reply; 8+ messages in thread
From: Reinette Chatre @ 2008-12-02  0:32 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Tomas Winkler, Reinette Chatre

From: Tomas Winkler <tomas.winkler@intel.com>

This patch adds computation of ct kill threshold
for 5150. Threshold is computed from calibration
data in the EEPROM.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-5000.c   |   13 ++++++++++++-
 drivers/net/wireless/iwlwifi/iwl-eeprom.h |    1 +
 2 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index c1e7a42..26e04ec 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -426,6 +426,17 @@ static const u8 *iwl5000_eeprom_query_addr(const struct iwl_priv *priv,
 	return &priv->eeprom[address];
 }
 
+static s32 iwl5150_get_ct_threshold(struct iwl_priv *priv)
+{
+	const s32 volt2temp_coef = -5;
+	u16 *temp_calib = (u16 *)iwl_eeprom_query_addr(priv,
+						EEPROM_5000_TEMPERATURE);
+	/* offset =  temperate -  voltage / coef */
+	s32 offset = temp_calib[0] - temp_calib[1] / volt2temp_coef;
+	s32 threshold = (s32)CELSIUS_TO_KELVIN(CT_KILL_THRESHOLD) - offset;
+	return threshold * volt2temp_coef;
+}
+
 /*
  *  Calibration
  */
@@ -859,7 +870,7 @@ static int iwl5000_hw_set_hw_params(struct iwl_priv *priv)
 	case CSR_HW_REV_TYPE_5150:
 		/* 5150 wants in Kelvin */
 		priv->hw_params.ct_kill_threshold =
-				CELSIUS_TO_KELVIN(CT_KILL_THRESHOLD);
+				iwl5150_get_ct_threshold(priv);
 		break;
 	}
 
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
index 997f23c..8f6b05f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
@@ -147,6 +147,7 @@ struct iwl_eeprom_channel {
 /*5000 calibrations */
 #define EEPROM_5000_CALIB_ALL	(INDIRECT_ADDRESS | INDIRECT_CALIBRATION)
 #define EEPROM_5000_XTAL	((2*0x128) | EEPROM_5000_CALIB_ALL)
+#define EEPROM_5000_TEMPERATURE ((2*0x12A) | EEPROM_5000_CALIB_ALL)
 
 /* 5000 links */
 #define EEPROM_5000_LINK_HOST             (2*0x64)
-- 
1.5.4.3


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

* [PATCH 4/5] iwlwifi: 5150 parametrize eeprom versions
  2008-12-02  0:32     ` [PATCH 3/5] iwlwifi: 5150 compute ct kill threshold Reinette Chatre
@ 2008-12-02  0:32       ` Reinette Chatre
  2008-12-02  0:32         ` [PATCH 5/5] iwlwifi: 5150 enable LO, TXIQ and BB calibrations Reinette Chatre
  0 siblings, 1 reply; 8+ messages in thread
From: Reinette Chatre @ 2008-12-02  0:32 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Tomas Winkler, Reinette Chatre

From: Tomas Winkler <tomas.winkler@intel.com>

Add support for 5150 eeprom versions

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-5000.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index 26e04ec..488b580 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -1587,6 +1587,8 @@ struct iwl_cfg iwl5150_agn_cfg = {
 	.sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N,
 	.ops = &iwl5000_ops,
 	.eeprom_size = IWL_5000_EEPROM_IMG_SIZE,
+	.eeprom_ver = EEPROM_5050_EEPROM_VERSION,
+	.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,
 	.mod_params = &iwl50_mod_params,
 };
 
-- 
1.5.4.3


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

* [PATCH 5/5] iwlwifi: 5150 enable LO, TXIQ and BB calibrations
  2008-12-02  0:32       ` [PATCH 4/5] iwlwifi: 5150 parametrize eeprom versions Reinette Chatre
@ 2008-12-02  0:32         ` Reinette Chatre
  0 siblings, 0 replies; 8+ messages in thread
From: Reinette Chatre @ 2008-12-02  0:32 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, ipw3945-devel, Winkler, Tomas, Reinette Chatre

From: Winkler, Tomas <tomas.winkler@intel.com>

This patch enables LO, TXIQ, and BB calibrations for 5150

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-5000.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index 488b580..b6c57cb 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -888,7 +888,10 @@ static int iwl5000_hw_set_hw_params(struct iwl_priv *priv)
 		break;
 	case CSR_HW_REV_TYPE_5150:
 		priv->hw_params.calib_init_cfg =
-			BIT(IWL_CALIB_DC);
+			BIT(IWL_CALIB_DC)		|
+			BIT(IWL_CALIB_LO)		|
+			BIT(IWL_CALIB_TX_IQ) 		|
+			BIT(IWL_CALIB_BASE_BAND);
 
 		break;
 	}
-- 
1.5.4.3


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

* Re: [PATCH 0/5] Support for Intel(r) WiMax/WiFi Link 5050 Series
  2008-12-02  0:32 [PATCH 0/5] Support for Intel(r) WiMax/WiFi Link 5050 Series Reinette Chatre
  2008-12-02  0:32 ` [PATCH 1/5] iwlwifi: 5150 add support for 5150 Reinette Chatre
@ 2008-12-03 22:54 ` Dan Williams
  2008-12-03 23:35   ` reinette chatre
  1 sibling, 1 reply; 8+ messages in thread
From: Dan Williams @ 2008-12-03 22:54 UTC (permalink / raw)
  To: Reinette Chatre; +Cc: linville, linux-wireless, ipw3945-devel

On Mon, 2008-12-01 at 16:32 -0800, Reinette Chatre wrote:
> This series adds support for a member of the Intel(r)
>  WiMax/WiFi Link 5050 Series.
> 
> [PATCH 1/5] iwlwifi: 5150 add support for 5150
> [PATCH 2/5] iwlwifi: 5150 enable DC calibration
> [PATCH 3/5] iwlwifi: 5150 compute ct kill threshold
> [PATCH 4/5] iwlwifi: 5150 parametrize eeprom versions
> [PATCH 5/5] iwlwifi: 5150 enable LO, TXIQ and BB calibrations

Awesome, is the 5150 firmware available in the usual places now?  I
don't see it at:

http://intellinuxwireless.org/?n=Downloads

and unless I'm completely blind:

+#define IWL5150_MODULE_FIRMWARE "iwlwifi-5150" IWL5150_UCODE_API ".ucode"

new ucode is required :)

Dan



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

* Re: [PATCH 0/5] Support for Intel(r) WiMax/WiFi Link 5050 Series
  2008-12-03 22:54 ` [PATCH 0/5] Support for Intel(r) WiMax/WiFi Link 5050 Series Dan Williams
@ 2008-12-03 23:35   ` reinette chatre
  0 siblings, 0 replies; 8+ messages in thread
From: reinette chatre @ 2008-12-03 23:35 UTC (permalink / raw)
  To: Dan Williams
  Cc: linville@tuxdriver.com, linux-wireless@vger.kernel.org,
	ipw3945-devel@lists.sourceforge.net

On Wed, 2008-12-03 at 14:54 -0800, Dan Williams wrote:
> On Mon, 2008-12-01 at 16:32 -0800, Reinette Chatre wrote:
> > This series adds support for a member of the Intel(r)
> >  WiMax/WiFi Link 5050 Series.
> > 
> > [PATCH 1/5] iwlwifi: 5150 add support for 5150
> > [PATCH 2/5] iwlwifi: 5150 enable DC calibration
> > [PATCH 3/5] iwlwifi: 5150 compute ct kill threshold
> > [PATCH 4/5] iwlwifi: 5150 parametrize eeprom versions
> > [PATCH 5/5] iwlwifi: 5150 enable LO, TXIQ and BB calibrations
> 
> Awesome, is the 5150 firmware available in the usual places now?  I
> don't see it at:
> 
> http://intellinuxwireless.org/?n=Downloads
> 
> and unless I'm completely blind:
> 
> +#define IWL5150_MODULE_FIRMWARE "iwlwifi-5150" IWL5150_UCODE_API ".ucode"
> 
> new ucode is required :)
> 

yes - new ucode is required but is not yet available for release. When
the ucode is released (we will announce it) it will be available in the
spot you mention above.

Reinette


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

end of thread, other threads:[~2008-12-03 23:34 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-02  0:32 [PATCH 0/5] Support for Intel(r) WiMax/WiFi Link 5050 Series Reinette Chatre
2008-12-02  0:32 ` [PATCH 1/5] iwlwifi: 5150 add support for 5150 Reinette Chatre
2008-12-02  0:32   ` [PATCH 2/5] iwlwifi: 5150 enable DC calibration Reinette Chatre
2008-12-02  0:32     ` [PATCH 3/5] iwlwifi: 5150 compute ct kill threshold Reinette Chatre
2008-12-02  0:32       ` [PATCH 4/5] iwlwifi: 5150 parametrize eeprom versions Reinette Chatre
2008-12-02  0:32         ` [PATCH 5/5] iwlwifi: 5150 enable LO, TXIQ and BB calibrations Reinette Chatre
2008-12-03 22:54 ` [PATCH 0/5] Support for Intel(r) WiMax/WiFi Link 5050 Series Dan Williams
2008-12-03 23:35   ` reinette chatre

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