1 From: Alexey Starikovskiy <astarikovskiy@suse.de>
2 Subject: ACPI: EC: Don't degrade to poll mode at storm automatically.
6 Signed-off-by: Thomas Renninger <trenn@suse.de>
8 Not all users of semi-broken EC devices want to degrade to poll mode, so
9 give them right to choose.
11 Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
14 Documentation/kernel-parameters.txt | 5 +++++
15 drivers/acpi/ec.c | 15 +++++++++++++++
16 2 files changed, 20 insertions(+)
19 --- a/Documentation/kernel-parameters.txt
20 +++ b/Documentation/kernel-parameters.txt
21 @@ -706,6 +706,11 @@ and is between 256 and 4096 characters.
25 + ec_intr= [HW,ACPI] ACPI Embedded Controller interrupt mode
28 + non-0: interrupt mode (default)
31 Format: {"off" | "on" | "skip[mbr]"}
33 --- a/drivers/acpi/ec.c
34 +++ b/drivers/acpi/ec.c
35 @@ -121,6 +121,8 @@ static struct acpi_ec {
37 } *boot_ec, *first_ec;
39 +int acpi_ec_intr = 1; /* Default is interrupt mode */
42 * Some Asus system have exchanged ECDT data/command IO addresses.
44 @@ -902,6 +904,8 @@ static int ec_install_handlers(struct ac
45 &acpi_ec_gpe_handler, ec);
46 if (ACPI_FAILURE(status))
49 + set_bit(EC_FLAGS_NO_GPE, &ec->flags);
50 acpi_set_gpe_type(NULL, ec->gpe, ACPI_GPE_TYPE_RUNTIME);
51 acpi_enable_gpe(NULL, ec->gpe, ACPI_NOT_ISR);
52 status = acpi_install_address_space_handler(ec->handle,
53 @@ -1095,3 +1099,14 @@ static void __exit acpi_ec_exit(void)
58 +static int __init acpi_ec_set_intr_mode(char *str)
60 + if (!get_option(&str, &acpi_ec_intr)) {
67 +__setup("ec_intr=", acpi_ec_set_intr_mode);