Re: Additional PWM driver support for w83792d

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

 



On 05/09/2015 08:30 AM, Jean Delvare wrote:
Hi Roger,

Good to see you again :)

On Sat, 9 May 2015 13:57:41 +0100, vt8231@xxxxxxxxxxxxxxxxxx wrote:
Dear LM-Sensors,

I have a Dell FS12-NV7 server and it has two W83792G chips on it (as well as
an IT87).  One of the W83792G devices is connected to three fans on PWM
outputs 3,4 and 5 respectively.

I am running with Ubuntu 15.04 (Linux 3.19.0) and the W83792D driver only
has support for PWM outputs 1,2 and 3.

The patch below adds the 4 missing PWM outputs which are supported by the
chip.  This has been tested and works as expected on my motherboard.

It's amazing that nobody ever noticed the missing pwm files before,
thanks for reporting.


--- linux-3.19.0/drivers/hwmon/w83792d.c        2015-02-09
02:54:22.000000000 +0000
+++ linux-3.19.0-new/drivers/hwmon/w83792d.c    2015-05-08
21:53:06.637515282 +0100
@@ -1075,6 +1075,10 @@
  static SENSOR_DEVICE_ATTR(pwm1, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 0);
  static SENSOR_DEVICE_ATTR(pwm2, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 1);
  static SENSOR_DEVICE_ATTR(pwm3, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 2);
+static SENSOR_DEVICE_ATTR(pwm4, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 3);
+static SENSOR_DEVICE_ATTR(pwm5, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 4);
+static SENSOR_DEVICE_ATTR(pwm6, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 5);
+static SENSOR_DEVICE_ATTR(pwm7, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 6);
  static SENSOR_DEVICE_ATTR(pwm1_enable, S_IWUSR | S_IRUGO,
                         show_pwmenable, store_pwmenable, 1);
  static SENSOR_DEVICE_ATTR(pwm2_enable, S_IWUSR | S_IRUGO,
@@ -1270,6 +1274,10 @@
         &sensor_dev_attr_pwm3.dev_attr.attr,
         &sensor_dev_attr_pwm3_mode.dev_attr.attr,
         &sensor_dev_attr_pwm3_enable.dev_attr.attr,
+       &sensor_dev_attr_pwm4.dev_attr.attr,
+       &sensor_dev_attr_pwm5.dev_attr.attr,
+       &sensor_dev_attr_pwm6.dev_attr.attr,
+       &sensor_dev_attr_pwm7.dev_attr.attr,
         &dev_attr_alarms.attr,
         &dev_attr_intrusion0_alarm.attr,
         &sensor_dev_attr_tolerance1.dev_attr.attr,

I hope this patch is of use to others who are using the same server or have
a similar situation.

Yes we want to apply something like this. However your e-mail client
broke the formatting. Any chance you can resend using a client which
does not mangle white space nor fold long lines?

I think the new attributes should go in w83792d_attributes_fan rather
than w83792d_attributes, as they are not always enabled (mutually
exclusive with other functions.)

Your patch should also add files pwm[4-7]_mode.

Also there is this comment in the code:

	u8 pwm[7];		/*
				 * We only consider the first 3 set of pwm,
				 * although 792 chip has 7 set of pwm.
				 */

which should be removed. Documentation/hwmon/w83792d should be updated
accordingly, as it currently claims that fan outputs 4-7 aren't
supported and doesn't mention attributes pwm[4-7] and pwm[4-7]_mode.

We'll need your Signed-off-by line so that the patch can be applied.

Last note: registers 0xA3-0xA6 have extra configuration bits "Sync
T1/2/3". Maybe the driver should handle them but I am not sure how. It
could be that the extra outputs should only be exposed to user-space if
these bits are 0 (stand alone.) Guenter, any idea/opinion on this?


Hi Jean,

Good point.

How about using pwm[4567]_enable ? If I understand correctly, the possible
modes would be manual or sync(x). In this case we could have 1 (manual),
2 (sync with fan1), 3 (sync with fan2), and 4 (sync with fan3), with the
caveat that the sync settings only make sense if the matching pwmX_enable
is set to thermal cruise mode.

Does this make sense ?

Btw, do you have a datasheet for the chip with 7 fan controls/status pins ?

Thanks,
Guenter


_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux