Message ID | 20240812054647.1194716-2-jiaqing.zhao@linux.intel.com |
---|---|
State | Superseded |
Headers | show |
Series | S3 wakeup support for hardware reduced model | expand |
On Mon, Aug 12, 2024 at 7:47 AM Jiaqing Zhao <jiaqing.zhao@linux.intel.com> wrote: > > According to Section 5.2.10 of ACPI Specification, FACS is optional > in reduced hardware model. Enable the detection for "Hardware-reduced > ACPI support only" build (CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y) also. > > Link: https://github.com/acpica/acpica/commit/ee53ed6b5452612bb44af542b68d605f8b2b1104 > Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > --- > drivers/acpi/acpica/acglobal.h | 6 +----- > drivers/acpi/acpica/tbutils.c | 5 +---- > drivers/acpi/acpica/utxfinit.c | 24 ++++++++++++------------ > include/acpi/acconfig.h | 1 - > 4 files changed, 14 insertions(+), 22 deletions(-) > > diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h > index f4c90fc99be2..309ce8efb4f6 100644 > --- a/drivers/acpi/acpica/acglobal.h > +++ b/drivers/acpi/acpica/acglobal.h > @@ -29,11 +29,7 @@ ACPI_INIT_GLOBAL(u32, acpi_gbl_dsdt_index, ACPI_INVALID_TABLE_INDEX); > ACPI_INIT_GLOBAL(u32, acpi_gbl_facs_index, ACPI_INVALID_TABLE_INDEX); > ACPI_INIT_GLOBAL(u32, acpi_gbl_xfacs_index, ACPI_INVALID_TABLE_INDEX); > ACPI_INIT_GLOBAL(u32, acpi_gbl_fadt_index, ACPI_INVALID_TABLE_INDEX); > - > -#if (!ACPI_REDUCED_HARDWARE) > -ACPI_GLOBAL(struct acpi_table_facs *, acpi_gbl_FACS); > - > -#endif /* !ACPI_REDUCED_HARDWARE */ > +ACPI_INIT_GLOBAL(struct acpi_table_facs *, acpi_gbl_FACS, NULL); > > /* These addresses are calculated from the FADT Event Block addresses */ > > diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c > index 15fa68a5ea6e..356700349b45 100644 > --- a/drivers/acpi/acpica/tbutils.c > +++ b/drivers/acpi/acpica/tbutils.c > @@ -18,7 +18,6 @@ ACPI_MODULE_NAME("tbutils") > static acpi_physical_address > acpi_tb_get_root_table_entry(u8 *table_entry, u32 table_entry_size); > > -#if (!ACPI_REDUCED_HARDWARE) > /******************************************************************************* > * > * FUNCTION: acpi_tb_initialize_facs > @@ -37,8 +36,7 @@ acpi_status acpi_tb_initialize_facs(void) > struct acpi_table_facs *facs; > > if (acpi_gbl_FADT.Xfacs && > - (!acpi_gbl_FADT.facs > - || !acpi_gbl_use32_bit_facs_addresses)) { > + (!acpi_gbl_FADT.facs || !acpi_gbl_use32_bit_facs_addresses)) { > (void)acpi_get_table_by_index(acpi_gbl_xfacs_index, > ACPI_CAST_INDIRECT_PTR(struct > acpi_table_header, I'm not sure how this change is related to the rest of the patch. It doesn't appear to be present in the original commit pointed to by the Link tag. > @@ -56,7 +54,6 @@ acpi_status acpi_tb_initialize_facs(void) > > return (AE_OK); > } > -#endif /* !ACPI_REDUCED_HARDWARE */ > > /******************************************************************************* > * > diff --git a/drivers/acpi/acpica/utxfinit.c b/drivers/acpi/acpica/utxfinit.c > index 1915bec2b279..70ae0afa7939 100644 > --- a/drivers/acpi/acpica/utxfinit.c > +++ b/drivers/acpi/acpica/utxfinit.c > @@ -120,6 +120,18 @@ acpi_status ACPI_INIT_FUNCTION acpi_enable_subsystem(u32 flags) > */ > acpi_gbl_early_initialization = FALSE; > > + /* > + * Obtain a permanent mapping for the FACS. This is required for the > + * Global Lock and the Firmware Waking Vector > + */ > + if (!(flags & ACPI_NO_FACS_INIT)) { > + status = acpi_tb_initialize_facs(); > + if (ACPI_FAILURE(status)) { > + ACPI_WARNING((AE_INFO, "Could not map the FACS table")); > + return_ACPI_STATUS(status); > + } > + } > + > #if (!ACPI_REDUCED_HARDWARE) > > /* Enable ACPI mode */ > @@ -137,18 +149,6 @@ acpi_status ACPI_INIT_FUNCTION acpi_enable_subsystem(u32 flags) > } > } > > - /* > - * Obtain a permanent mapping for the FACS. This is required for the > - * Global Lock and the Firmware Waking Vector > - */ > - if (!(flags & ACPI_NO_FACS_INIT)) { > - status = acpi_tb_initialize_facs(); > - if (ACPI_FAILURE(status)) { > - ACPI_WARNING((AE_INFO, "Could not map the FACS table")); > - return_ACPI_STATUS(status); > - } > - } > - > /* > * Initialize ACPI Event handling (Fixed and General Purpose) > * > diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h > index d768d9c568cf..2da5f4a6e814 100644 > --- a/include/acpi/acconfig.h > +++ b/include/acpi/acconfig.h > @@ -67,7 +67,6 @@ > * General Purpose Events (GPEs) > * Global Lock > * ACPI PM timer > - * FACS table (Waking vectors and Global Lock) > */ > #ifndef ACPI_REDUCED_HARDWARE > #define ACPI_REDUCED_HARDWARE FALSE > -- > 2.43.0 > >
On 2024-08-20 22:55, Rafael J. Wysocki wrote: > On Mon, Aug 12, 2024 at 7:47 AM Jiaqing Zhao > <jiaqing.zhao@linux.intel.com> wrote: >> >> According to Section 5.2.10 of ACPI Specification, FACS is optional >> in reduced hardware model. Enable the detection for "Hardware-reduced >> ACPI support only" build (CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y) also. >> >> Link: https://github.com/acpica/acpica/commit/ee53ed6b5452612bb44af542b68d605f8b2b1104 >> Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> >> --- >> drivers/acpi/acpica/acglobal.h | 6 +----- >> drivers/acpi/acpica/tbutils.c | 5 +---- >> drivers/acpi/acpica/utxfinit.c | 24 ++++++++++++------------ >> include/acpi/acconfig.h | 1 - >> 4 files changed, 14 insertions(+), 22 deletions(-) >> >> diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h >> index f4c90fc99be2..309ce8efb4f6 100644 >> --- a/drivers/acpi/acpica/acglobal.h >> +++ b/drivers/acpi/acpica/acglobal.h >> @@ -29,11 +29,7 @@ ACPI_INIT_GLOBAL(u32, acpi_gbl_dsdt_index, ACPI_INVALID_TABLE_INDEX); >> ACPI_INIT_GLOBAL(u32, acpi_gbl_facs_index, ACPI_INVALID_TABLE_INDEX); >> ACPI_INIT_GLOBAL(u32, acpi_gbl_xfacs_index, ACPI_INVALID_TABLE_INDEX); >> ACPI_INIT_GLOBAL(u32, acpi_gbl_fadt_index, ACPI_INVALID_TABLE_INDEX); >> - >> -#if (!ACPI_REDUCED_HARDWARE) >> -ACPI_GLOBAL(struct acpi_table_facs *, acpi_gbl_FACS); >> - >> -#endif /* !ACPI_REDUCED_HARDWARE */ >> +ACPI_INIT_GLOBAL(struct acpi_table_facs *, acpi_gbl_FACS, NULL); >> >> /* These addresses are calculated from the FADT Event Block addresses */ >> >> diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c >> index 15fa68a5ea6e..356700349b45 100644 >> --- a/drivers/acpi/acpica/tbutils.c >> +++ b/drivers/acpi/acpica/tbutils.c >> @@ -18,7 +18,6 @@ ACPI_MODULE_NAME("tbutils") >> static acpi_physical_address >> acpi_tb_get_root_table_entry(u8 *table_entry, u32 table_entry_size); >> >> -#if (!ACPI_REDUCED_HARDWARE) >> /******************************************************************************* >> * >> * FUNCTION: acpi_tb_initialize_facs >> @@ -37,8 +36,7 @@ acpi_status acpi_tb_initialize_facs(void) >> struct acpi_table_facs *facs; >> >> if (acpi_gbl_FADT.Xfacs && >> - (!acpi_gbl_FADT.facs >> - || !acpi_gbl_use32_bit_facs_addresses)) { >> + (!acpi_gbl_FADT.facs || !acpi_gbl_use32_bit_facs_addresses)) { >> (void)acpi_get_table_by_index(acpi_gbl_xfacs_index, >> ACPI_CAST_INDIRECT_PTR(struct >> acpi_table_header, > > I'm not sure how this change is related to the rest of the patch. > > It doesn't appear to be present in the original commit pointed to by > the Link tag. This change here is just indention fix, in original acpica, the indention is just fine. Shall I remove this change? >> @@ -56,7 +54,6 @@ acpi_status acpi_tb_initialize_facs(void) >> >> return (AE_OK); >> } >> -#endif /* !ACPI_REDUCED_HARDWARE */ >> >> /******************************************************************************* >> * >> diff --git a/drivers/acpi/acpica/utxfinit.c b/drivers/acpi/acpica/utxfinit.c >> index 1915bec2b279..70ae0afa7939 100644 >> --- a/drivers/acpi/acpica/utxfinit.c >> +++ b/drivers/acpi/acpica/utxfinit.c >> @@ -120,6 +120,18 @@ acpi_status ACPI_INIT_FUNCTION acpi_enable_subsystem(u32 flags) >> */ >> acpi_gbl_early_initialization = FALSE; >> >> + /* >> + * Obtain a permanent mapping for the FACS. This is required for the >> + * Global Lock and the Firmware Waking Vector >> + */ >> + if (!(flags & ACPI_NO_FACS_INIT)) { >> + status = acpi_tb_initialize_facs(); >> + if (ACPI_FAILURE(status)) { >> + ACPI_WARNING((AE_INFO, "Could not map the FACS table")); >> + return_ACPI_STATUS(status); >> + } >> + } >> + >> #if (!ACPI_REDUCED_HARDWARE) >> >> /* Enable ACPI mode */ >> @@ -137,18 +149,6 @@ acpi_status ACPI_INIT_FUNCTION acpi_enable_subsystem(u32 flags) >> } >> } >> >> - /* >> - * Obtain a permanent mapping for the FACS. This is required for the >> - * Global Lock and the Firmware Waking Vector >> - */ >> - if (!(flags & ACPI_NO_FACS_INIT)) { >> - status = acpi_tb_initialize_facs(); >> - if (ACPI_FAILURE(status)) { >> - ACPI_WARNING((AE_INFO, "Could not map the FACS table")); >> - return_ACPI_STATUS(status); >> - } >> - } >> - >> /* >> * Initialize ACPI Event handling (Fixed and General Purpose) >> * >> diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h >> index d768d9c568cf..2da5f4a6e814 100644 >> --- a/include/acpi/acconfig.h >> +++ b/include/acpi/acconfig.h >> @@ -67,7 +67,6 @@ >> * General Purpose Events (GPEs) >> * Global Lock >> * ACPI PM timer >> - * FACS table (Waking vectors and Global Lock) >> */ >> #ifndef ACPI_REDUCED_HARDWARE >> #define ACPI_REDUCED_HARDWARE FALSE >> -- >> 2.43.0 >> >>
On Mon, Aug 26, 2024 at 3:10 AM Jiaqing Zhao <jiaqing.zhao@linux.intel.com> wrote: > > On 2024-08-20 22:55, Rafael J. Wysocki wrote: > > On Mon, Aug 12, 2024 at 7:47 AM Jiaqing Zhao > > <jiaqing.zhao@linux.intel.com> wrote: > >> > >> According to Section 5.2.10 of ACPI Specification, FACS is optional > >> in reduced hardware model. Enable the detection for "Hardware-reduced > >> ACPI support only" build (CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y) also. > >> > >> Link: https://github.com/acpica/acpica/commit/ee53ed6b5452612bb44af542b68d605f8b2b1104 > >> Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > >> --- > >> drivers/acpi/acpica/acglobal.h | 6 +----- > >> drivers/acpi/acpica/tbutils.c | 5 +---- > >> drivers/acpi/acpica/utxfinit.c | 24 ++++++++++++------------ > >> include/acpi/acconfig.h | 1 - > >> 4 files changed, 14 insertions(+), 22 deletions(-) > >> > >> diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h > >> index f4c90fc99be2..309ce8efb4f6 100644 > >> --- a/drivers/acpi/acpica/acglobal.h > >> +++ b/drivers/acpi/acpica/acglobal.h > >> @@ -29,11 +29,7 @@ ACPI_INIT_GLOBAL(u32, acpi_gbl_dsdt_index, ACPI_INVALID_TABLE_INDEX); > >> ACPI_INIT_GLOBAL(u32, acpi_gbl_facs_index, ACPI_INVALID_TABLE_INDEX); > >> ACPI_INIT_GLOBAL(u32, acpi_gbl_xfacs_index, ACPI_INVALID_TABLE_INDEX); > >> ACPI_INIT_GLOBAL(u32, acpi_gbl_fadt_index, ACPI_INVALID_TABLE_INDEX); > >> - > >> -#if (!ACPI_REDUCED_HARDWARE) > >> -ACPI_GLOBAL(struct acpi_table_facs *, acpi_gbl_FACS); > >> - > >> -#endif /* !ACPI_REDUCED_HARDWARE */ > >> +ACPI_INIT_GLOBAL(struct acpi_table_facs *, acpi_gbl_FACS, NULL); > >> > >> /* These addresses are calculated from the FADT Event Block addresses */ > >> > >> diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c > >> index 15fa68a5ea6e..356700349b45 100644 > >> --- a/drivers/acpi/acpica/tbutils.c > >> +++ b/drivers/acpi/acpica/tbutils.c > >> @@ -18,7 +18,6 @@ ACPI_MODULE_NAME("tbutils") > >> static acpi_physical_address > >> acpi_tb_get_root_table_entry(u8 *table_entry, u32 table_entry_size); > >> > >> -#if (!ACPI_REDUCED_HARDWARE) > >> /******************************************************************************* > >> * > >> * FUNCTION: acpi_tb_initialize_facs > >> @@ -37,8 +36,7 @@ acpi_status acpi_tb_initialize_facs(void) > >> struct acpi_table_facs *facs; > >> > >> if (acpi_gbl_FADT.Xfacs && > >> - (!acpi_gbl_FADT.facs > >> - || !acpi_gbl_use32_bit_facs_addresses)) { > >> + (!acpi_gbl_FADT.facs || !acpi_gbl_use32_bit_facs_addresses)) { > >> (void)acpi_get_table_by_index(acpi_gbl_xfacs_index, > >> ACPI_CAST_INDIRECT_PTR(struct > >> acpi_table_header, > > > > I'm not sure how this change is related to the rest of the patch. > > > > It doesn't appear to be present in the original commit pointed to by > > the Link tag. > > This change here is just indention fix, in original acpica, the indention is just fine. > > Shall I remove this change? Yes, please. If you send a Linux counterpart of an ACPICA change, it should not contain any changes in addition to what was there in the original ACPICA commit. Thanks!
diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h index f4c90fc99be2..309ce8efb4f6 100644 --- a/drivers/acpi/acpica/acglobal.h +++ b/drivers/acpi/acpica/acglobal.h @@ -29,11 +29,7 @@ ACPI_INIT_GLOBAL(u32, acpi_gbl_dsdt_index, ACPI_INVALID_TABLE_INDEX); ACPI_INIT_GLOBAL(u32, acpi_gbl_facs_index, ACPI_INVALID_TABLE_INDEX); ACPI_INIT_GLOBAL(u32, acpi_gbl_xfacs_index, ACPI_INVALID_TABLE_INDEX); ACPI_INIT_GLOBAL(u32, acpi_gbl_fadt_index, ACPI_INVALID_TABLE_INDEX); - -#if (!ACPI_REDUCED_HARDWARE) -ACPI_GLOBAL(struct acpi_table_facs *, acpi_gbl_FACS); - -#endif /* !ACPI_REDUCED_HARDWARE */ +ACPI_INIT_GLOBAL(struct acpi_table_facs *, acpi_gbl_FACS, NULL); /* These addresses are calculated from the FADT Event Block addresses */ diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c index 15fa68a5ea6e..356700349b45 100644 --- a/drivers/acpi/acpica/tbutils.c +++ b/drivers/acpi/acpica/tbutils.c @@ -18,7 +18,6 @@ ACPI_MODULE_NAME("tbutils") static acpi_physical_address acpi_tb_get_root_table_entry(u8 *table_entry, u32 table_entry_size); -#if (!ACPI_REDUCED_HARDWARE) /******************************************************************************* * * FUNCTION: acpi_tb_initialize_facs @@ -37,8 +36,7 @@ acpi_status acpi_tb_initialize_facs(void) struct acpi_table_facs *facs; if (acpi_gbl_FADT.Xfacs && - (!acpi_gbl_FADT.facs - || !acpi_gbl_use32_bit_facs_addresses)) { + (!acpi_gbl_FADT.facs || !acpi_gbl_use32_bit_facs_addresses)) { (void)acpi_get_table_by_index(acpi_gbl_xfacs_index, ACPI_CAST_INDIRECT_PTR(struct acpi_table_header, @@ -56,7 +54,6 @@ acpi_status acpi_tb_initialize_facs(void) return (AE_OK); } -#endif /* !ACPI_REDUCED_HARDWARE */ /******************************************************************************* * diff --git a/drivers/acpi/acpica/utxfinit.c b/drivers/acpi/acpica/utxfinit.c index 1915bec2b279..70ae0afa7939 100644 --- a/drivers/acpi/acpica/utxfinit.c +++ b/drivers/acpi/acpica/utxfinit.c @@ -120,6 +120,18 @@ acpi_status ACPI_INIT_FUNCTION acpi_enable_subsystem(u32 flags) */ acpi_gbl_early_initialization = FALSE; + /* + * Obtain a permanent mapping for the FACS. This is required for the + * Global Lock and the Firmware Waking Vector + */ + if (!(flags & ACPI_NO_FACS_INIT)) { + status = acpi_tb_initialize_facs(); + if (ACPI_FAILURE(status)) { + ACPI_WARNING((AE_INFO, "Could not map the FACS table")); + return_ACPI_STATUS(status); + } + } + #if (!ACPI_REDUCED_HARDWARE) /* Enable ACPI mode */ @@ -137,18 +149,6 @@ acpi_status ACPI_INIT_FUNCTION acpi_enable_subsystem(u32 flags) } } - /* - * Obtain a permanent mapping for the FACS. This is required for the - * Global Lock and the Firmware Waking Vector - */ - if (!(flags & ACPI_NO_FACS_INIT)) { - status = acpi_tb_initialize_facs(); - if (ACPI_FAILURE(status)) { - ACPI_WARNING((AE_INFO, "Could not map the FACS table")); - return_ACPI_STATUS(status); - } - } - /* * Initialize ACPI Event handling (Fixed and General Purpose) * diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h index d768d9c568cf..2da5f4a6e814 100644 --- a/include/acpi/acconfig.h +++ b/include/acpi/acconfig.h @@ -67,7 +67,6 @@ * General Purpose Events (GPEs) * Global Lock * ACPI PM timer - * FACS table (Waking vectors and Global Lock) */ #ifndef ACPI_REDUCED_HARDWARE #define ACPI_REDUCED_HARDWARE FALSE
According to Section 5.2.10 of ACPI Specification, FACS is optional in reduced hardware model. Enable the detection for "Hardware-reduced ACPI support only" build (CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y) also. Link: https://github.com/acpica/acpica/commit/ee53ed6b5452612bb44af542b68d605f8b2b1104 Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> --- drivers/acpi/acpica/acglobal.h | 6 +----- drivers/acpi/acpica/tbutils.c | 5 +---- drivers/acpi/acpica/utxfinit.c | 24 ++++++++++++------------ include/acpi/acconfig.h | 1 - 4 files changed, 14 insertions(+), 22 deletions(-)