diff options
-rw-r--r-- | drivers/tty/serial/8250/8250_mtk.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/drivers/tty/serial/8250/8250_mtk.c b/drivers/tty/serial/8250/8250_mtk.c index dd5e1cede2b5..c3f933d10295 100644 --- a/drivers/tty/serial/8250/8250_mtk.c +++ b/drivers/tty/serial/8250/8250_mtk.c | |||
@@ -213,17 +213,17 @@ static int mtk8250_probe(struct platform_device *pdev) | |||
213 | 213 | ||
214 | platform_set_drvdata(pdev, data); | 214 | platform_set_drvdata(pdev, data); |
215 | 215 | ||
216 | pm_runtime_enable(&pdev->dev); | 216 | err = mtk8250_runtime_resume(&pdev->dev); |
217 | if (!pm_runtime_enabled(&pdev->dev)) { | 217 | if (err) |
218 | err = mtk8250_runtime_resume(&pdev->dev); | 218 | return err; |
219 | if (err) | ||
220 | return err; | ||
221 | } | ||
222 | 219 | ||
223 | data->line = serial8250_register_8250_port(&uart); | 220 | data->line = serial8250_register_8250_port(&uart); |
224 | if (data->line < 0) | 221 | if (data->line < 0) |
225 | return data->line; | 222 | return data->line; |
226 | 223 | ||
224 | pm_runtime_set_active(&pdev->dev); | ||
225 | pm_runtime_enable(&pdev->dev); | ||
226 | |||
227 | return 0; | 227 | return 0; |
228 | } | 228 | } |
229 | 229 | ||
@@ -234,13 +234,11 @@ static int mtk8250_remove(struct platform_device *pdev) | |||
234 | pm_runtime_get_sync(&pdev->dev); | 234 | pm_runtime_get_sync(&pdev->dev); |
235 | 235 | ||
236 | serial8250_unregister_port(data->line); | 236 | serial8250_unregister_port(data->line); |
237 | mtk8250_runtime_suspend(&pdev->dev); | ||
237 | 238 | ||
238 | pm_runtime_disable(&pdev->dev); | 239 | pm_runtime_disable(&pdev->dev); |
239 | pm_runtime_put_noidle(&pdev->dev); | 240 | pm_runtime_put_noidle(&pdev->dev); |
240 | 241 | ||
241 | if (!pm_runtime_status_suspended(&pdev->dev)) | ||
242 | mtk8250_runtime_suspend(&pdev->dev); | ||
243 | |||
244 | return 0; | 242 | return 0; |
245 | } | 243 | } |
246 | 244 | ||