* Mark D. Studebaker <firstname.lastname@example.org> [2003-05-30 21:33:50 -0400]:
> Mark M. Hoffman wrote:
> >This applies to all kernel versions since w83781d was brought in from
> >the lm_sensors project.
> >The subclients of w83781d are never registered with i2c_attach_client().
> >But, w83781d_detach_client() tries to i2c_detach_client() them anyway.
> >This was harmless, until i2c-core was "listified"... because the old
> >array method silently ignored the attempt to detach a non-existent client.
> >The latest lm_sensors CVS of w83781d has the necessary i2c_attach_client()
> >calls - not sure why they were removed during conversion to 2.5.x. Do we
> >intend to attach these subclients or not?
> Good catch.
> Greg, this needs to be fixed.
> Winbond chips take up 3 addresses on the i2c bus.
> In the original code we registered two "subclients" with the i2c layer.
> Somehow the 3-address chips need to be handled.
This fixes the oops during w83781d module removal by putting the
subclient registration back in. While I was in there, I split
w83781d_detect in half in an attempt to reduce the goto madness.
So, the /sys tree looks like this, where 48 & 49 are the subclients.
There are no entries (besides name & power) for the subclients.
| |-- 0-002d -> ../../../devices/pci0/00:02.1/i2c-0/0-002d
| |-- 0-0048 -> ../../../devices/pci0/00:02.1/i2c-0/0-0048
| `-- 0-0049 -> ../../../devices/pci0/00:02.1/i2c-0/0-0049
|-- 0-002d -> ../../../../devices/pci0/00:02.1/i2c-0/0-002d
|-- 0-0048 -> ../../../../devices/pci0/00:02.1/i2c-0/0-0048
`-- 0-0049 -> ../../../../devices/pci0/00:02.1/i2c-0/0-0049
Also, I fixed a bug where this driver would request and release an
ISA region, then poke around in that region, then finally request
This patch against 2.5.70 works for me vs. an SMBus adapter. It needs
re-testing against an ISA adapter since my particular chip is SMBus only.
Please CC me w/ comments.
-- Mark M. Hoffman email@example.com
This archive was generated by hypermail 2b29 : Sat Jun 07 2003 - 22:00:14 EST