On Fri, 20 Feb 2004, Jean Delvare wrote: > Nice to see you around again :) *nod* I've got the strong feeling I should have done this last April ;-) > > I've finally gotten around to upgrading my kernel, and the immediate > > resume problem also exists in kernel 2.6.3. I've tracked down the > > problem to the line > > > > w83781d_write_value(client, W83781D_REG_IRQ, 0x41); > > Interesting. This demonstrates (once again) that reseting chips and then > setting registers to artibrary values is *bad. > > > in the file w83781d.c, introduced in lm_sensors 2.6.4; with this line > > commented out, suspend works fine again. > > I'd like to refine the fix a bit, and then commit it to Linux 2.6 and > our CVS lm_sensors2 repository. Could you please tell me: > > 1* Which chipset you have exactly. Hmm. According to sensors-detect: Probing for `Winbond W83782D'... Success! (confidence 8, driver `w83781d'), other addresses: 0x48 0x49 > 2* Which value is present in the register 0x4C before you load w83781d > for the first time. (Load the bus driver and use i2cdump to dump the > chip contents.) loki:~# i2cdump 0 0x4C No size specified (using byte-data access) WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-0, address 0x4c, mode byte You have five seconds to reconsider and press CTRL-C! 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX loki:~# i2cdetect 0 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-0 You have five seconds to reconsider and press CTRL-C! 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: XX XX XX XX XX XX XX XX XX XX XX XX 0c XX XX XX 10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 20: XX XX XX XX XX XX XX XX XX XX XX XX XX 2d XX XX 30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 40: XX XX XX XX XX XX XX XX 48 49 XX XX XX XX XX XX 50: 50 XX 52 XX XX XX XX XX XX XX XX XX XX XX XX XX 60: XX XX XX XX XX XX XX XX XX 69 XX XX XX XX XX XX 70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX > 3* The value present in the same register after you load and unload the > w83781d driver *with your modification* (i.e. we'll get the value > resulting from the reset operation). This doesn't change. -- Just because it isn't nice doesn't make it any less a miracle. http://users.albatross.co.nz/~psycho/ O- -><-