提交 af310e96 编写于 作者: K Kishon Vijay Abraham I 提交者: Felipe Balbi

usb: dwc3: omap: use runtime API's to enable clocks

Before accessing any register, runtime API's should be invoked to enable
the clocks. runtime API's are added here to prevent abort during register
access.
Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: NFelipe Balbi <balbi@ti.com>
上级 b4bfe6aa
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/platform_data/dwc3-omap.h> #include <linux/platform_data/dwc3-omap.h>
#include <linux/pm_runtime.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/io.h> #include <linux/io.h>
...@@ -336,6 +337,13 @@ static int dwc3_omap_probe(struct platform_device *pdev) ...@@ -336,6 +337,13 @@ static int dwc3_omap_probe(struct platform_device *pdev)
omap->irq = irq; omap->irq = irq;
omap->base = base; omap->base = base;
pm_runtime_enable(dev);
ret = pm_runtime_get_sync(dev);
if (ret < 0) {
dev_err(dev, "get_sync failed with err %d\n", ret);
return ret;
}
reg = dwc3_omap_readl(omap->base, USBOTGSS_UTMI_OTG_STATUS); reg = dwc3_omap_readl(omap->base, USBOTGSS_UTMI_OTG_STATUS);
utmi_mode = of_get_property(node, "utmi-mode", &size); utmi_mode = of_get_property(node, "utmi-mode", &size);
...@@ -416,6 +424,8 @@ static int dwc3_omap_remove(struct platform_device *pdev) ...@@ -416,6 +424,8 @@ static int dwc3_omap_remove(struct platform_device *pdev)
platform_device_unregister(omap->usb2_phy); platform_device_unregister(omap->usb2_phy);
platform_device_unregister(omap->usb3_phy); platform_device_unregister(omap->usb3_phy);
pm_runtime_put_sync(&pdev->dev);
pm_runtime_disable(&pdev->dev);
device_for_each_child(&pdev->dev, NULL, dwc3_omap_remove_core); device_for_each_child(&pdev->dev, NULL, dwc3_omap_remove_core);
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册