[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <545B2273.2010709@ti.com>
Date: Thu, 6 Nov 2014 12:55:39 +0530
From: Kishon Vijay Abraham I <kishon@...com>
To: Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
"balbi@...com" <balbi@...com>
CC: Vivek Gautam <gautam.vivek@...sung.com>,
<linux-kernel@...r.kernel.org>, <linux-usb@...r.kernel.org>,
<andrew.kim@...el.com>
Subject: Re: [PATCHv4 6/6] usb: dwc3: host: convey the PHYs to xhci
Hi Felipe,
On Friday 17 October 2014 08:09 PM, Heikki Krogerus wrote:
> On some platforms a PHY may need to be handled also in the
> host controller driver. Exynos5420 SoC requires some "PHY
> tuning" based on the USB speed. This patch delivers dwc3's
> PHYs to the xhci platform device when it's created.
>
> Signed-off-by: Heikki Krogerus <heikki.krogerus@...ux.intel.com>
> Tested-by: Vivek Gautam <gautam.vivek@...sung.com>
> Acked-by: Felipe Balbi <balbi@...com>
Already see you acked-by, so I'm queueing this in my linux-phy tree.
Thanks
Kishon
> ---
> drivers/usb/dwc3/host.c | 22 ++++++++++++++++------
> 1 file changed, 16 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c
> index dcb8ca0..12bfd3c 100644
> --- a/drivers/usb/dwc3/host.c
> +++ b/drivers/usb/dwc3/host.c
> @@ -29,8 +29,7 @@ int dwc3_host_init(struct dwc3 *dwc)
> xhci = platform_device_alloc("xhci-hcd", PLATFORM_DEVID_AUTO);
> if (!xhci) {
> dev_err(dwc->dev, "couldn't allocate xHCI device\n");
> - ret = -ENOMEM;
> - goto err0;
> + return -ENOMEM;
> }
>
> dma_set_coherent_mask(&xhci->dev, dwc->dev->coherent_dma_mask);
> @@ -60,22 +59,33 @@ int dwc3_host_init(struct dwc3 *dwc)
> goto err1;
> }
>
> + phy_create_lookup(dwc->usb2_generic_phy, "usb2-phy",
> + dev_name(&xhci->dev));
> + phy_create_lookup(dwc->usb3_generic_phy, "usb3-phy",
> + dev_name(&xhci->dev));
> +
> ret = platform_device_add(xhci);
> if (ret) {
> dev_err(dwc->dev, "failed to register xHCI device\n");
> - goto err1;
> + goto err2;
> }
>
> return 0;
> -
> +err2:
> + phy_remove_lookup(dwc->usb2_generic_phy, "usb2-phy",
> + dev_name(&xhci->dev));
> + phy_remove_lookup(dwc->usb3_generic_phy, "usb3-phy",
> + dev_name(&xhci->dev));
> err1:
> platform_device_put(xhci);
> -
> -err0:
> return ret;
> }
>
> void dwc3_host_exit(struct dwc3 *dwc)
> {
> + phy_remove_lookup(dwc->usb2_generic_phy, "usb2-phy",
> + dev_name(&dwc->xhci->dev));
> + phy_remove_lookup(dwc->usb3_generic_phy, "usb3-phy",
> + dev_name(&dwc->xhci->dev));
> platform_device_unregister(dwc->xhci);
> }
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists