Loading drivers/mfd/omap-usb-host.c +28 −5 Original line number Diff line number Diff line Loading @@ -91,6 +91,8 @@ struct usbhs_hcd_omap { int nports; struct clk *xclk60mhsp1_ck; struct clk *xclk60mhsp2_ck; struct clk *utmi_p1_fck; Loading Loading @@ -347,8 +349,6 @@ static void omap_usbhs_init(struct device *dev) pm_runtime_get_sync(dev); spin_lock_irqsave(&omap->lock, flags); omap->usbhs_rev = usbhs_read(omap->uhh_base, OMAP_UHH_REVISION); dev_dbg(dev, "OMAP UHH_REVISION 0x%x\n", omap->usbhs_rev); reg = usbhs_read(omap->uhh_base, OMAP_UHH_HOSTCONFIG); /* setup ULPI bypass and burst configurations */ Loading Loading @@ -483,7 +483,32 @@ static int usbhs_omap_probe(struct platform_device *pdev) pm_runtime_enable(dev); for (i = 0; i < OMAP3_HS_USB_PORTS; i++) platform_set_drvdata(pdev, omap); pm_runtime_get_sync(dev); omap->usbhs_rev = usbhs_read(omap->uhh_base, OMAP_UHH_REVISION); /* we need to call runtime suspend before we update omap->nports * to prevent unbalanced clk_disable() */ pm_runtime_put_sync(dev); switch (omap->usbhs_rev) { case OMAP_USBHS_REV1: omap->nports = 3; break; case OMAP_USBHS_REV2: omap->nports = 2; break; default: omap->nports = OMAP3_HS_USB_PORTS; dev_dbg(dev, "USB HOST Rev : 0x%d not recognized, assuming %d ports\n", omap->usbhs_rev, omap->nports); break; } for (i = 0; i < omap->nports; i++) if (is_ehci_phy_mode(i) || is_ehci_tll_mode(i) || is_ehci_hsic_mode(i)) { omap->ehci_logic_fck = clk_get(dev, "ehci_logic_fck"); Loading Loading @@ -573,8 +598,6 @@ static int usbhs_omap_probe(struct platform_device *pdev) "failed error:%d\n", ret); } platform_set_drvdata(pdev, omap); omap_usbhs_init(dev); ret = omap_usbhs_alloc_children(pdev); if (ret) { Loading Loading
drivers/mfd/omap-usb-host.c +28 −5 Original line number Diff line number Diff line Loading @@ -91,6 +91,8 @@ struct usbhs_hcd_omap { int nports; struct clk *xclk60mhsp1_ck; struct clk *xclk60mhsp2_ck; struct clk *utmi_p1_fck; Loading Loading @@ -347,8 +349,6 @@ static void omap_usbhs_init(struct device *dev) pm_runtime_get_sync(dev); spin_lock_irqsave(&omap->lock, flags); omap->usbhs_rev = usbhs_read(omap->uhh_base, OMAP_UHH_REVISION); dev_dbg(dev, "OMAP UHH_REVISION 0x%x\n", omap->usbhs_rev); reg = usbhs_read(omap->uhh_base, OMAP_UHH_HOSTCONFIG); /* setup ULPI bypass and burst configurations */ Loading Loading @@ -483,7 +483,32 @@ static int usbhs_omap_probe(struct platform_device *pdev) pm_runtime_enable(dev); for (i = 0; i < OMAP3_HS_USB_PORTS; i++) platform_set_drvdata(pdev, omap); pm_runtime_get_sync(dev); omap->usbhs_rev = usbhs_read(omap->uhh_base, OMAP_UHH_REVISION); /* we need to call runtime suspend before we update omap->nports * to prevent unbalanced clk_disable() */ pm_runtime_put_sync(dev); switch (omap->usbhs_rev) { case OMAP_USBHS_REV1: omap->nports = 3; break; case OMAP_USBHS_REV2: omap->nports = 2; break; default: omap->nports = OMAP3_HS_USB_PORTS; dev_dbg(dev, "USB HOST Rev : 0x%d not recognized, assuming %d ports\n", omap->usbhs_rev, omap->nports); break; } for (i = 0; i < omap->nports; i++) if (is_ehci_phy_mode(i) || is_ehci_tll_mode(i) || is_ehci_hsic_mode(i)) { omap->ehci_logic_fck = clk_get(dev, "ehci_logic_fck"); Loading Loading @@ -573,8 +598,6 @@ static int usbhs_omap_probe(struct platform_device *pdev) "failed error:%d\n", ret); } platform_set_drvdata(pdev, omap); omap_usbhs_init(dev); ret = omap_usbhs_alloc_children(pdev); if (ret) { Loading