From d1024fdf92174cfa9b8bc9634eebb1f3db779a4a Mon Sep 17 00:00:00 2001 From: Kisang Lee Date: Tue, 29 Jan 2019 16:16:10 +0900 Subject: [PATCH] [RAMEN9610-11637][COMMON] usb: host: re-initilize runtime pm Change-Id: Ia630f71b0d1171e8dbeb73782ec0618d47a2bba4 Signed-off-by: Kisang Lee --- drivers/usb/host/xhci-plat.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) mode change 100644 => 100755 drivers/usb/host/xhci-plat.c diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c old mode 100644 new mode 100755 index 2469d9561e4b..f273284a9e65 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -254,6 +254,29 @@ int xhci_portsc_set(u32 on) return -EIO; } +static void xhci_pm_runtime_init(struct device *dev) +{ + dev->power.runtime_status = RPM_SUSPENDED; + dev->power.idle_notification = false; + + dev->power.disable_depth = 1; + atomic_set(&dev->power.usage_count, 0); + + dev->power.runtime_error = 0; + + atomic_set(&dev->power.child_count, 0); + pm_suspend_ignore_children(dev, false); + dev->power.runtime_auto = true; + + dev->power.request_pending = false; + dev->power.request = RPM_REQ_NONE; + dev->power.deferred_resume = false; + dev->power.accounting_timestamp = jiffies; + + dev->power.timer_expires = 0; + init_waitqueue_head(&dev->power.wait_queue); +} + static int xhci_plat_probe(struct platform_device *pdev) { struct device *parent = pdev->dev.parent; @@ -320,6 +343,8 @@ static int xhci_plat_probe(struct platform_device *pdev) return ret; } + xhci_pm_runtime_init(&pdev->dev); + ret = pm_runtime_set_active(&pdev->dev); if (ret != 0) { pr_err("USB can't enable runtime pm (%d)\n", ret); -- 2.20.1