lkml.org 
[lkml]   [2014]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 1/6] usb: dwc3: core: support optional PHYs
    Date
    Since PHYs for dwc3 is optional (not all SoCs having PHYs for DWC3
    should be programmed), do not return from probe if the USB PHY library
    returns -ENODEV as that indicates the platform does not have a
    programmable PHY.

    While this can be considered as a temporary fix, a long term solution
    would be to add 'nop' PHY for platforms that does not have programmable
    PHY.

    Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
    Reviewed-by: Roger Quadros <rogerq@ti.com>
    ---
    drivers/usb/dwc3/core.c | 34 ++++++++++++++--------------------
    1 file changed, 14 insertions(+), 20 deletions(-)

    diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
    index 7d0cb34..225a4d6 100644
    --- a/drivers/usb/dwc3/core.c
    +++ b/drivers/usb/dwc3/core.c
    @@ -529,32 +529,26 @@ static int dwc3_probe(struct platform_device *pdev)

    if (IS_ERR(dwc->usb2_phy)) {
    ret = PTR_ERR(dwc->usb2_phy);
    -
    - /*
    - * if -ENXIO is returned, it means PHY layer wasn't
    - * enabled, so it makes no sense to return -EPROBE_DEFER
    - * in that case, since no PHY driver will ever probe.
    - */
    - if (ret == -ENXIO)
    + if (ret == -ENXIO || ret == -ENODEV) {
    + dwc->usb2_phy = NULL;
    + } else if (ret == -EPROBE_DEFER) {
    return ret;
    -
    - dev_err(dev, "no usb2 phy configured\n");
    - return -EPROBE_DEFER;
    + } else {
    + dev_err(dev, "no usb2 phy configured\n");
    + return ret;
    + }
    }

    if (IS_ERR(dwc->usb3_phy)) {
    ret = PTR_ERR(dwc->usb3_phy);
    -
    - /*
    - * if -ENXIO is returned, it means PHY layer wasn't
    - * enabled, so it makes no sense to return -EPROBE_DEFER
    - * in that case, since no PHY driver will ever probe.
    - */
    - if (ret == -ENXIO)
    + if (ret == -ENXIO || ret == -ENODEV) {
    + dwc->usb3_phy = NULL;
    + } else if (ret == -EPROBE_DEFER) {
    return ret;
    -
    - dev_err(dev, "no usb3 phy configured\n");
    - return -EPROBE_DEFER;
    + } else {
    + dev_err(dev, "no usb3 phy configured\n");
    + return ret;
    + }
    }

    dwc->xhci_resources[0].start = res->start;
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2014-03-03 13:21    [W:4.426 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site