Re: [PATCH -next] ACPI: bus: Fix the _OSC capability check for FFH OpRegion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 18, 2022 at 3:01 PM Sudeep Holla <sudeep.holla@xxxxxxx> wrote:
>
> As per the ACPI specification(vide section Platform-Wide OSPM Capabilities)
> the OSPM must set this bit to indicate support for the usage of Functional
> Fixed Hardware (FFixedHW) Operation Regions rather than the firmware as
> expected in the code.
>
> Update the check accordingly to reflect the requirement as stated in the
> specification.
>
> Reported-by: Jose Marinho <jose.marinho@xxxxxxx>
> Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>
> ---
>  drivers/acpi/bus.c | 9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
>
> Hi Rafael,
>
> Sorry for this, but looks like I clearly missed to noticed this change
> in the process of evolution of FFH OpRegions support. I had platform with
> buggy/prototype firmware(must be from the initial code-first proposal)
> and failed to catch this earlier. Thanks to Jose for identifying this.

Applied, thanks!

> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> index 245fb0828e47..2b9eac7e7777 100644
> --- a/drivers/acpi/bus.c
> +++ b/drivers/acpi/bus.c
> @@ -300,8 +300,6 @@ EXPORT_SYMBOL_GPL(osc_sb_native_usb4_support_confirmed);
>
>  bool osc_sb_cppc2_support_acked;
>
> -bool osc_sb_ffh_opregion_support_confirmed;
> -
>  static u8 sb_uuid_str[] = "0811B06E-4A27-44F9-8D60-3CBBC22E7B48";
>  static void acpi_bus_osc_negotiate_platform_control(void)
>  {
> @@ -325,6 +323,8 @@ static void acpi_bus_osc_negotiate_platform_control(void)
>         capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PCLPI_SUPPORT;
>         if (IS_ENABLED(CONFIG_ACPI_PRMT))
>                 capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PRM_SUPPORT;
> +       if (IS_ENABLED(CONFIG_ACPI_FFH))
> +               capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_FFH_OPR_SUPPORT;
>
>  #ifdef CONFIG_ARM64
>         capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_GENERIC_INITIATOR_SUPPORT;
> @@ -385,8 +385,6 @@ static void acpi_bus_osc_negotiate_platform_control(void)
>                         capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_NATIVE_USB4_SUPPORT;
>                 osc_cpc_flexible_adr_space_confirmed =
>                         capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_CPC_FLEXIBLE_ADR_SPACE;
> -               osc_sb_ffh_opregion_support_confirmed =
> -                       capbuf_ret[OSC_SUPPORT_DWORD] & OSC_SB_FFH_OPR_SUPPORT;
>         }
>
>         kfree(context.ret.pointer);
> @@ -1412,8 +1410,7 @@ static int __init acpi_init(void)
>                 disable_acpi();
>                 return result;
>         }
> -       if (osc_sb_ffh_opregion_support_confirmed)
> -               acpi_init_ffh();
> +       acpi_init_ffh();
>
>         pci_mmcfg_late_init();
>         acpi_iort_init();
> --
> 2.38.1
>



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux