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,
@@ -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 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!
© 2016 - 2026 Red Hat, Inc.