[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d1318f56-e610-b095-6d8c-37f94444882e@redhat.com>
Date: Wed, 14 Oct 2020 15:46:08 +0200
From: Hans de Goede <hdegoede@...hat.com>
To: kieran.bingham@...asonboard.com, Sasha Levin <sashal@...nel.org>,
linux-kernel@...r.kernel.org, stable@...r.kernel.org
Cc: Mika Westerberg <mika.westerberg@...ux.intel.com>,
Wolfram Sang <wsa@...nel.org>, linux-i2c@...r.kernel.org
Subject: Re: [PATCH AUTOSEL 5.8 17/20] i2c: core: Call
i2c_acpi_install_space_handler() before i2c_acpi_register_devices()
Hi all,
On 10/14/20 1:23 PM, Hans de Goede wrote:
> Hi,
>
> On 10/14/20 1:09 PM, Kieran Bingham wrote:
>> Hi Hans, Sasha,
>>
>> As mentioned on https://github.com/linux-surface/kernel/issues/63, I'm
>> afraid I've bisected a boot time issue on the Microsoft Surface Go 2 to
>> this commit on the stable 5.8 tree.
>>
>> The effect as reported there is that the boot process stalls just after
>> loading the usbhid module.
>>
>> Typing, or interacting with the Keyboard (Type Cover) at that point
>> appears to cause usb bus resets, but I don't know if that's a related
>> symptom or just an effect of some underlying root cause.
>>
>> I have been running a linux-media kernel on this device without issue.
>>
>> Is this commit in 5.9? I'll build a vanilla v5.9 kernel and see if it
>> occurs there too.
>
> Yes the commit is in 5.9 too. Still would be interesting to see if 5.9 hits
> this issue too. I guess it will, but as I mentioned in:
>
> https://github.com/linux-surface/kernel/issues/63
>
> I do not understand why this commit is causing this issue.
>
> So I just checked and the whole acpidump is not using I2C
> opregion stuff at all:
>
> [hans@x1 microsoft-surface-go2]$ ack GenericSerialBus *.dsl
> [hans@x1 microsoft-surface-go2]$
>
> And there is only 1 _REG handler which is for the
> embedded-controller.
>
> So this patch should not make a difference at all on the GO2,
> other then maybe a subtle timing difference somewhere ... ?
Thanks to Maximilian Luz sharp eyes this is explained now,
despite the name of the i2c_acpi_install_space_handler()
it also had a acpi_walk_dep_device_list() call hidden in
there, so the "i2c: core: Call i2c_acpi_install_space_handler()
before i2c_acpi_register_devices()" also moved that
acpi_walk_dep_device_list() earlier.
I've given Kieran a patch to test which in essence reverts
the part where the acpi_walk_dep_device_list() call is also
moved earlier and that fixes the Surface Go 2 not booting.
I will submit this fix upstream right away and I'll also
send a separate mail to Greg / stable@...r to see if Greg
is willing to make an exception and at this to the stable
series before it hits Linus' tree.
Regards,
Hans
Powered by blists - more mailing lists