Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Link: https://lore.kernel.org/r/20220402114353.130775-1-jmkrzyszt@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Janusz Krzysztofik and committed by
Greg Kroah-Hartman
a85f0230 24a5d34d

+16 -2
+16 -2
drivers/usb/host/ohci-omap.c
··· 281 281 goto err_put_hcd; 282 282 } 283 283 284 + retval = clk_prepare(priv->usb_host_ck); 285 + if (retval) 286 + goto err_put_host_ck; 287 + 284 288 if (!cpu_is_omap15xx()) 285 289 priv->usb_dc_ck = clk_get(&pdev->dev, "usb_dc_ck"); 286 290 else ··· 292 288 293 289 if (IS_ERR(priv->usb_dc_ck)) { 294 290 retval = PTR_ERR(priv->usb_dc_ck); 295 - goto err_put_host_ck; 291 + goto err_unprepare_host_ck; 296 292 } 293 + 294 + retval = clk_prepare(priv->usb_dc_ck); 295 + if (retval) 296 + goto err_put_dc_ck; 297 297 298 298 if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) { 299 299 dev_dbg(&pdev->dev, "request_mem_region failed\n"); 300 300 retval = -EBUSY; 301 - goto err_put_dc_ck; 301 + goto err_unprepare_dc_ck; 302 302 } 303 303 304 304 hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len); ··· 327 319 iounmap(hcd->regs); 328 320 err2: 329 321 release_mem_region(hcd->rsrc_start, hcd->rsrc_len); 322 + err_unprepare_dc_ck: 323 + clk_unprepare(priv->usb_dc_ck); 330 324 err_put_dc_ck: 331 325 clk_put(priv->usb_dc_ck); 326 + err_unprepare_host_ck: 327 + clk_unprepare(priv->usb_host_ck); 332 328 err_put_host_ck: 333 329 clk_put(priv->usb_host_ck); 334 330 err_put_hcd: ··· 367 355 } 368 356 iounmap(hcd->regs); 369 357 release_mem_region(hcd->rsrc_start, hcd->rsrc_len); 358 + clk_unprepare(priv->usb_dc_ck); 370 359 clk_put(priv->usb_dc_ck); 360 + clk_unprepare(priv->usb_host_ck); 371 361 clk_put(priv->usb_host_ck); 372 362 usb_put_hcd(hcd); 373 363 return 0;