mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 09:16:33 +00:00
More ACPI updates for 6.13-rc1
- Introduce acpi_arch_init() for architecture-specific ACPI subsystem initialization (Miao Wang). - Clean up Asus quirks in acpi_quirk_skip_dmi_ids[] and add a quirk to skip I2C clients on Acer Iconia One 8 A1-840 (Hans de Goede). - Make the ACPI processor_idle driver use acpi_idle_play_dead() for all idle states regardless of their types (Rafael Wysocki). -----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEE4fcc61cGeeHD/fCwgsRv/nhiVHEFAmdHYvESHHJqd0Byand5 c29ja2kubmV0AAoJEILEb/54YlRxtw4P/jk4bB/LvID38gKwbfmUg0z5o8k7PyaM iMUSzfiKOm4gUBEeq5qw6i29mMWRl+R0V1LxeueHu1TCev26FFLF/R1ghaUV8FtK 7pk+XHPHNOvGlPq8VoGegeeJCh9MPlWwqlfdGYyOxWJJHTXlMxnzmcj8MD5ifwZ2 1yeOy6wQ47S78s4GjAlasUQh9ObJZJnN3V0aMK+D0FGpIWyKTVyJAiq3WSO01+12 bTj7vpuTGBqDCYpj+ONl1eoxOPuPoeo+LBxTyJKeFkVHeOD4kIa7VNHM28dzl1mq n34+f1IAlX7knR1MypYLTq6N2UivygjfNwAyNIrpBG+hu6640BzUUpBwSHp2rC7i ME1dW4FekGhphuZSix3w/Ie530tkvfzYRibQwBcdyE8tu6t3ucthtDu2ZM889iaX hAG4RLiHIK5/pYPBqGfKKTjGNhhblo46A46SQJnRwhU3HeL1RqaUpZjQov6V3EEo 9FwsUck+dFRMxdSyYpHpg0gPbz7SFKuBxOqOcTdUoFs2wgRj9dj86iMph42clLNt uvGjNnnrESg1bI8kK9aYUgW1U7FXfhine4Wy3S+Rad8mgPaaOTguZwLr+ITh5usE Nwk26eR9FzIkeaxZzMiiOS2Gk69DMucBphFgvrOSZt8RtmeoqxiXyYDMjELqdJK9 W714U0aw2/pR =yL7H -----END PGP SIGNATURE----- Merge tag 'acpi-6.13-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull more ACPI updates from Rafael Wysocki: "These add a common init function for arch-specific ACPI initialization, clean up idle states initialization in the ACPI processor_idle driver and update quirks: - Introduce acpi_arch_init() for architecture-specific ACPI subsystem initialization (Miao Wang) - Clean up Asus quirks in acpi_quirk_skip_dmi_ids[] and add a quirk to skip I2C clients on Acer Iconia One 8 A1-840 (Hans de Goede) - Make the ACPI processor_idle driver use acpi_idle_play_dead() for all idle states regardless of their types (Rafael Wysocki)" * tag 'acpi-6.13-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: ACPI: introduce acpi_arch_init() ACPI: x86: Clean up Asus entries in acpi_quirk_skip_dmi_ids[] ACPI: x86: Add skip i2c clients quirk for Acer Iconia One 8 A1-840 ACPI: processor_idle: Use acpi_idle_play_dead() for all C-states
This commit is contained in:
commit
b86545e02e
@ -2,7 +2,7 @@
|
||||
#include <linux/acpi.h>
|
||||
#include "init.h"
|
||||
|
||||
void __init acpi_arm_init(void)
|
||||
void __init acpi_arch_init(void)
|
||||
{
|
||||
if (IS_ENABLED(CONFIG_ACPI_AGDI))
|
||||
acpi_agdi_init();
|
||||
|
@ -1434,6 +1434,8 @@ static int __init acpi_bus_init(void)
|
||||
struct kobject *acpi_kobj;
|
||||
EXPORT_SYMBOL_GPL(acpi_kobj);
|
||||
|
||||
void __weak __init acpi_arch_init(void) { }
|
||||
|
||||
static int __init acpi_init(void)
|
||||
{
|
||||
int result;
|
||||
@ -1461,8 +1463,7 @@ static int __init acpi_init(void)
|
||||
acpi_viot_early_init();
|
||||
acpi_hest_init();
|
||||
acpi_ghes_init();
|
||||
acpi_arm_init();
|
||||
acpi_riscv_init();
|
||||
acpi_arch_init();
|
||||
acpi_scan_init();
|
||||
acpi_ec_init();
|
||||
acpi_debugfs_init();
|
||||
|
@ -800,12 +800,12 @@ static int acpi_processor_setup_cstates(struct acpi_processor *pr)
|
||||
state->enter = acpi_idle_enter;
|
||||
|
||||
state->flags = 0;
|
||||
if (cx->type == ACPI_STATE_C1 || cx->type == ACPI_STATE_C2 ||
|
||||
cx->type == ACPI_STATE_C3) {
|
||||
state->enter_dead = acpi_idle_play_dead;
|
||||
if (cx->type != ACPI_STATE_C3)
|
||||
drv->safe_state_index = count;
|
||||
}
|
||||
|
||||
state->enter_dead = acpi_idle_play_dead;
|
||||
|
||||
if (cx->type == ACPI_STATE_C1 || cx->type == ACPI_STATE_C2)
|
||||
drv->safe_state_index = count;
|
||||
|
||||
/*
|
||||
* Halt-induced C1 is not good for ->enter_s2idle, because it
|
||||
* re-enables interrupts on exit. Moreover, C1 is generally not
|
||||
|
@ -7,7 +7,7 @@
|
||||
#include <linux/acpi.h>
|
||||
#include "init.h"
|
||||
|
||||
void __init acpi_riscv_init(void)
|
||||
void __init acpi_arch_init(void)
|
||||
{
|
||||
riscv_acpi_init_gsi_mapping();
|
||||
}
|
||||
|
@ -296,6 +296,7 @@ static const struct dmi_system_id acpi_quirk_skip_dmi_ids[] = {
|
||||
/*
|
||||
* 2. Devices which also have the skip i2c/serdev quirks and which
|
||||
* need the x86-android-tablets module to properly work.
|
||||
* Sorted alphabetically.
|
||||
*/
|
||||
#if IS_ENABLED(CONFIG_X86_ANDROID_TABLETS)
|
||||
{
|
||||
@ -309,6 +310,19 @@ static const struct dmi_system_id acpi_quirk_skip_dmi_ids[] = {
|
||||
ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS),
|
||||
},
|
||||
{
|
||||
/* Acer Iconia One 8 A1-840 (non FHD version) */
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "BayTrail"),
|
||||
/* Above strings are too generic also match BIOS date */
|
||||
DMI_MATCH(DMI_BIOS_DATE, "04/01/2014"),
|
||||
},
|
||||
.driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS |
|
||||
ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY |
|
||||
ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS),
|
||||
},
|
||||
{
|
||||
/* Asus ME176C tablet */
|
||||
.matches = {
|
||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ME176C"),
|
||||
@ -318,6 +332,16 @@ static const struct dmi_system_id acpi_quirk_skip_dmi_ids[] = {
|
||||
ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY |
|
||||
ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS),
|
||||
},
|
||||
{
|
||||
/* Asus TF103C transformer 2-in-1 */
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "TF103C"),
|
||||
},
|
||||
.driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS |
|
||||
ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY |
|
||||
ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS),
|
||||
},
|
||||
{
|
||||
/* Lenovo Yoga Book X90F/L */
|
||||
.matches = {
|
||||
@ -330,15 +354,6 @@ static const struct dmi_system_id acpi_quirk_skip_dmi_ids[] = {
|
||||
ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY |
|
||||
ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS),
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "TF103C"),
|
||||
},
|
||||
.driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS |
|
||||
ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY |
|
||||
ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS),
|
||||
},
|
||||
{
|
||||
/* Lenovo Yoga Tablet 2 1050F/L */
|
||||
.matches = {
|
||||
@ -425,6 +440,7 @@ static const struct acpi_device_id i2c_acpi_known_good_ids[] = {
|
||||
{ "10EC5640", 0 }, /* RealTek ALC5640 audio codec */
|
||||
{ "10EC5651", 0 }, /* RealTek ALC5651 audio codec */
|
||||
{ "INT33F4", 0 }, /* X-Powers AXP288 PMIC */
|
||||
{ "INT33F5", 0 }, /* TI Dollar Cove PMIC */
|
||||
{ "INT33FD", 0 }, /* Intel Crystal Cove PMIC */
|
||||
{ "INT34D3", 0 }, /* Intel Whiskey Cove PMIC */
|
||||
{ "NPCE69A", 0 }, /* Asus Transformer keyboard dock */
|
||||
|
@ -1530,17 +1530,7 @@ static inline int find_acpi_cpu_topology_hetero_id(unsigned int cpu)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARM64
|
||||
void acpi_arm_init(void);
|
||||
#else
|
||||
static inline void acpi_arm_init(void) { }
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RISCV
|
||||
void acpi_riscv_init(void);
|
||||
#else
|
||||
static inline void acpi_riscv_init(void) { }
|
||||
#endif
|
||||
void acpi_arch_init(void);
|
||||
|
||||
#ifdef CONFIG_ACPI_PCC
|
||||
void acpi_init_pcc(void);
|
||||
|
Loading…
Reference in New Issue
Block a user