Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 39cee200 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Felipe Balbi
Browse files

usb: musb: core: call init and shutdown for the usb phy



The phy's init routine must be called before it can be used. Do so in
musb_init_controller and the matching shutdown in musb_remove.

Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 8a0859b6
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -2136,6 +2136,10 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)

	pm_runtime_get_sync(musb->controller);

	status = usb_phy_init(musb->xceiv);
	if (status < 0)
		goto err_usb_phy_init;

	if (use_dma && dev->dma_mask) {
		musb->dma_controller =
			musb_dma_controller_create(musb, musb->mregs);
@@ -2256,7 +2260,11 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
	cancel_delayed_work_sync(&musb->deassert_reset_work);
	if (musb->dma_controller)
		musb_dma_controller_destroy(musb->dma_controller);

fail2_5:
	usb_phy_shutdown(musb->xceiv);

err_usb_phy_init:
	pm_runtime_put_sync(musb->controller);

fail2:
@@ -2317,6 +2325,8 @@ static int musb_remove(struct platform_device *pdev)
	if (musb->dma_controller)
		musb_dma_controller_destroy(musb->dma_controller);

	usb_phy_shutdown(musb->xceiv);

	cancel_work_sync(&musb->irq_work);
	cancel_delayed_work_sync(&musb->finish_resume_work);
	cancel_delayed_work_sync(&musb->deassert_reset_work);