All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: lm-sensors@vger.kernel.org
Subject: Re: [lm-sensors] w83627ehf: Wrong values reported after resuming from suspend/hibernation
Date: Fri, 26 Oct 2012 14:06:19 +0000	[thread overview]
Message-ID: <20121026140619.GD29852@roeck-us.net> (raw)
In-Reply-To: <50856051.5070803@gmx.at>

On Fri, Oct 26, 2012 at 09:27:52AM +0200, Jean Delvare wrote:
> Hi Guenter,
> 
> On Thu, 25 Oct 2012 17:41:15 -0700, Guenter Roeck wrote:
> > On Thu, Oct 25, 2012 at 04:49:01PM -0700, Guenter Roeck wrote:
> > > > I don't get it. I have double checked my code and I don't see how this
> > > > is possible. Plus Guenter's testing was successful...
> > >
> > > Doesn't work for me either on NCT6776F. Some of the data is restored, which is
> > > not the case if I use the "old" driver, so I must have used the correct driver.
> >
> > Hi Jean,
> > 
> > I found the problem. The NCT6776F has the wrong bank selected when resuming.
> > 
> > It started working for me after adding
> > 
> > 	data->bank = 0xff;
> > 
> > to the beginning of the resume function. This forces the bank register to be
> > updated when the first chip access is done.
> 
> Wow, very good catch, thanks a lot. That explains it all. I couldn't
> see this in the dumps I asked for, as these dumps do force the bank to
> a specific value.
> 
Yes, that was a lucky catch. I didn't find it from the dumps, but by adding
debug code to the resume function. And when reading back the register values
it was quite obvious what happpened.

> 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 :).

> We are lucky that the driver always reads register
> NCT6775_REG_TEMP_SOURCE[0] = 0x621 first for the NCT677x chips. For
> other chips only registers 0x50-0x5F are banked. For the W83667HG and
> W83667HG-B we read W83627EHF_REG_TEMP_CONFIG[2] = 0x252 first so we
> are lucky once more. For older chips we could be in trouble depending
> on the initial bank setting and chip configuration.
> 
> I'll send a fixup patch in a minute.
> 
> > It might make sense to do this for all chips with bank registers.
> 
> Depends on how bank switching is implemented. For example the w83627hf
> driver doesn't make any assumption on the currently selected bank, it
> always sets the bank (even if it is 0) before accessing a register in
> the banked area. Which is why my own testing with the w83627hf driver

Yes, I noticed.

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

Guenter

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

  parent reply	other threads:[~2012-10-26 14:06 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-22 15:03 [lm-sensors] w83627ehf: Wrong values reported after resuming from suspend/hibernation Harald Judt
2012-10-22 21:40 ` Guenter Roeck
2012-10-23  7:14 ` Jean Delvare
2012-10-23  9:57 ` Harald Judt
2012-10-23 11:45 ` Jean Delvare
2012-10-23 12:08 ` Harald Judt
2012-10-23 12:34 ` Jean Delvare
2012-10-23 14:01 ` Guenter Roeck
2012-10-23 16:32 ` Jean Delvare
2012-10-23 19:02 ` Harald Judt
2012-10-24  3:45 ` Guenter Roeck
2012-10-24  8:39 ` Jean Delvare
2012-10-24 18:05 ` Harald Judt
2012-10-24 18:14 ` Harald Judt
2012-10-24 19:23 ` Jean Delvare
2012-10-25  9:53 ` Guenter Roeck
2012-10-25 17:26 ` Harald Judt
2012-10-25 19:07 ` Jean Delvare
2012-10-25 19:16 ` Harald Judt
2012-10-25 20:37 ` Guenter Roeck
2012-10-25 23:49 ` Guenter Roeck
2012-10-26  0:41 ` Guenter Roeck
2012-10-26  0:55 ` Harald Judt
2012-10-26  7:27 ` Jean Delvare
2012-10-26 14:06 ` Guenter Roeck [this message]
2012-10-26 14:15 ` Jean Delvare
2013-07-28 20:43 ` Harald Judt
2013-07-28 21:43 ` Guenter Roeck
2013-07-28 22:28 ` Guenter Roeck
2013-07-29  2:24 ` Harald Judt
2013-07-29  2:47 ` Harald Judt
2013-07-29  6:58 ` Guenter Roeck
2013-07-29  9:12 ` Harald Judt
2013-07-29 15:27 ` Harald Judt
2013-07-29 22:46 ` Guenter Roeck
2013-07-31 22:11 ` Guenter Roeck
2013-08-01  9:08 ` Harald Judt
2013-08-01 13:42 ` Guenter Roeck
2013-08-01 14:36 ` Harald Judt
2013-08-01 17:46 ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121026140619.GD29852@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=lm-sensors@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.