Linux-Wireless Archive mirror
 help / color / mirror / Atom feed
* [PATCH 3/4] iwlwifi: enable 2-wire bt coex support for non-combo device
  2011-02-21 19:06 [PATCH 0/4] update for 2.6.39 Wey-Yi Guy
@ 2011-02-21 19:06 ` Wey-Yi Guy
  0 siblings, 0 replies; 7+ messages in thread
From: Wey-Yi Guy @ 2011-02-21 19:06 UTC (permalink / raw
  To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy

For non-combo devices, 2-wire BT coex is needed to make sure BT coex
still function with external BT devices

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-agn.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index c04d991..9965215 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2744,9 +2744,11 @@ static void iwl_alive_start(struct iwl_priv *priv)
 			priv->cfg->ops->hcmd->set_rxon_chain(priv, ctx);
 	}
 
-	if (priv->cfg->bt_params &&
-	    !priv->cfg->bt_params->advanced_bt_coexist) {
-		/* Configure Bluetooth device coexistence support */
+	if (!priv->cfg->bt_params || (priv->cfg->bt_params &&
+	    !priv->cfg->bt_params->advanced_bt_coexist)) {
+		/*
+		 * default is 2-wire BT coexexistence support
+		 */
 		priv->cfg->ops->hcmd->send_bt_config(priv);
 	}
 
-- 
1.7.0.4


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

* [PATCH 0/4] update for 2.6.39
@ 2011-02-21 19:45 Wey-Yi Guy
  2011-02-21 19:45 ` [PATCH 1/4] iwlwifi: Limit number of firmware reload Wey-Yi Guy
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Wey-Yi Guy @ 2011-02-21 19:45 UTC (permalink / raw
  To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy

We split legacy(3945/4965) from iwlwifi into separated directory(iwlegacy)
We also fix few firmware related problems

Wey-Yi Guy (3):
  iwlwifi: Limit number of firmware reload
  iwlwifi: Loading correct uCode again when fail to load
  iwlwifi: enable 2-wire bt coex support for non-combo device

Meenakshi Venkataraman (1):
  iwlwifi: split the drivers for agn and legacy devices 3945/4965

these patches are also available from wireless-next-2.6 branch on
 git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6.git

 drivers/net/wireless/Kconfig                     |    1 +
 drivers/net/wireless/Makefile                    |    3 +-
 drivers/net/wireless/iwlegacy/Kconfig            |  116 +
 drivers/net/wireless/iwlegacy/Makefile           |   25 +
 drivers/net/wireless/iwlegacy/iwl-3945-debugfs.c |  523 +++
 drivers/net/wireless/iwlegacy/iwl-3945-debugfs.h |   60 +
 drivers/net/wireless/iwlegacy/iwl-3945-fh.h      |  187 +
 drivers/net/wireless/iwlegacy/iwl-3945-hw.h      |  293 ++
 drivers/net/wireless/iwlegacy/iwl-3945-led.c     |   64 +
 drivers/net/wireless/iwlegacy/iwl-3945-led.h     |   32 +
 drivers/net/wireless/iwlegacy/iwl-3945-rs.c      |  994 +++++
 drivers/net/wireless/iwlegacy/iwl-3945.c         | 2744 ++++++++++++++
 drivers/net/wireless/iwlegacy/iwl-3945.h         |  308 ++
 drivers/net/wireless/iwlegacy/iwl-4965-calib.c   |  967 +++++
 drivers/net/wireless/iwlegacy/iwl-4965-calib.h   |   75 +
 drivers/net/wireless/iwlegacy/iwl-4965-debugfs.c |  774 ++++
 drivers/net/wireless/iwlegacy/iwl-4965-debugfs.h |   59 +
 drivers/net/wireless/iwlegacy/iwl-4965-eeprom.c  |  154 +
 drivers/net/wireless/iwlegacy/iwl-4965-hw.h      |  814 ++++
 drivers/net/wireless/iwlegacy/iwl-4965-led.c     |   74 +
 drivers/net/wireless/iwlegacy/iwl-4965-led.h     |   33 +
 drivers/net/wireless/iwlegacy/iwl-4965-lib.c     | 1260 +++++++
 drivers/net/wireless/iwlegacy/iwl-4965-rs.c      | 2870 ++++++++++++++
 drivers/net/wireless/iwlegacy/iwl-4965-rx.c      |  291 ++
 drivers/net/wireless/iwlegacy/iwl-4965-sta.c     |  720 ++++
 drivers/net/wireless/iwlegacy/iwl-4965-tx.c      | 1359 +++++++
 drivers/net/wireless/iwlegacy/iwl-4965-ucode.c   |  166 +
 drivers/net/wireless/iwlegacy/iwl-4965.c         | 2188 +++++++++++
 drivers/net/wireless/iwlegacy/iwl-4965.h         |  282 ++
 drivers/net/wireless/iwlegacy/iwl-commands.h     | 3405 +++++++++++++++++
 drivers/net/wireless/iwlegacy/iwl-core.c         | 2668 +++++++++++++
 drivers/net/wireless/iwlegacy/iwl-core.h         |  646 ++++
 drivers/net/wireless/iwlegacy/iwl-csr.h          |  422 +++
 drivers/net/wireless/iwlegacy/iwl-debug.h        |  198 +
 drivers/net/wireless/iwlegacy/iwl-debugfs.c      | 1467 ++++++++
 drivers/net/wireless/iwlegacy/iwl-dev.h          | 1426 +++++++
 drivers/net/wireless/iwlegacy/iwl-devtrace.c     |   45 +
 drivers/net/wireless/iwlegacy/iwl-devtrace.h     |  270 ++
 drivers/net/wireless/iwlegacy/iwl-eeprom.c       |  561 +++
 drivers/net/wireless/iwlegacy/iwl-eeprom.h       |  344 ++
 drivers/net/wireless/iwlegacy/iwl-fh.h           |  513 +++
 drivers/net/wireless/iwlegacy/iwl-hcmd.c         |  271 ++
 drivers/net/wireless/iwlegacy/iwl-helpers.h      |  181 +
 drivers/net/wireless/iwlegacy/iwl-io.h           |  545 +++
 drivers/net/wireless/iwlegacy/iwl-led.c          |  188 +
 drivers/net/wireless/iwlegacy/iwl-led.h          |   56 +
 drivers/net/wireless/iwlegacy/iwl-legacy-rs.h    |  456 +++
 drivers/net/wireless/iwlegacy/iwl-power.c        |  165 +
 drivers/net/wireless/iwlegacy/iwl-power.h        |   55 +
 drivers/net/wireless/iwlegacy/iwl-prph.h         |  523 +++
 drivers/net/wireless/iwlegacy/iwl-rx.c           |  302 ++
 drivers/net/wireless/iwlegacy/iwl-scan.c         |  625 ++++
 drivers/net/wireless/iwlegacy/iwl-spectrum.h     |   92 +
 drivers/net/wireless/iwlegacy/iwl-sta.c          |  816 ++++
 drivers/net/wireless/iwlegacy/iwl-sta.h          |  148 +
 drivers/net/wireless/iwlegacy/iwl-tx.c           |  637 ++++
 drivers/net/wireless/iwlegacy/iwl3945-base.c     | 4294 +++++++++++++++++++++
 drivers/net/wireless/iwlegacy/iwl4965-base.c     | 3633 ++++++++++++++++++
 drivers/net/wireless/iwlwifi/Kconfig             |  124 +-
 drivers/net/wireless/iwlwifi/Makefile            |   39 +-
 drivers/net/wireless/iwlwifi/iwl-3945-debugfs.c  |  522 ---
 drivers/net/wireless/iwlwifi/iwl-3945-debugfs.h  |   60 -
 drivers/net/wireless/iwlwifi/iwl-3945-fh.h       |  188 -
 drivers/net/wireless/iwlwifi/iwl-3945-hw.h       |  294 --
 drivers/net/wireless/iwlwifi/iwl-3945-led.c      |   64 -
 drivers/net/wireless/iwlwifi/iwl-3945-led.h      |   32 -
 drivers/net/wireless/iwlwifi/iwl-3945-rs.c       |  995 -----
 drivers/net/wireless/iwlwifi/iwl-3945.c          | 2819 --------------
 drivers/net/wireless/iwlwifi/iwl-3945.h          |  308 --
 drivers/net/wireless/iwlwifi/iwl-4965-hw.h       |  792 ----
 drivers/net/wireless/iwlwifi/iwl-4965.c          | 2666 -------------
 drivers/net/wireless/iwlwifi/iwl-agn.c           |   35 +-
 drivers/net/wireless/iwlwifi/iwl-core.c          |   76 +-
 drivers/net/wireless/iwlwifi/iwl-debugfs.c       |    2 -
 drivers/net/wireless/iwlwifi/iwl-dev.h           |   13 +-
 drivers/net/wireless/iwlwifi/iwl-eeprom.c        |    8 -
 drivers/net/wireless/iwlwifi/iwl-hcmd.c          |    5 -
 drivers/net/wireless/iwlwifi/iwl-led.c           |    2 -
 drivers/net/wireless/iwlwifi/iwl-legacy.c        |  657 ----
 drivers/net/wireless/iwlwifi/iwl-legacy.h        |   79 -
 drivers/net/wireless/iwlwifi/iwl-power.c         |    3 -
 drivers/net/wireless/iwlwifi/iwl-rx.c            |    6 -
 drivers/net/wireless/iwlwifi/iwl-scan.c          |   10 -
 drivers/net/wireless/iwlwifi/iwl-sta.c           |   11 -
 drivers/net/wireless/iwlwifi/iwl-tx.c            |    7 -
 drivers/net/wireless/iwlwifi/iwl3945-base.c      | 4334 ----------------------
 86 files changed, 42490 insertions(+), 14049 deletions(-)
 create mode 100644 drivers/net/wireless/iwlegacy/Kconfig
 create mode 100644 drivers/net/wireless/iwlegacy/Makefile
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-3945-debugfs.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-3945-debugfs.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-3945-fh.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-3945-hw.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-3945-led.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-3945-led.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-3945-rs.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-3945.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-3945.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-calib.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-calib.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-debugfs.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-debugfs.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-eeprom.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-hw.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-led.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-led.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-lib.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-rs.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-rx.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-sta.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-tx.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965-ucode.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-4965.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-commands.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-core.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-core.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-csr.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-debug.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-debugfs.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-dev.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-devtrace.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-devtrace.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-eeprom.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-eeprom.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-fh.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-hcmd.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-helpers.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-io.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-led.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-led.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-legacy-rs.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-power.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-power.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-prph.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-rx.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-scan.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-spectrum.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-sta.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-sta.h
 create mode 100644 drivers/net/wireless/iwlegacy/iwl-tx.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl3945-base.c
 create mode 100644 drivers/net/wireless/iwlegacy/iwl4965-base.c
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-3945-debugfs.c
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-3945-debugfs.h
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-3945-fh.h
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-3945-hw.h
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-3945-led.c
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-3945-led.h
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-3945-rs.c
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-3945.c
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-3945.h
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-4965-hw.h
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-4965.c
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-legacy.c
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl-legacy.h
 delete mode 100644 drivers/net/wireless/iwlwifi/iwl3945-base.c


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

* [PATCH 1/4] iwlwifi: Limit number of firmware reload
  2011-02-21 19:45 [PATCH 0/4] update for 2.6.39 Wey-Yi Guy
@ 2011-02-21 19:45 ` Wey-Yi Guy
  2011-02-23 10:57   ` Stanislaw Gruszka
  2011-02-21 19:45 ` [PATCH 2/4] iwlwifi: Loading correct uCode again when fail to load Wey-Yi Guy
  2011-02-21 19:45 ` [PATCH 3/4] iwlwifi: enable 2-wire bt coex support for non-combo device Wey-Yi Guy
  2 siblings, 1 reply; 7+ messages in thread
From: Wey-Yi Guy @ 2011-02-21 19:45 UTC (permalink / raw
  To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy

If device has serious problem and cause firmware can not recover itself.
Keep reloading firmware will not help, it can only fill up the syslog and
lock up the system because busy reloading.

Introduce the limit reload counter, if the reload reach the maximum within
the pre-defined duration;stop the reload operation.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-core.c |   22 ++++++++++++++++++++++
 drivers/net/wireless/iwlwifi/iwl-dev.h  |    9 +++++++++
 2 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 4ad8938..977ddfb 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -948,6 +948,9 @@ EXPORT_SYMBOL(iwl_print_rx_config_cmd);
  */
 void iwl_irq_handle_error(struct iwl_priv *priv)
 {
+	unsigned int reload_msec;
+	unsigned long reload_jiffies;
+
 	/* Set the FW error flag -- cleared on iwl_down */
 	set_bit(STATUS_FW_ERROR, &priv->status);
 
@@ -991,6 +994,25 @@ void iwl_irq_handle_error(struct iwl_priv *priv)
 	 * commands by clearing the INIT status bit */
 	clear_bit(STATUS_READY, &priv->status);
 
+	/*
+	 * If firmware keep reloading, then it indicate something
+	 * serious wrong and firmware having problem to recover
+	 * from it. Instead of keep trying which will fill the syslog
+	 * and hang the system, let's just stop it
+	 */
+	reload_jiffies = jiffies;
+	reload_msec = jiffies_to_msecs((long) reload_jiffies -
+				(long) priv->reload_jiffies);
+	priv->reload_jiffies = reload_jiffies;
+	if (reload_msec <= IWL_MIN_RELOAD_DURATION) {
+		priv->reload_count++;
+		if (priv->reload_count >= IWL_MAX_CONTINUE_RELOAD_CNT) {
+			IWL_ERR(priv, "BUG_ON, Stop restarting\n");
+			return;
+		}
+	} else
+		priv->reload_count = 0;
+
 	if (!test_bit(STATUS_EXIT_PENDING, &priv->status)) {
 		IWL_DEBUG(priv, IWL_DL_FW_ERRORS,
 			  "Restarting adapter due to uCode error.\n");
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index ecfbef4..065615e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -1110,6 +1110,11 @@ struct iwl_event_log {
 /* BT Antenna Coupling Threshold (dB) */
 #define IWL_BT_ANTENNA_COUPLING_THRESHOLD	(35)
 
+/* Firmware reload counter and Timestamp */
+#define IWL_MIN_RELOAD_DURATION		1000 /* 1000 ms */
+#define IWL_MAX_CONTINUE_RELOAD_CNT	4
+
+
 enum iwl_reset {
 	IWL_RF_RESET = 0,
 	IWL_FW_RESET,
@@ -1262,6 +1267,10 @@ struct iwl_priv {
 	/* force reset */
 	struct iwl_force_reset force_reset[IWL_MAX_FORCE_RESET];
 
+	/* firmware reload counter and timestamp */
+	unsigned long reload_jiffies;
+	int reload_count;
+
 	/* we allocate array of iwl_channel_info for NIC's valid channels.
 	 *    Access via channel # using indirect index array */
 	struct iwl_channel_info *channel_info;	/* channel info array */
-- 
1.7.0.4


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

* [PATCH 2/4] iwlwifi: Loading correct uCode again when fail to load
  2011-02-21 19:45 [PATCH 0/4] update for 2.6.39 Wey-Yi Guy
  2011-02-21 19:45 ` [PATCH 1/4] iwlwifi: Limit number of firmware reload Wey-Yi Guy
@ 2011-02-21 19:45 ` Wey-Yi Guy
  2011-02-21 19:45 ` [PATCH 3/4] iwlwifi: enable 2-wire bt coex support for non-combo device Wey-Yi Guy
  2 siblings, 0 replies; 7+ messages in thread
From: Wey-Yi Guy @ 2011-02-21 19:45 UTC (permalink / raw
  To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy

During uCode loading, if the reply_alive come back with "failure",
try to load the same uCode again.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-agn.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index abd0461..c04d991 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -466,6 +466,15 @@ static void iwl_rx_reply_alive(struct iwl_priv *priv,
 		IWL_WARN(priv, "%s uCode did not respond OK.\n",
 			(palive->ver_subtype == INITIALIZE_SUBTYPE) ?
 			"init" : "runtime");
+		/*
+		 * If fail to load init uCode,
+		 * let's try to load the init uCode again.
+		 * We should not get into this situation, but if it
+		 * does happen, we should not move on and loading "runtime"
+		 * without proper calibrate the device.
+		 */
+		if (palive->ver_subtype == INITIALIZE_SUBTYPE)
+			priv->ucode_type = UCODE_NONE;
 		queue_work(priv->workqueue, &priv->restart);
 	}
 }
-- 
1.7.0.4


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

* [PATCH 3/4] iwlwifi: enable 2-wire bt coex support for non-combo device
  2011-02-21 19:45 [PATCH 0/4] update for 2.6.39 Wey-Yi Guy
  2011-02-21 19:45 ` [PATCH 1/4] iwlwifi: Limit number of firmware reload Wey-Yi Guy
  2011-02-21 19:45 ` [PATCH 2/4] iwlwifi: Loading correct uCode again when fail to load Wey-Yi Guy
@ 2011-02-21 19:45 ` Wey-Yi Guy
  2 siblings, 0 replies; 7+ messages in thread
From: Wey-Yi Guy @ 2011-02-21 19:45 UTC (permalink / raw
  To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy

For non-combo devices, 2-wire BT coex is needed to make sure BT coex
still function with external BT devices

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-agn.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index c04d991..9965215 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2744,9 +2744,11 @@ static void iwl_alive_start(struct iwl_priv *priv)
 			priv->cfg->ops->hcmd->set_rxon_chain(priv, ctx);
 	}
 
-	if (priv->cfg->bt_params &&
-	    !priv->cfg->bt_params->advanced_bt_coexist) {
-		/* Configure Bluetooth device coexistence support */
+	if (!priv->cfg->bt_params || (priv->cfg->bt_params &&
+	    !priv->cfg->bt_params->advanced_bt_coexist)) {
+		/*
+		 * default is 2-wire BT coexexistence support
+		 */
 		priv->cfg->ops->hcmd->send_bt_config(priv);
 	}
 
-- 
1.7.0.4


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

* Re: [PATCH 1/4] iwlwifi: Limit number of firmware reload
  2011-02-21 19:45 ` [PATCH 1/4] iwlwifi: Limit number of firmware reload Wey-Yi Guy
@ 2011-02-23 10:57   ` Stanislaw Gruszka
  2011-02-23 15:18     ` Guy, Wey-Yi
  0 siblings, 1 reply; 7+ messages in thread
From: Stanislaw Gruszka @ 2011-02-23 10:57 UTC (permalink / raw
  To: Wey-Yi Guy; +Cc: linville, linux-wireless, ipw3945-devel

Hi Wey

On Mon, Feb 21, 2011 at 11:45:33AM -0800, Wey-Yi Guy wrote:
> If device has serious problem and cause firmware can not recover itself.
> Keep reloading firmware will not help, it can only fill up the syslog and
> lock up the system because busy reloading.
Filling up logs could be simply avoided by limiting number of prints.

> Introduce the limit reload counter, if the reload reach the maximum within
> the pre-defined duration;stop the reload operation.
We have already one mechanism for limit too frequent firmware reload,
way not reuse it?

> +	reload_msec = jiffies_to_msecs((long) reload_jiffies -
> +				(long) priv->reload_jiffies);
What for are these (long) casts?

> +	/* firmware reload counter and timestamp */
> +	unsigned long reload_jiffies;
You do not initialize it, first reload_msec will have untrue value.

Beside, all these reload firmware mechanism are just crappy workarounds
for real firmware and/or driver bugs. Instead of creating such patches,
Intel should fix real problems in firmware and driver in first place,
such reloading will be not needed.

Stanislaw

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

* Re: [PATCH 1/4] iwlwifi: Limit number of firmware reload
  2011-02-23 10:57   ` Stanislaw Gruszka
@ 2011-02-23 15:18     ` Guy, Wey-Yi
  0 siblings, 0 replies; 7+ messages in thread
From: Guy, Wey-Yi @ 2011-02-23 15:18 UTC (permalink / raw
  To: Stanislaw Gruszka
  Cc: linville@tuxdriver.com, linux-wireless@vger.kernel.org,
	ipw3945-devel@lists.sourceforge.net

Hi Stanislaw,

On Wed, 2011-02-23 at 02:57 -0800, Stanislaw Gruszka wrote:
> Hi Wey
> 
> On Mon, Feb 21, 2011 at 11:45:33AM -0800, Wey-Yi Guy wrote:
> > If device has serious problem and cause firmware can not recover itself.
> > Keep reloading firmware will not help, it can only fill up the syslog and
> > lock up the system because busy reloading.
> Filling up logs could be simply avoided by limiting number of prints.
> 
> > Introduce the limit reload counter, if the reload reach the maximum within
> > the pre-defined duration;stop the reload operation.
> We have already one mechanism for limit too frequent firmware reload,
> way not reuse it?
> 
> > +	reload_msec = jiffies_to_msecs((long) reload_jiffies -
> > +				(long) priv->reload_jiffies);
> What for are these (long) casts?
> 
> > +	/* firmware reload counter and timestamp */
> > +	unsigned long reload_jiffies;
> You do not initialize it, first reload_msec will have untrue value.
> 
I am assuming it will initialized to zero at load time, but you are
right, I still should initialize it, I will submit separated patch to
initialize it.

> Beside, all these reload firmware mechanism are just crappy workarounds
> for real firmware and/or driver bugs. Instead of creating such patches,
> Intel should fix real problems in firmware and driver in first place,
> such reloading will be not needed.
> 
I am also wish we can root cause the firmware problem and fix, but it
take time and if we logging continuous crash and it will fill the log
very fast, the side issue also cause system become un-usable because the
continuous reload. 


Wey 



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

end of thread, other threads:[~2011-02-23 15:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-21 19:45 [PATCH 0/4] update for 2.6.39 Wey-Yi Guy
2011-02-21 19:45 ` [PATCH 1/4] iwlwifi: Limit number of firmware reload Wey-Yi Guy
2011-02-23 10:57   ` Stanislaw Gruszka
2011-02-23 15:18     ` Guy, Wey-Yi
2011-02-21 19:45 ` [PATCH 2/4] iwlwifi: Loading correct uCode again when fail to load Wey-Yi Guy
2011-02-21 19:45 ` [PATCH 3/4] iwlwifi: enable 2-wire bt coex support for non-combo device Wey-Yi Guy
  -- strict thread matches above, loose matches on Subject: below --
2011-02-21 19:06 [PATCH 0/4] update for 2.6.39 Wey-Yi Guy
2011-02-21 19:06 ` [PATCH 3/4] iwlwifi: enable 2-wire bt coex support for non-combo device Wey-Yi Guy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).