Merge tag 'acpi-part2-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull more ACPI updates from Rafael Wysocki: "These are mostly fixes and cleanups, a few new quirks, a couple of updates related to the handling of ACPI tables and ACPICA copyrights refreshment. Specifics: - Update the ACPICA kernel code to upstream revision 20180105 including: * Assorted fixes (Jung-uk Kim) * Support for X32 ABI compilation (Anuj Mittal) * Update of ACPICA copyrights to 2018 (Bob Moore) - Prepare for future modifications to avoid executing the _STA control method too early (Hans de Goede) - Make the processor performance control library code ignore _PPC notifications if they cannot be handled and fix up the C1 idle state definition when it is used as a fallback state (Chen Yu, Yazen Ghannam) - Make it possible to use the SPCR table on x86 and to replace the original IORT table with a new one from initrd (Prarit Bhargava, Shunyong Yang) - Add battery-related quirks for Asus UX360UA and UX410UAK and add quirks for table parsing on Dell XPS 9570 and Precision M5530 (Kai Heng Feng) - Address static checker warnings in the CPPC code (Gustavo Silva) - Avoid printing a raw pointer to the kernel log in the smart battery driver (Greg Kroah-Hartman)" * tag 'acpi-part2-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: ACPI: sbshc: remove raw pointer from printk() message ACPI: SPCR: Make SPCR available to x86 ACPI / CPPC: Use 64-bit arithmetic instead of 32-bit ACPI / tables: Add IORT to injectable table list ACPI / bus: Parse tables as term_list for Dell XPS 9570 and Precision M5530 ACPICA: Update version to 20180105 ACPICA: All acpica: Update copyrights to 2018 ACPI / processor: Set default C1 idle state description ACPI / battery: Add quirk for Asus UX360UA and UX410UAK ACPI: processor_perflib: Do not send _PPC change notification if not ready ACPI / scan: Use acpi_bus_get_status() to initialize ACPI_TYPE_DEVICE devs ACPI / bus: Do not call _STA on battery devices with unmet dependencies PCI: acpiphp_ibm: prepare for acpi_get_object_info() no longer returning status ACPI: export acpi_bus_get_status_handle() ACPICA: Add a missing pair of parentheses ACPICA: Prefer ACPI_TO_POINTER() over ACPI_ADD_PTR() ACPICA: Avoid NULL pointer arithmetic ACPICA: Linux: add support for X32 ABI compilation ACPI / video: Use true for boolean value
This commit is contained in:
@@ -66,10 +66,37 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
static int set_gbl_term_list(const struct dmi_system_id *id)
|
||||
{
|
||||
acpi_gbl_parse_table_as_term_list = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
|
||||
static const struct dmi_system_id acpi_quirks_dmi_table[] __initconst = {
|
||||
/*
|
||||
* Touchpad on Dell XPS 9570/Precision M5530 doesn't work under I2C
|
||||
* mode.
|
||||
* https://bugzilla.kernel.org/show_bug.cgi?id=198515
|
||||
*/
|
||||
{
|
||||
.callback = set_gbl_term_list,
|
||||
.ident = "Dell Precision M5530",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Precision M5530"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.callback = set_gbl_term_list,
|
||||
.ident = "Dell XPS 15 9570",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "XPS 15 9570"),
|
||||
},
|
||||
},
|
||||
/*
|
||||
* Invoke DSDT corruption work-around on all Toshiba Satellite.
|
||||
* DSDT will be copied to memory.
|
||||
* https://bugzilla.kernel.org/show_bug.cgi?id=14679
|
||||
*/
|
||||
{
|
||||
@@ -83,7 +110,7 @@ static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
|
||||
{}
|
||||
};
|
||||
#else
|
||||
static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
|
||||
static const struct dmi_system_id acpi_quirks_dmi_table[] __initconst = {
|
||||
{}
|
||||
};
|
||||
#endif
|
||||
@@ -108,6 +135,7 @@ acpi_status acpi_bus_get_status_handle(acpi_handle handle,
|
||||
}
|
||||
return status;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(acpi_bus_get_status_handle);
|
||||
|
||||
int acpi_bus_get_status(struct acpi_device *device)
|
||||
{
|
||||
@@ -119,6 +147,12 @@ int acpi_bus_get_status(struct acpi_device *device)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Battery devices must have their deps met before calling _STA */
|
||||
if (acpi_device_is_battery(device) && device->dep_unmet) {
|
||||
acpi_set_device_status(device, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
status = acpi_bus_get_status_handle(device->handle, &sta);
|
||||
if (ACPI_FAILURE(status))
|
||||
return -ENODEV;
|
||||
@@ -1019,11 +1053,8 @@ void __init acpi_early_init(void)
|
||||
|
||||
acpi_permanent_mmap = true;
|
||||
|
||||
/*
|
||||
* If the machine falls into the DMI check table,
|
||||
* DSDT will be copied to memory
|
||||
*/
|
||||
dmi_check_system(dsdt_dmi_table);
|
||||
/* Check machine-specific quirks */
|
||||
dmi_check_system(acpi_quirks_dmi_table);
|
||||
|
||||
status = acpi_reallocate_root_table();
|
||||
if (ACPI_FAILURE(status)) {
|
||||
|
Reference in New Issue
Block a user