Re: i8042_init: PS/2 mouse not detected with ACPIPnP/PnPBIOS

From: Rafael J. Wysocki
Date: Mon Oct 12 2020 - 07:00:43 EST


On Mon, Oct 12, 2020 at 12:50 PM Paul Menzel <pmenzel@xxxxxxxxxxxxx> wrote:
>
> Dear Rafael,
>
>
> Am 12.10.20 um 12:39 schrieb Rafael J. Wysocki:
> > On Sun, Oct 11, 2020 at 1:08 AM Paul Menzel <pmenzel@xxxxxxxxxxxxx> wrote:
> >>
> >> Dear Dmitry, dear Rafael, dear Len,
> >>
> >>
> >> Am 08.10.20 um 00:16 schrieb Dmitry Torokhov:
> >>
> >>> On Wed, Oct 07, 2020 at 11:18:41PM +0200, Paul Menzel wrote:
> >>
> >>>> On the Asus F2A85-M PRO Linux 5.9-rc8 (and previous versions) does not
> >>>> recognize a plugged in PS/2 mouse using the Plug & Play method. The PS/2
> >>>> keyboard is detected fine, and using `i8042.nopnp`, the PS/2 mouse also
> >>>> works.
> >>>>
> >>>>> [ 1.035915] calling i8042_init+0x0/0x42d @ 1
> >>>>> [ 1.035947] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
> >>>>> [ 1.035948] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
> >>>>> [ 1.036589] serio: i8042 KBD port at 0x60,0x64 irq 1
> >>>>> [ 1.036621] initcall i8042_init+0x0/0x42d returned 0 after 687 usecs
> >>>>
> >>>> But, the DSDT includes the “mouse device”. From
> >>>>
> >>>> acpidump > dump.bin; acpixtract dump.bin; iasl -d *dat; more dsdt.dsl
> >>>>
> >>>> we get
> >>>>
> >>>> Device (PS2M)
> >>>> {
> >>>> Name (_HID, EisaId ("PNP0F03") /* Microsoft PS/2-style Mouse */) // _HID: Hardware ID
> >>>> Name (_CID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _CID: Compatible ID
> >>>> Method (_STA, 0, NotSerialized) // _STA: Status
> >>>> {
> >>>> If ((IOST & 0x4000))
> >>>> {
> >>>> Return (0x0F)
> >>>> }
> >>>> Else
> >>>> {
> >>>> Return (Zero)
> >>>> }
> >>>> }
> >>>>
> >>>> and the identifiers PNP0F03 and PNP0F13 are both listed in the array
> >>>> `pnp_aux_devids[]`. But adding print statements to `i8042_pnp_aux_probe()`,
> >>>> I do not see them, so the function does not seem to be called.
> >>>
> >>> My guess is that _STA returns 0 indicating that the device is not
> >>> present. I would try tracking where IOST is being set and figuring out
> >>> why it does not have mouse bit enabled.
> >>
> >> Does the ACPI subsystem allow to track, how ACPI variables(?) like IOST
> >> are read and set?
> >
> > My guess would be that IOST is a field in an operation region which
> > would indicate that it is initialized by the bootstrap part of the
> > BIOS.
>
> Thank you for your answer. But how can I verify that?

Inspecting the ACPI tables from the system in question could help you
to find out whether or not IOST really is a field in an operation
region, but its initial value may not be possible to determine this
way.

> Is there a Linux kernel parameter, that would print it?

Not that I know of.