https://bugzilla.kernel.org/show_bug.cgi?id=208423

            Bug ID: 208423
           Summary: I2C touchpad doesn't work because \_SB.PCI0.I2C0._REG
                    doesn't get evaluated
           Product: ACPI
           Version: 2.5
    Kernel Version: mainline
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: ACPICA-Core
          Assignee: acpi_acpica-c...@kernel-bugs.osdl.org
          Reporter: kai.heng.f...@canonical.com
        Regression: No

This is _REG for I2C device:

    Scope (_SB.PCI0.I2C0)
    {
..
        Method (_REG, 2, NotSerialized)  // _REG: Region Availability
        {
            If (((Arg0 == 0x09) && (Arg1 == One)))
            {
                If ((ICBM == One))
                {
                    Name (LBUF, Buffer (0x03)
                    {
                         0x00, 0x00, 0x00                                 //
...
                    })
                    CreateByteField (LBUF, Zero, LSTS)
                    CreateByteField (LBUF, 0x02, LDAT)
                    LBUF = SHID /* \_SB_.PCI0.I2C0.SHID */
                    If ((LSTS == Zero))
                    {
                        If ((LDAT == 0x1E))
                        {
                            TPVD = 0x4E
                        }

                        If ((LDAT == Zero))
                        {
                            TPVD = 0x53
                        }
                    }

                    LBUF = EHID /* \_SB_.PCI0.I2C0.EHID */
                    If ((LSTS == Zero))
                    {
                        TPVD = 0x45
                    }
                }
            }
        }

And the touchpad under it requires _REG to return a valid _STA:
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If ((TPVD == 0x53))
                {
                    Return (0x0F)
                }

                Return (Zero)
            }

For some reason _REG doesn't get evaluated at initialization time, I guess it's
due to 
lip 03 12:45:41 lenovo-mrozwod kernel: ACPI BIOS Error (bug):
AE_AML_PACKAGE_LIMIT, Index (0x0000000FF) is beyond end of object (length 0x10)
(20200528/exoparg2-393)

-- 
You are receiving this mail because:
You are watching the assignee of the bug.

_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to