Commit a85f0230 authored by Janusz Krzysztofik's avatar Janusz Krzysztofik Committed by Greg Kroah-Hartman

usb: host: ohci-omap: Make it CCF clk API compatible

The driver, OMAP1 specific, now omits clk_prepare/unprepare() steps, not
supported by OMAP1 custom implementation of clock API.  However, non-CCF
stubs of those functions exist for use on such platforms until converted
to CCF.

Update the driver to be compatible with CCF implementation of clock API.
Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarJanusz Krzysztofik <jmkrzyszt@gmail.com>
Link: https://lore.kernel.org/r/20220402114353.130775-1-jmkrzyszt@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 24a5d34d
...@@ -281,6 +281,10 @@ static int ohci_hcd_omap_probe(struct platform_device *pdev) ...@@ -281,6 +281,10 @@ static int ohci_hcd_omap_probe(struct platform_device *pdev)
goto err_put_hcd; goto err_put_hcd;
} }
retval = clk_prepare(priv->usb_host_ck);
if (retval)
goto err_put_host_ck;
if (!cpu_is_omap15xx()) if (!cpu_is_omap15xx())
priv->usb_dc_ck = clk_get(&pdev->dev, "usb_dc_ck"); priv->usb_dc_ck = clk_get(&pdev->dev, "usb_dc_ck");
else else
...@@ -288,13 +292,17 @@ static int ohci_hcd_omap_probe(struct platform_device *pdev) ...@@ -288,13 +292,17 @@ static int ohci_hcd_omap_probe(struct platform_device *pdev)
if (IS_ERR(priv->usb_dc_ck)) { if (IS_ERR(priv->usb_dc_ck)) {
retval = PTR_ERR(priv->usb_dc_ck); retval = PTR_ERR(priv->usb_dc_ck);
goto err_put_host_ck; goto err_unprepare_host_ck;
} }
retval = clk_prepare(priv->usb_dc_ck);
if (retval)
goto err_put_dc_ck;
if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) { if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) {
dev_dbg(&pdev->dev, "request_mem_region failed\n"); dev_dbg(&pdev->dev, "request_mem_region failed\n");
retval = -EBUSY; retval = -EBUSY;
goto err_put_dc_ck; goto err_unprepare_dc_ck;
} }
hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len); hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
...@@ -319,8 +327,12 @@ static int ohci_hcd_omap_probe(struct platform_device *pdev) ...@@ -319,8 +327,12 @@ static int ohci_hcd_omap_probe(struct platform_device *pdev)
iounmap(hcd->regs); iounmap(hcd->regs);
err2: err2:
release_mem_region(hcd->rsrc_start, hcd->rsrc_len); release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
err_unprepare_dc_ck:
clk_unprepare(priv->usb_dc_ck);
err_put_dc_ck: err_put_dc_ck:
clk_put(priv->usb_dc_ck); clk_put(priv->usb_dc_ck);
err_unprepare_host_ck:
clk_unprepare(priv->usb_host_ck);
err_put_host_ck: err_put_host_ck:
clk_put(priv->usb_host_ck); clk_put(priv->usb_host_ck);
err_put_hcd: err_put_hcd:
...@@ -355,7 +367,9 @@ static int ohci_hcd_omap_remove(struct platform_device *pdev) ...@@ -355,7 +367,9 @@ static int ohci_hcd_omap_remove(struct platform_device *pdev)
} }
iounmap(hcd->regs); iounmap(hcd->regs);
release_mem_region(hcd->rsrc_start, hcd->rsrc_len); release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
clk_unprepare(priv->usb_dc_ck);
clk_put(priv->usb_dc_ck); clk_put(priv->usb_dc_ck);
clk_unprepare(priv->usb_host_ck);
clk_put(priv->usb_host_ck); clk_put(priv->usb_host_ck);
usb_put_hcd(hcd); usb_put_hcd(hcd);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment