Hi Jonathan, I have found the value of OSC_SB_GENERIC_INITIATOR_SUPPORT is wrong when reading source code of driver/acpi/bus.c in the linux-next On Wed, Sep 30, 2020 at 10:05:44PM +0800, Jonathan Cameron wrote: > Until we tell ACPI that we support generic initiators, it will have > to operate in fall back domain mode and all _PXM entries should > be on existing non GI domains. > > This patch sets the relevant OSC bit to make that happen. > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > --- > drivers/acpi/bus.c | 4 ++++ > include/linux/acpi.h | 1 + > 2 files changed, 5 insertions(+) > > diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c > index 54002670cb7a..113c661eb848 100644 > --- a/drivers/acpi/bus.c > +++ b/drivers/acpi/bus.c > @@ -303,7 +303,11 @@ static void acpi_bus_osc_support(void) > capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_HOTPLUG_OST_SUPPORT; > capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PCLPI_SUPPORT; > > +#ifdef CONFIG_ARM64 > + capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_GENERIC_INITIATOR_SUPPORT; > +#endif > #ifdef CONFIG_X86 > + capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_GENERIC_INITIATOR_SUPPORT; > if (boot_cpu_has(X86_FEATURE_HWP)) { > capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_CPC_SUPPORT; > capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_CPCV2_SUPPORT; > diff --git a/include/linux/acpi.h b/include/linux/acpi.h > index e9f6cd67943e..edbf3c4116b4 100644 > --- a/include/linux/acpi.h > +++ b/include/linux/acpi.h > @@ -545,6 +545,7 @@ acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context); > #define OSC_SB_PCLPI_SUPPORT 0x00000080 > #define OSC_SB_OSLPI_SUPPORT 0x00000100 > #define OSC_SB_CPC_DIVERSE_HIGH_SUPPORT 0x00001000 > +#define OSC_SB_GENERIC_INITIATOR_SUPPORT 0x00002000 Since the Generic Initiator Support is the Bit 17, it should be 0x20000 rather than 0x2000. Baozi.