diff options
Diffstat (limited to 'drivers/acpi/ec.c')
-rw-r--r-- | drivers/acpi/ec.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index d6471bb6852f..0fa65a8210da 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
@@ -307,7 +307,7 @@ static int acpi_ec_transaction(struct acpi_ec *ec, struct transaction *t) | |||
307 | pr_debug(PREFIX "transaction start\n"); | 307 | pr_debug(PREFIX "transaction start\n"); |
308 | /* disable GPE during transaction if storm is detected */ | 308 | /* disable GPE during transaction if storm is detected */ |
309 | if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) { | 309 | if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) { |
310 | acpi_disable_gpe(NULL, ec->gpe); | 310 | acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_DISABLE); |
311 | } | 311 | } |
312 | 312 | ||
313 | status = acpi_ec_transaction_unlocked(ec, t); | 313 | status = acpi_ec_transaction_unlocked(ec, t); |
@@ -317,7 +317,7 @@ static int acpi_ec_transaction(struct acpi_ec *ec, struct transaction *t) | |||
317 | if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) { | 317 | if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) { |
318 | msleep(1); | 318 | msleep(1); |
319 | /* it is safe to enable GPE outside of transaction */ | 319 | /* it is safe to enable GPE outside of transaction */ |
320 | acpi_enable_gpe(NULL, ec->gpe); | 320 | acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_ENABLE); |
321 | } else if (t->irq_count > ACPI_EC_STORM_THRESHOLD) { | 321 | } else if (t->irq_count > ACPI_EC_STORM_THRESHOLD) { |
322 | pr_info(PREFIX "GPE storm detected, " | 322 | pr_info(PREFIX "GPE storm detected, " |
323 | "transactions will use polling mode\n"); | 323 | "transactions will use polling mode\n"); |
@@ -788,8 +788,8 @@ static int ec_install_handlers(struct acpi_ec *ec) | |||
788 | &acpi_ec_gpe_handler, ec); | 788 | &acpi_ec_gpe_handler, ec); |
789 | if (ACPI_FAILURE(status)) | 789 | if (ACPI_FAILURE(status)) |
790 | return -ENODEV; | 790 | return -ENODEV; |
791 | acpi_set_gpe_type(NULL, ec->gpe, ACPI_GPE_TYPE_RUNTIME); | 791 | |
792 | acpi_enable_gpe(NULL, ec->gpe); | 792 | acpi_enable_gpe(NULL, ec->gpe, ACPI_GPE_TYPE_RUNTIME); |
793 | status = acpi_install_address_space_handler(ec->handle, | 793 | status = acpi_install_address_space_handler(ec->handle, |
794 | ACPI_ADR_SPACE_EC, | 794 | ACPI_ADR_SPACE_EC, |
795 | &acpi_ec_space_handler, | 795 | &acpi_ec_space_handler, |
@@ -806,6 +806,7 @@ static int ec_install_handlers(struct acpi_ec *ec) | |||
806 | } else { | 806 | } else { |
807 | acpi_remove_gpe_handler(NULL, ec->gpe, | 807 | acpi_remove_gpe_handler(NULL, ec->gpe, |
808 | &acpi_ec_gpe_handler); | 808 | &acpi_ec_gpe_handler); |
809 | acpi_disable_gpe(NULL, ec->gpe, ACPI_GPE_TYPE_RUNTIME); | ||
809 | return -ENODEV; | 810 | return -ENODEV; |
810 | } | 811 | } |
811 | } | 812 | } |
@@ -816,6 +817,7 @@ static int ec_install_handlers(struct acpi_ec *ec) | |||
816 | 817 | ||
817 | static void ec_remove_handlers(struct acpi_ec *ec) | 818 | static void ec_remove_handlers(struct acpi_ec *ec) |
818 | { | 819 | { |
820 | acpi_disable_gpe(NULL, ec->gpe, ACPI_GPE_TYPE_RUNTIME); | ||
819 | if (ACPI_FAILURE(acpi_remove_address_space_handler(ec->handle, | 821 | if (ACPI_FAILURE(acpi_remove_address_space_handler(ec->handle, |
820 | ACPI_ADR_SPACE_EC, &acpi_ec_space_handler))) | 822 | ACPI_ADR_SPACE_EC, &acpi_ec_space_handler))) |
821 | pr_err(PREFIX "failed to remove space handler\n"); | 823 | pr_err(PREFIX "failed to remove space handler\n"); |
@@ -1058,7 +1060,7 @@ static int acpi_ec_suspend(struct acpi_device *device, pm_message_t state) | |||
1058 | { | 1060 | { |
1059 | struct acpi_ec *ec = acpi_driver_data(device); | 1061 | struct acpi_ec *ec = acpi_driver_data(device); |
1060 | /* Stop using GPE */ | 1062 | /* Stop using GPE */ |
1061 | acpi_disable_gpe(NULL, ec->gpe); | 1063 | acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_DISABLE); |
1062 | return 0; | 1064 | return 0; |
1063 | } | 1065 | } |
1064 | 1066 | ||
@@ -1066,7 +1068,7 @@ static int acpi_ec_resume(struct acpi_device *device) | |||
1066 | { | 1068 | { |
1067 | struct acpi_ec *ec = acpi_driver_data(device); | 1069 | struct acpi_ec *ec = acpi_driver_data(device); |
1068 | /* Enable use of GPE back */ | 1070 | /* Enable use of GPE back */ |
1069 | acpi_enable_gpe(NULL, ec->gpe); | 1071 | acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_ENABLE); |
1070 | return 0; | 1072 | return 0; |
1071 | } | 1073 | } |
1072 | 1074 | ||