Re: [PATCH v2 1/2] ACPICA: Detect FACS in reduced hardware build

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

 



On 2024-08-20 22:55, Rafael J. Wysocki wrote:
> On Mon, Aug 12, 2024 at 7:47 AM Jiaqing Zhao
> <jiaqing.zhao@xxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxx>
>> ---
>>  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
>>
>>




[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