Re: w83627ehf: Wrong values reported after resuming from suspend/hibernation

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

 



On Fri, 26 Oct 2012 07:06:19 -0700, Guenter Roeck wrote:
> On Fri, Oct 26, 2012 at 09:27:52AM +0200, Jean Delvare wrote:
> > Now I think we have a bug in the w83627ehf driver. data->bank is never
> > initialized, so it default to 0 per kzalloc of data. If the driver
> > reads a register from bank 0 first, and this wasn't the currently
> > selected bank at hardware level, it will read from the wrong register.
>
> I had briefly wondered how we know that bank 0 is selected initially :).

Well, we don't ;)

> (...)
> My testing with NCT6775 was successful as well, so the lucky part may be
> that my Asus board selects another bank during resume....

No, the reason why it was working on the NCT6775 is because, for that
chip, the last register read at suspend time is NCT6775_REG_FANDIV2 ==
0x507 and the first one written at resume time is
W83627EHF_REG_IN_MIN(0) == 0x2c. They are in different banks so the
driver will issue a bank change, regardless of what the BIOS did in
between.

For the other chips (including the NCT6776F) there was no such bank
difference, hence the problem.

Thanks for the reviews and testing :)

-- 
Jean Delvare

_______________________________________________
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