Re: 5.11-rc device reordering breaks ThinkPad rmi4 suspend
From: Hugh Dickins <hughd@google.com>
Date: 2021-01-11 17:43:42
Also in:
lkml
On Mon, 11 Jan 2021, Thierry Reding wrote:
On Sun, Jan 10, 2021 at 08:44:13PM -0800, Hugh Dickins wrote:quoted
Synaptics RMI4 SMBus touchpad on ThinkPad X1 Carbon (5th generation) fails to suspend when running 5.11-rc kernels: bisected to 5b6164d3465f ("driver core: Reorder devices on successful probe"), and reverting that fixes it. dmesg.xz attached, but go ahead and ask me to switch on a debug option to extract further info if that may help.
...
I think what might be happening here is that the offending patch causes some devices to be reordered in a way different to how they were ordered originally and the rmi4 driver currently depends on that implicit order.
Yes, all that you explained makes good sense, thanks.
I'm not familiar with how exactly rmi4 works, so I'll have to do some digging to hopefully pinpoint exactly what's going wrong here. In the meantime, it would be useful to know what exactly the I2C hierarchy looks like. For example, what's the I2C controller that the RMI4 device is hooked up to. According to the above, that's I2C bus 6, so you should be able to find out some details about it by inspecting the corresponding sysfs nodes: $ ls -l /sys/class/i2c-adapter/i2c-6/ $ cat /sys/class/i2c-adapter/i2c-6/name $ ls -l /sys/class/i2c-adapter/i2c-6/device/
That's curious: I don't even have a /sys/class/i2c-adapter directory. (And I did wonder if you meant to say "smbus" rather than "i2c", though I don't have any /sys/class/smbus* either: I have no notion of the relationship between i2c and smbus, but I thought the failing write_block calls were the ones in rmi_smbus.c rather than rmi_i2c.c.) I've attached compressed output of "find /sys/bus /sys/class | sort": /sys/bus looked more relevant than /sys/class, maybe it will help point in the right direction? And in case it's relevant, maybe I should mention that this is a non-modular, all-built-in kernel. But as I said to Rafael, my touchpad can wait: the wider ordering discussion is much more important. Hugh
Attachments
- sysbusclass.xz [application/x-xz] 4240 bytes