Bug 6385
Summary: | powermac/low_i2c.c: keywest i2c IRQ failure | ||
---|---|---|---|
Product: | Drivers | Reporter: | Timothy Stotts (kernel_bugs) |
Component: | I2C | Assignee: | Benjamin Herrenschmidt (benh) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | benh, bunk |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.16.4 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
Config of kernel used for diagnostics
kernel logs of keywest failure kernel logs of old keywest success Config of kernel with old keywest success (2.6.15.0) Rework kw low i2c to better match what was done before |
Description
Timothy Stotts
2006-04-13 22:45:32 UTC
Created attachment 7865 [details]
Config of kernel used for diagnostics
I don't actually use this exact kernel config for anything but testing of this
issue.
Created attachment 7866 [details]
kernel logs of keywest failure
some bootup and service init logs, including pbbuttonsd
one boot with vanilla, i2c debugging on
one boot with custom (but no i2c patching), i2c debugging off
Additional notes: - respective i2c hardware works with Mac OS X - respective i2c hardware works with 2.6.13.x to 2.6.15.x, any version of pbbuttonsd - system kernel headers (for glibc, etc) are linux-2.6.11 - pbbuttonsd uses its own i2c-dev.h header, could be mutual fault Must be a problem with the low level i2c getting into some wrong state when a device doesn't reply... I'll try to find out when I find 5 minutes, in the meantime, you are welcome to compare the old i2c-keywest code with the implementation now in arch/powerpc/platforms/powermac/low_i2c.c ... Benjamin, what is the state of powermac/low_i2c.c with regards to i2c-core? The header comment suggests that you have your own i2c implementation, but if your bus is visible through i2c-dev, this means that you have somehow registered with i2c-core. Please explain. low_i2c is my own low level i2c interface, mostly bcs i2c core one isn't suitable for some of my needs by low level code. drivers/i2c/busses/i2c-powermac "exposes" all the busses detected by that low level interface to i2c core for higher level drivers or userland. Created attachment 7868 [details]
kernel logs of old keywest success
a boot log, running pbbuttonsd, etc., on vanilla 2.6.15.0
sorry, no I2C debugging enabled for this log. will have to recompile a new
image at a later date
Created attachment 7869 [details]
Config of kernel with old keywest success (2.6.15.0)
Only notable differences betwen 2.6.15 adn 2.6.16 bootup and execution of pbbuttonsd (without I2C debug enabled): - 2.6.16 causes said kernel error messages - different number of identified bus channels at bootup, with different ordering of /dev/ entries loading 2.6.15.0: Found KeyWest i2c on "uni-n", 2 channels, stepping: 4 bits Found KeyWest i2c on "mac-io", 1 channel, stepping: 4 bits ... i2c /dev entries driver 2.6.16.4: i2c /dev entries driver PowerMac i2c bus pmu 2 registered PowerMac i2c bus pmu 1 registered PowerMac i2c bus mac-io 0 registered PowerMac i2c bus uni-n 1 registered PowerMac i2c bus uni-n 0 registered Benjamin, Any diagnoses / patch trials; just ask. However, as my production (only) laptop, I'll have a long latency (maybe days) in recompiling and testing kernels. I miss my glowing keyboard enough to have diagnosed it through the night. Regards. Created attachment 7876 [details]
Rework kw low i2c to better match what was done before
Please let me know if that patch helps
Response to Comment #11: Yes, the patch seems to bring the I2C behavior back to normal. Tested vanilla 2.6.16.4 and heavily patched variant also. The Albook sensors/backlight talk with pbbuttonsd, and no error messages, with or without I2C debugging on. No issues with hardware suspend/resume (but doubt this the driver could affect that anyway). Just a note: the I2C appears to work fine with 2.6.17-rc6 vanilla. The patch from this bug was included in kernel 2.6.17. |