On Mon, 11 Jan 2021, Thierry Reding wrote: > On Sun, Jan 10, 2021 at 08:44:13PM -0800, Hugh Dickins wrote: > > > > 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