[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [BUG]i2c_hid_acpi broken with 4.17.2 on Framework Laptop 13 AMD





Le jeu. 7 mars 2024, 09:39, Jan Beulich <jbeulich@xxxxxxxx> a écrit :
On 06.03.2024 18:28, Sébastien Chaumat wrote:
> Reasoning backward  (using a  kernel without the pinctrl_amd driver to
>> ensure xen only is at stake) :
>>  checking the diff in IOAPIC  between bare metal and xen  (IRQ7 is on
>> pin07 on APIC )
>>
>> using kernel argument : apic=debug
>>
>> bare metal :
>> [    0.715330] fedora kernel: ... APIC VERSION: 81050010
>> ...
>> [    0.715433] fedora kernel:  pin07, disabled, edge , high, V(00),
>> IRR(0), S(0), physical, D(0000), M(0)
>>
>> xen :
>> [    2.249582] fedora kernel: ... APIC VERSION: 00000014
>> ...
>> [    2.249730] fedora kernel:  pin07, disabled, level, low , V(60),
>> IRR(0), S(0), physical, D(0000), M(0)
>>
>> So the APIC table is not the same.
>>
>> As strange as it looks the  (IOAPIC 0) pin07 is correctly described by the
>> APIC in xen but yet differently than in baremetal.
>> But the APIC message comes long after the
>> [    1.833145] fedora kernel: xen: registering gsi 7 triggering 0 polarity
>> 1
>>
>> so I wonder if the APIC pin07 info had any influence.
>>
>> Finally found the fix : adding ioapic_ack=new to xen boot parameters.
> Not only the trackpad is now working but also the ACPI Embedded Controller
> which is completely disabled.

Hmm, interesting. From someone else's laptop many years ago I had actually
an indication in the opposite direction: That didn't work because of our
defaulting to new (no directed EOI in sight yet back at that time). I
wonder if overriding the ack method isn't actually just papering over the
underlying actual issue here, whatever that is. IOW with the edge vs level
mismatch addressed I'd hope the override could then be dropped again.


 - I did override the IRQ configuration all allong my debugs (the handler was correctly set to level, yet not all flags were identical between dom0 and bare metal). In the end, with the ioapic_ack=new, I could even leave the wrong edge binding for IRQ7.

 - besides the touchpad, the ACPI EC was also non functional without forcing ioapic_ack. And in bare metal the EC does a lot of work of during early kernel setup.

 Sébastien

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.