2022-06-24 12:14:39

by Yuan, Perry

[permalink] [raw]
Subject: [PATCH] ACPI: bus: Fix osc_sb_cppc_not_supported check

The patch fixs the osc_sb_cppc_not_supported variable checking
Otherwise the cppc acpi driver will be failed to register causing AMD
pstate driver failed to load when calling acpi_cpc_valid()

Fixes: c42fa24b447("ACPI: bus: Avoid using CPPC if not supported by firmware")
Signed-off-by: Perry Yuan <[email protected]>
---
drivers/acpi/bus.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 4d7c51a33b01..9731e4a1e338 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -359,7 +359,7 @@ static void acpi_bus_osc_negotiate_platform_control(void)
}

#ifdef CONFIG_ACPI_CPPC_LIB
- osc_sb_cppc_not_supported = !(capbuf_ret[OSC_SUPPORT_DWORD] &
+ osc_sb_cppc_not_supported = !(capbuf_ret[OSC_SUPPORT_DWORD] &&
(OSC_SB_CPC_SUPPORT | OSC_SB_CPCV2_SUPPORT));
#endif

--
2.25.1


2022-06-24 16:46:37

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] ACPI: bus: Fix osc_sb_cppc_not_supported check

On Fri, Jun 24, 2022 at 2:00 PM Perry Yuan <[email protected]> wrote:
>
> The patch fixs the osc_sb_cppc_not_supported variable checking
> Otherwise the cppc acpi driver will be failed to register causing AMD
> pstate driver failed to load when calling acpi_cpc_valid()
>
> Fixes: c42fa24b447("ACPI: bus: Avoid using CPPC if not supported by firmware")
> Signed-off-by: Perry Yuan <[email protected]>
> ---
> drivers/acpi/bus.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> index 4d7c51a33b01..9731e4a1e338 100644
> --- a/drivers/acpi/bus.c
> +++ b/drivers/acpi/bus.c
> @@ -359,7 +359,7 @@ static void acpi_bus_osc_negotiate_platform_control(void)
> }
>
> #ifdef CONFIG_ACPI_CPPC_LIB
> - osc_sb_cppc_not_supported = !(capbuf_ret[OSC_SUPPORT_DWORD] &
> + osc_sb_cppc_not_supported = !(capbuf_ret[OSC_SUPPORT_DWORD] &&
> (OSC_SB_CPC_SUPPORT | OSC_SB_CPCV2_SUPPORT));

This certainly is not a correct fix, because it causes
osc_sb_cppc_not_supported to always be true if
capbuf_ret[OSC_SUPPORT_DWORD] is not zero.

> #endif
>
> --
> 2.25.1
>

2022-06-24 18:05:53

by Yuan, Perry

[permalink] [raw]
Subject: RE: [PATCH] ACPI: bus: Fix osc_sb_cppc_not_supported check

[AMD Official Use Only - General]

Hi Rafael:

> -----Original Message-----
> From: Rafael J. Wysocki <[email protected]>
> Sent: Saturday, June 25, 2022 12:12 AM
> To: Yuan, Perry <[email protected]>
> Cc: Huang, Ray <[email protected]>; Limonciello, Mario
> <[email protected]>; Rafael J. Wysocki <[email protected]>; Len
> Brown <[email protected]>; Mika Westerberg
> <[email protected]>; ACPI Devel Maling List <linux-
> [email protected]>; Linux Kernel Mailing List <[email protected]>;
> Fontenot, Nathan <[email protected]>; Su, Jinzhou (Joe)
> <[email protected]>; Huang, Shimmer <[email protected]>; Du,
> Xiaojian <[email protected]>; Meng, Li (Jassmine) <[email protected]>;
> Linux PM <[email protected]>
> Subject: Re: [PATCH] ACPI: bus: Fix osc_sb_cppc_not_supported check
>
> [CAUTION: External Email]
>
> On Fri, Jun 24, 2022 at 2:00 PM Perry Yuan <[email protected]> wrote:
> >
> > The patch fixs the osc_sb_cppc_not_supported variable checking
> > Otherwise the cppc acpi driver will be failed to register causing AMD
> > pstate driver failed to load when calling acpi_cpc_valid()
> >
> > Fixes: c42fa24b447("ACPI: bus: Avoid using CPPC if not supported by
> > firmware")
> > Signed-off-by: Perry Yuan <[email protected]>
> > ---
> > drivers/acpi/bus.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index
> > 4d7c51a33b01..9731e4a1e338 100644
> > --- a/drivers/acpi/bus.c
> > +++ b/drivers/acpi/bus.c
> > @@ -359,7 +359,7 @@ static void
> acpi_bus_osc_negotiate_platform_control(void)
> > }
> >
> > #ifdef CONFIG_ACPI_CPPC_LIB
> > - osc_sb_cppc_not_supported = !(capbuf_ret[OSC_SUPPORT_DWORD] &
> > + osc_sb_cppc_not_supported = !(capbuf_ret[OSC_SUPPORT_DWORD] &&
> > (OSC_SB_CPC_SUPPORT | OSC_SB_CPCV2_SUPPORT));
>
> This certainly is not a correct fix, because it causes osc_sb_cppc_not_supported
> to always be true if capbuf_ret[OSC_SUPPORT_DWORD] is not zero.
>
> > #endif

That is true, I will send another fix solution soon.

Perry

> >
> > --
> > 2.25.1
> >