[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LSU.2.11.2101110922300.1620@eggly.anvils>
Date: Mon, 11 Jan 2021 09:42:42 -0800 (PST)
From: Hugh Dickins <hughd@...gle.com>
To: Thierry Reding <treding@...dia.com>
cc: Hugh Dickins <hughd@...gle.com>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Jonathan Hunter <jonathanh@...dia.com>,
Saravana Kannan <saravanak@...gle.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-kernel@...r.kernel.org, linux-pm@...r.kernel.org
Subject: Re: 5.11-rc device reordering breaks ThinkPad rmi4 suspend
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
Download attachment "sysbusclass.xz" of type "APPLICATION/x-xz" (4240 bytes)
Powered by blists - more mailing lists