mirror of https://gitee.com/openkylin/linux.git
ACPI: EC: make kernel messages more useful when GPE storm is detected
Make sure we can tell if the GPE storm workaround gets activated, and avoid flooding the logs afterwards. http://bugzilla.kernel.org/show_bug.cgi?id=11841 "plenty of line "ACPI: EC: non-query interrupt received, switching to interrupt mode" in dmesg" Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk> Acked-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
1cfe62c801
commit
f8248434e6
|
@ -286,7 +286,8 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec,
|
|||
acpi_enable_gpe(NULL, ec->gpe, ACPI_NOT_ISR);
|
||||
} else if (test_bit(EC_FLAGS_GPE_MODE, &ec->flags) &&
|
||||
t->irq_count > ACPI_EC_STORM_THRESHOLD) {
|
||||
pr_debug(PREFIX "GPE storm detected\n");
|
||||
pr_info(PREFIX "GPE storm detected, "
|
||||
"transactions will use polling mode\n");
|
||||
set_bit(EC_FLAGS_GPE_STORM, &ec->flags);
|
||||
}
|
||||
return ret;
|
||||
|
@ -566,9 +567,15 @@ static u32 acpi_ec_gpe_handler(void *data)
|
|||
if (!test_bit(EC_FLAGS_GPE_MODE, &ec->flags) &&
|
||||
!test_bit(EC_FLAGS_NO_GPE, &ec->flags)) {
|
||||
/* this is non-query, must be confirmation */
|
||||
if (!test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) {
|
||||
if (printk_ratelimit())
|
||||
pr_info(PREFIX "non-query interrupt received,"
|
||||
" switching to interrupt mode\n");
|
||||
} else {
|
||||
/* hush, STORM switches the mode every transaction */
|
||||
pr_debug(PREFIX "non-query interrupt received,"
|
||||
" switching to interrupt mode\n");
|
||||
}
|
||||
set_bit(EC_FLAGS_GPE_MODE, &ec->flags);
|
||||
}
|
||||
return ACPI_INTERRUPT_HANDLED;
|
||||
|
|
Loading…
Reference in New Issue