Hi Paul, On 1/26/24 08:03, Paul Menzel wrote: > Dear Hans, > > > Thank you for your reply, and sorry for the delay on my side. I needed to set up an environment to easily build the Linux kernel. No problem thank you for testing this. > Am 22.01.24 um 14:43 schrieb Hans de Goede: > >> On 1/21/24 15:26, Paul Menzel wrote: > > […] > >>> Am 20.01.24 um 21:26 schrieb Hans de Goede: >>> >>>> On 1/18/24 13:57, Paul Menzel wrote: >>>>> #regzbot introduced v6.6.11..v6.7 >>> >>>>> There seems to be a regression in Linux 6.7 on the Dell XPS 13 9360 (Intel i7-7500U). >>>>> >>>>> [ 0.000000] DMI: Dell Inc. XPS 13 9360/0596KF, BIOS 2.21.0 06/02/2022 >>>>> >>>>> The PS/2 keyboard goes missing after S3 resume¹. The problem does not happen with Linux 6.6.11. >>>> >>>> Thank you for reporting this. >>>> >>>> Can you try adding "i8042.dumbkbd=1" to your kernel commandline? >>>> >>>> This should at least lead to the device not disappearing from >>>> >>>> "sudo libinput list-devices" >>>> >>>> The next question is if the keyboard will still actually >>>> work after suspend/resume with "i8042.dumbkbd=1". If it >>>> stays in the list, but no longer works then there is >>>> a problem with the i8042 controller; or interrupt >>>> delivery to the i8042 controller. >>>> >>>> If "i8042.dumbkbd=1" somehow fully fixes things, then I guess >>>> my atkbd driver fix for other laptop keyboards is somehow >>>> causing issues for yours. >>> >>> Just a quick feedback, that booting with `i8042.dumbkbd=1` seems to fix the issue. >>> >>>> If "i8042.dumbkbd=1" fully fixes things, can you try building >>>> your own 6.7.0 kernel with commit 936e4d49ecbc: >>>> >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=936e4d49ecbc8c404790504386e1422b599dec39 >>>> >>>> reverted? >>> >>> I am going to try that as soon as possible. >> >> Assuming this was not some one time glitch with 6.7.0, >> I have prepared a patch hopefully fixing this (1) as well >> as a follow up fix to address another potential issue which >> I have noticed. > > Unfortunately, it wasn’t just a glitch. > >> Can you please give a 6.7.0 (2) kernel with the 2 attached >> patches added a try ? >> >> I know building kernels can be a bit of work / takes time, >> sorry. If you are short on time I would prefer testing these 2 >> patches and see if they fix things over trying a plain revert. > > Applying both patches on v6.7.1 > > $ git log --oneline -3 > 053fa44c0de1 (HEAD -> v6.7.1) Input: atkbd - Do not skip atkbd_deactivate() when skipping ATKBD_CMD_GETID > 0e0fa0113c7a Input: atkbd - Skip ATKBD_CMD_SETLEDS when skipping ATKBD_CMD_GETID > a91fdae50a6d (tag: v6.7.1, stable/linux-6.7.y, origin/linux-6.7.y) Linux 6.7.1 > > I am unable to reproduce the problem in eight ACPI S3 suspend/resume cycles. The DMAR errors [3] are also gone: Thanks. So thinking more about this I think the DMAR errors are actually the real cause of the issue here, specifically if we replace: f0 with 00 (I guess DMAR uses the high bits for its own purposes) in `[INTR-REMAP] Request device [f0:1f.0] fault index 0x0` then the device ID is 00:1f.0 which is the ISA bridge and [INTR-REMAP] errors are known to disable interrupts. The PS/2 controller (which sits behind the ISA bridge) interrupt getting disabled would explain the suspend/resume keyboard issue better then the atkbd.c changes I have been focusing on. So then the question becomes why does the 6.7.1 kernel not show the DMAR errors. I don't see anything between 6.7.0 and 6.7.1 which explains this. But maybe your local build is using a different configuration which explains this. Can you try your local 6.7.1 build without my 2 patches? The quickest way to do that would be to run: "git reset --hard HEAD~2" and then re-run the make commandos, this will re-use your previous build so it should be pretty quick. If things still work after that then the problem is not with the atkbd code. Regards, Hans