Re: [PATCH] dell-smm-hwmon: Cache fan_type() calls and use fan_status() for fan detection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Pali Rohár wrote on 27.05.2016 15:21:
> On Friday 27 May 2016 15:05:54 Thorsten Leemhuis wrote:
>> Pali Rohár wrote on 27.05.2016 12:45:
>> So I tried a few things
>> and came to the conclusion: the problem shows up as soon as
>> i8k_get_fan_type() (introduced in f989e55452) is called somewhere.
> So, once kernel call i8k_get_fan_type() function, then fan speed going 
> up/down?

Yes.

> To make sure that this is root of your problem, can you take some older 
> kernel version (where is i8k working fine) and try to patch+call that 
> i8k_get_fan_type() function? To check that something else cannot 
> interference with it...

I just tried with 3.19.8 (had to install a older distro first :-/ ),
where the problem does not show up (I verified just to be sure). Then I
applied below patch and voila: the fan speed starts going up/down.

IOW: From what I can see that SMM call that i8k_get_fan_type() triggers
the problem on my Studio 8000

CU, knurd

--- i8k.c-unmodified	2016-05-30 13:04:32.980825405 +0200
+++ i8k.c	2016-05-30 13:25:03.186630115 +0200
@@ -41,6 +41,7 @@
 #define I8K_SMM_SET_FAN		0x01a3
 #define I8K_SMM_GET_FAN		0x00a3
 #define I8K_SMM_GET_SPEED	0x02a3
+#define I8K_SMM_GET_FAN_TYPE   0x03a3
 #define I8K_SMM_GET_TEMP	0x10a3
 #define I8K_SMM_GET_DELL_SIG1	0xfea3
 #define I8K_SMM_GET_DELL_SIG2	0xffa3
@@ -275,6 +276,19 @@
 	return i8k_smm(&regs) ? : (regs.eax & 0xffff) * i8k_fan_mult;
 }

+
+/*
+ * Read the fan type.
+ */
+static int i8k_get_fan_type(int fan)
+{
+	struct smm_regs regs = { .eax = I8K_SMM_GET_FAN_TYPE, };
+
+	regs.ebx = fan & 0xff;
+	return i8k_smm(&regs) ? : regs.eax & 0xff;
+}
+
+
 /*
  * Set the fan speed (off, low, high). Returns the new fan status.
  */
@@ -870,6 +884,9 @@
 	if (err)
 		goto exit_remove_proc;

+	// calling i8k_get_fan_type once
+	printk("testing i8k_get_fan_type (%d)", i8k_get_fan_type(0));
+
 	return 0;

  exit_remove_proc:
--
To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux