[ltp] Bad fan behaviour in X61s caused by GPU temperatur sensor

Tino Keitel linux-thinkpad@linux-thinkpad.org
Tue, 8 Dec 2009 22:46:28 +0100


--3MwIy2ne0vdjdPXF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Tue, Dec 08, 2009 at 09:26:08 +0000, Robert Tomsick wrote:
> Do you have a patch you can post?  I'd be interested to do the same.

I attached 2 patches I use: one to re-enable the power management on
Intel 4965 wireless hardware, and another to change the annonying
blinking of the wireless LED to some more decent signaling.

Regards,
Tino

--3MwIy2ne0vdjdPXF
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="re-enable_pm.diff"

diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 6f703a0..f52da3e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -2355,7 +2355,7 @@ struct iwl_cfg iwl4965_agn_cfg = {
 	.mod_params = &iwl4965_mod_params,
 	.use_isr_legacy = true,
 	.ht_greenfield_support = false,
-	.broken_powersave = true,
+	.broken_powersave = false,
 };
 
 /* Module firmware */

--3MwIy2ne0vdjdPXF
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="iwl-shorter-blink_2.6.27.patch"

diff --git a/drivers/net/wireless/iwlwifi/iwl-led.c b/drivers/net/wireless/iwlwifi/iwl-led.c
index 4eee1b1..50eff75 100644
--- a/drivers/net/wireless/iwlwifi/iwl-led.c
+++ b/drivers/net/wireless/iwlwifi/iwl-led.c
@@ -69,7 +69,7 @@ static const struct {
 	{15, 95, 95 },
 	{10, 110, 110},
 	{5, 130, 130},
-	{0, 167, 167},
+	{0, 25, 25},
 /* SOLID_ON */
 	{-1, IWL_LED_SOLID, 0}
 };
@@ -289,7 +289,7 @@ static int iwl_get_blink_rate(struct iwl_priv *priv)
 	if (!priv->allow_blinking)
 		i = IWL_MAX_BLINK_TBL;
 	else
-		for (i = 0; i < IWL_MAX_BLINK_TBL; i++)
+		for (i = IWL_MAX_BLINK_TBL - 1 ; i < IWL_MAX_BLINK_TBL; i++)
 			if (tpt  > (blink_tbl[i].tpt * IWL_1MB_RATE))
 				break;
 
@@ -326,7 +326,7 @@ void iwl_leds_background(struct iwl_priv *priv)
 	}
 	if (!priv->last_blink_time ||
 	    !time_after(jiffies, priv->last_blink_time +
-			msecs_to_jiffies(1000)))
+			msecs_to_jiffies(40)))
 		return;
 
 	blink_idx = iwl_get_blink_rate(priv);

--3MwIy2ne0vdjdPXF--