From 1f13443ffdbe7200e2cff96884540aa56a5d7678 Mon Sep 17 00:00:00 2001 From: Feng Tang Date: Tue, 23 Oct 2012 01:30:12 +0200 Subject: [PATCH] --- yaml --- r: 336665 b: refs/heads/master c: a3cd8d2789c2e265e09377f260e7d2ac9cec81bb h: refs/heads/master i: 336663: fb6382971ef530909e735b4e103f37aad19ec8ea v: v3 --- [refs] | 2 +- trunk/drivers/acpi/ec.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index fc572b567d91..6570e3bc5b92 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b76b51ba0cef13980813373a548a12206e3cd3c9 +refs/heads/master: a3cd8d2789c2e265e09377f260e7d2ac9cec81bb diff --git a/trunk/drivers/acpi/ec.c b/trunk/drivers/acpi/ec.c index 8f8b644bba8d..354007d490d1 100644 --- a/trunk/drivers/acpi/ec.c +++ b/trunk/drivers/acpi/ec.c @@ -198,9 +198,13 @@ static void advance_transaction(struct acpi_ec *ec, u8 status) t->done = true; goto unlock; err: - /* false interrupt, state didn't change */ - if (in_interrupt()) + /* + * If SCI bit is set, then don't think it's a false IRQ + * otherwise will take a not handled IRQ as a false one. + */ + if (in_interrupt() && !(status & ACPI_EC_FLAG_SCI)) ++t->irq_count; + unlock: spin_unlock_irqrestore(&ec->lock, flags); }