| From 18d65f7261e35c5085249ff0c24af8a66c6bdc6f Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Mon, 10 Apr 2017 11:21:39 +0200 |
| Subject: [PATCH] serial: omap: suspend device on probe errors |
| |
| commit 77e6fe7fd2b7cba0bf2f2dc8cde51d7b9a35bf74 upstream. |
| |
| Make sure to actually suspend the device before returning after a failed |
| (or deferred) probe. |
| |
| Note that autosuspend must be disabled before runtime pm is disabled in |
| order to balance the usage count due to a negative autosuspend delay as |
| well as to make the final put suspend the device synchronously. |
| |
| Fixes: 388bc2622680 ("omap-serial: Fix the error handling in the omap_serial probe") |
| Cc: Shubhrajyoti D <shubhrajyoti@ti.com> |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Acked-by: Tony Lindgren <tony@atomide.com> |
| Cc: stable <stable@vger.kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c |
| index d31f8af3aacf..44e5b5bf713b 100644 |
| --- a/drivers/tty/serial/omap-serial.c |
| +++ b/drivers/tty/serial/omap-serial.c |
| @@ -1712,7 +1712,8 @@ static int serial_omap_probe(struct platform_device *pdev) |
| return 0; |
| |
| err_add_port: |
| - pm_runtime_put(&pdev->dev); |
| + pm_runtime_dont_use_autosuspend(&pdev->dev); |
| + pm_runtime_put_sync(&pdev->dev); |
| pm_runtime_disable(&pdev->dev); |
| pm_qos_remove_request(&up->pm_qos_request); |
| device_init_wakeup(up->dev, false); |
| -- |
| 2.12.0 |
| |