Support DB Entry 1770

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

 



> ==> /var/log/syslog <==
> Sep 11 19:27:45 defiant kernel: i2c-core: driver w83781d registered.
> Sep 11 19:27:45 defiant kernel: i2c_adapter i2c-0: found normal isa
> entry for adapter 9191, addr 0290
> Sep 11 19:27:45 defiant kernel: i2c_adapter i2c-0: Detection of
> w83781d chip failed at step 2 (0x61 != 0x60 at 0x295)

Still the same values (which technically correspond to register
addresses). I checked the datasheets and it happens that these
regiesters belong to a so-called "auto-increment" range. This basically
means that reading any register in this range will automatically
increase the address pointer, those value we are reading from I/O
address 0x295.

I think I am now starting to understand what's going on. Something else
is trying to access the chip at the very moment we are, most probably
the BIOS. Why it does, I don't know. I thought that Asus started to
implement such silly behaviors only recently, but it seems not. The
SMBus locks you were experiencing speak for themselves.

So, first of all, I have to tell you know that you should expect
problems if you go on with using the w83781d driver on your system. It
is likely that from times to times some readings will be completely
wrong (BIOS reads interfering with yours). You could also experiment
random reboots/halts (your reads interfering with the BIOSes).

Why the sensors-detect script doesn't seem to be affected is above me.
It didn't fail to detect the chip once, did it?

> Ok, I see the "found force" in
> "/var/log/syslog" and "/var/log/debug".  But there's "Ignoring
> 'force'" in  "/var/log/syslog" and "/var/log/messages".  It is looking
> on adapter 0 not 9191 as I specified.  And "sensors" reports "No
> sensors found!".
> 
> <SHELL>
> 
> <defiant> [2004-09-11 at 15:45:02] ~ -> modprobe w83781d force=9191,0x290
> 
> ==> /var/log/syslog <==
> Sep 11 15:45:30 defiant kernel: i2c-core: driver w83781d registered.
> Sep 11 15:45:30 defiant kernel: i2c_adapter i2c-0: found force
> parameter for adapter 9191, addr 0290
> Sep 11 15:45:30 defiant kernel:  : Ignoring 'force' parameter for
> unknown chip atadapter 0, address 0x290
> 
> ==> /var/log/messages <==
> Sep 11 15:45:30 defiant kernel:  : Ignoring 'force' parameter for
> unknown chip atadapter 0, address 0x290
> 
> ==> /var/log/debug <==
> Sep 11 15:45:30 defiant kernel: i2c-core: driver w83781d registered.
> Sep 11 15:45:30 defiant kernel: i2c_adapter i2c-0: found force
> parameter for adapter 9191, addr 0290
> 
> </SHELL>

Oh, OK, I see it now. I completely missed that exit point. This is where
the detection fails from the beginning. It only complains (in the form
of a log message) when forced. I missed that detail so far, sorry.

> The option below is the only one that seems to get this to work, and
> it appears to work fine when forced (i.e. "sensors" reports correct
> data).

Yeah, forcing will skip detection and optionally identification as well.

> <SHELL>
> 
> <defiant> [2004-09-11 at 15:50:42] ~ -> modprobe w83781d
> force_w83781d=9191,0x290
> <defiant> [2004-09-11 at 15:50:48] ~ ->
> ==> /var/log/syslog <==
> Sep 11 15:50:48 defiant kernel: i2c-core: driver w83781d registered.
> Sep 11 15:50:48 defiant kernel: i2c_adapter i2c-0: found force
> parameter for adapter 9191, addr 0290
> Sep 11 15:50:48 defiant kernel: i2c_adapter i2c-0: client [w83781d]
> registered to adapter
> Sep 11 15:50:48 defiant kernel: registering 0-0290
> 
> ==> /var/log/debug <==
> Sep 11 15:50:48 defiant kernel: i2c-core: driver w83781d registered.
> Sep 11 15:50:48 defiant kernel: i2c_adapter i2c-0: found force
> parameter for adapter 9191, addr 0290
> Sep 11 15:50:48 defiant kernel: i2c_adapter i2c-0: client [w83781d]
> registered to adapter
> Sep 11 15:50:48 defiant kernel: registering 0-0290
> 
> <defiant> [2004-09-11 at 15:50:52] ~ -> sensors
> w83781d-isa-0290
> Adapter: ISA adapter
> VCore 1:   +2.00 V  (min =  +0.00 V, max =  +4.08 V)       ALARM
> VCore 2:   +2.00 V  (min =  +0.00 V, max =  +4.08 V)       ALARM
> +3.3V:     +3.57 V  (min =  +2.82 V, max =  +3.79 V)       ALARM
> +5V:       +4.87 V  (min =  +0.97 V, max =  +3.44 V)       ALARM
> +12V:     +12.10 V  (min = +11.80 V, max =  +0.00 V)
> -12V:     -12.02 V  (min =  -0.45 V, max =  -2.00 V)
> -5V:       -4.89 V  (min =  -0.00 V, max =  -0.00 V)
> CPU Fan:  3708 RPM  (min = 21093 RPM, div = 2)
> M/B Temp:    +29 C  (high =   -64 C, hyst =   -95 C)
> CPU Temp:   +0.0 C  (high =    +0 C, hyst =    +0 C)
> vid:      +3.500 V
> alarms:
> beep_enable:
>           Sound alarm disabled
> 
> <defiant> [2004-09-11 at 15:50:54] ~ ->
> ==> /var/log/syslog <==
> Sep 11 15:50:54 defiant kernel: Starting device update
> 
> ==> /var/log/debug <==
> Sep 11 15:50:54 defiant kernel: Starting device update
> 
> </SHELL>

Readings look rather good except CPU Temp. Limits look completely broken
though.

>From other post:

> Actually, the data "appears" to be read correctly but temp2 is not
> correct.  Also an ALARM where there should be none (in3).  A result of
> forcing?

This is just a guess, but the problem with temp2 could be caused by the
BIOS concurent accesses.

The ALARM bits stay up until read, so you can usually see them once
after the cause has disappeared. This is by chip design. If it does not
disappear after one more read, then there is something wrong (possibly
the BIOS breaking things when reading in our back again.

You may want to check in the BIOS setup screen if there is some option
to disable "active hardware monitoring" or whatever they called that.
You may also want to upgrade BIOSes and see if it helps.

I will update the ticket in the sensors ticket DB, thanks.

-- 
Jean "Khali" Delvare
http://khali.linux-fr.org/



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

  Powered by Linux