Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 105e5180 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'hwmon-fixes-for-3.3-rc3' of...

Merge tag 'hwmon-fixes-for-3.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

One patch to fix fan detection on NCT6776F.

* tag 'hwmon-fixes-for-3.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
  hwmon: (w83627ehf) Fix number of fans for NCT6776F
parents 96e02d15 585c0fd8
Loading
Loading
Loading
Loading
+20 −3
Original line number Original line Diff line number Diff line
@@ -1920,9 +1920,26 @@ w83627ehf_check_fan_inputs(const struct w83627ehf_sio_data *sio_data,
		fan4min = 0;
		fan4min = 0;
		fan5pin = 0;
		fan5pin = 0;
	} else if (sio_data->kind == nct6776) {
	} else if (sio_data->kind == nct6776) {
		bool gpok = superio_inb(sio_data->sioreg, 0x27) & 0x80;

		superio_select(sio_data->sioreg, W83627EHF_LD_HWM);
		regval = superio_inb(sio_data->sioreg, SIO_REG_ENABLE);

		if (regval & 0x80)
			fan3pin = gpok;
		else
			fan3pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x40);
			fan3pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x40);

		if (regval & 0x40)
			fan4pin = gpok;
		else
			fan4pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x01);
			fan4pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x01);

		if (regval & 0x20)
			fan5pin = gpok;
		else
			fan5pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x02);
			fan5pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x02);

		fan4min = fan4pin;
		fan4min = fan4pin;
	} else if (sio_data->kind == w83667hg || sio_data->kind == w83667hg_b) {
	} else if (sio_data->kind == w83667hg || sio_data->kind == w83667hg_b) {
		fan3pin = 1;
		fan3pin = 1;