提交 9b938166 编写于 作者: A Andrew Victor 提交者: Russell King

[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: NAndrew Victor <andrew@sanpeople.com>
Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
上级 e9d10a16
...@@ -890,7 +890,6 @@ static int atmel_serial_suspend(struct platform_device *pdev, pm_message_t state ...@@ -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) ...@@ -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;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册