Re: [PATCH 4/4] ACPI: EC: Don't count a SCI interrupt as a false one

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday, October 30, 2012 09:52:41 AM Feng Tang wrote:
> Currently when advance_transaction() is called in EC interrupt handler,
> if there is nothing driver can do with the interrupt, it will be taken
> as a false one.
> 
> But this is not always true, as there may be a SCI EC interrupt fired
> during normal read/write operation, which should not be counted as a
> false one. This patch fixes the problem.
> 
> Signed-off-by: Feng Tang <feng.tang@xxxxxxxxx>

Applied to the linux-next branch of the linux-pm.git tree as v3.8 material.

Thanks,
Rafael



> ---
>  drivers/acpi/ec.c |    8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> index f272880..6bdea02 100644
> --- a/drivers/acpi/ec.c
> +++ b/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);
>  }
> 
-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux