• Zhang Rui's avatar
    ACPI: TAD: Install SystemCMOS address space handler for ACPI000E · 596ca52a
    Zhang Rui authored
    Currently, the SystemCMOS address space handler is installed for the
    ACPI RTC devices (PNP0B00/PNP0B01/PNP0B02) only. But there are platforms
    with SystemCMOS Operetion Region defined under the ACPI Time and Alarm
    Device (ACPI000E), which is used by the ACPI pre-defined control methods
    like _GRT (Get the Real time) and _SRT (Set the Real time).
    
    When accessing these control methods via the acpi_tad sysfs interface,
    missing SystemCMOS address space handler causes errors like below
    [  478.255453] ACPI Error: No handler for Region [RTCM] (00000000a8d2dd39) [SystemCMOS] (20230331/evregion-130)
    [  478.255458] ACPI Error: Region SystemCMOS (ID=5) has no handler (20230331/exfldio-261)
    [  478.255461] Initialized Local Variables for Method [_GRT]:
    [  478.255461]   Local1: 00000000f182542c <Obj>           Integer 0000000000000000
    [  478.255464] No Arguments are initialized for method [_GRT]
    [  478.255465] ACPI Error: Aborting method \_SB.AWAC._GRT due to previous error (AE_NOT_EXIST) (20230331/psparse-529)
    
    Export two APIs for SystemCMOS address space handler from acpi_cmos_rtc
    scan handler and install the handler for the ACPI Time and Alarm Device
    from the ACPI TAD driver.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=217714Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
    [ rjw: Subject and changelog edits, whitespace adjustment ]
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    596ca52a
acpi_tad.c 15.8 KB