[ARM] 4088/1: AT91: Unbalanced IRQ in serial driver suspend/resume
This patch fixes the unbalanced calls to enable_irq_wake() and disable_irq_wake() in the AT91 (and AVR32) serial driver. It should resolve these kernel messages: Unbalanced IRQ x wake disable BUG: warning at kernel/irq/manage.c:167/set_irq_wake() Original patch from Marc Pignat. Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
e9d10a16ea
commit
9b93816690
|
@ -890,7 +890,6 @@ static int atmel_serial_suspend(struct platform_device *pdev, pm_message_t state
|
||||||
if (device_may_wakeup(&pdev->dev) && !at91_suspend_entering_slow_clock())
|
if (device_may_wakeup(&pdev->dev) && !at91_suspend_entering_slow_clock())
|
||||||
enable_irq_wake(port->irq);
|
enable_irq_wake(port->irq);
|
||||||
else {
|
else {
|
||||||
disable_irq_wake(port->irq);
|
|
||||||
uart_suspend_port(&atmel_uart, port);
|
uart_suspend_port(&atmel_uart, port);
|
||||||
atmel_port->suspended = 1;
|
atmel_port->suspended = 1;
|
||||||
}
|
}
|
||||||
|
@ -907,6 +906,8 @@ static int atmel_serial_resume(struct platform_device *pdev)
|
||||||
uart_resume_port(&atmel_uart, port);
|
uart_resume_port(&atmel_uart, port);
|
||||||
atmel_port->suspended = 0;
|
atmel_port->suspended = 0;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
disable_irq_wake(port->irq);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue