platform/x86: thinkpad_acpi: Fix Embedded Controller access on X380 Yoga
authorDaniel Bertalan <dani@danielbertalan.dev>
Fri, 14 Apr 2023 18:02:10 +0000 (18:02 +0000)
committerHans de Goede <hdegoede@redhat.com>
Mon, 17 Apr 2023 10:21:03 +0000 (12:21 +0200)
commit3a133f7c51b20d5d330d5424f3ef0dc283992500
tree448c4bb0d6f9fe9384a7c7af59179a1e6e4576f8
parent14f6f0e3709a8aa987ae78783d2e4d63f88cc13a
platform/x86: thinkpad_acpi: Fix Embedded Controller access on X380 Yoga

On the X380 Yoga, the `ECRD` and `ECWR` ACPI objects cannot be used for
accessing the Embedded Controller: instead of a method that reads from
the EC's memory, `ECRD` is the name of a location in high memory. This
meant that trying to call them would fail with the following message:

  ACPI: \_SB.PCI0.LPCB.EC.ECRD: 1 arguments were passed to a non-method
  ACPI object (RegionField)

With this commit, it is now possible to access the EC and read
temperature and fan speed information. Note that while writes to the
HFSP register do go through (as indicated by subsequent reads showing
the new value), the fan does not actually change its speed.

Signed-off-by: Daniel Bertalan <dani@danielbertalan.dev>
Link: https://lore.kernel.org/r/20230414180034.63914-1-dani@danielbertalan.dev
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/thinkpad_acpi.c