2018-06-12 17:24 GMT+09:00 Hans de Goede <hdegoede@xxxxxxxxxx>: > Commit fe8abf332b8f ("usb: dwc3: support clocks and resets for DWC3 core") > adds support for handling clocks and resets in the DWC3 core, so that for > platforms following the standard devicetree bindings this does not need > to be duplicated in all the different glue layers. > > These changes intended for devicetree based platforms introduce an > uncoditional clk_bulk_get() in the core probe path. This leads to the > following error being logged on x86/ACPI systems: > > [ 26.276783] dwc3 dwc3.3.auto: Failed to get clk 'ref': -2 > > This commits wraps the clk_bulk_get() in an if (dev->of_node) check so > that it only is done on devicetree instantiated devices, fixing this > error. > > Cc: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> The Cc: can be replaced with my Reviewed-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> Thanks. > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > drivers/usb/dwc3/core.c | 23 +++++++++++++---------- > 1 file changed, 13 insertions(+), 10 deletions(-) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index ea91310113b9..103807587dc6 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -1272,7 +1272,6 @@ static int dwc3_probe(struct platform_device *pdev) > if (!dwc->clks) > return -ENOMEM; > > - dwc->num_clks = ARRAY_SIZE(dwc3_core_clks); > dwc->dev = dev; > > res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > @@ -1307,15 +1306,19 @@ static int dwc3_probe(struct platform_device *pdev) > if (IS_ERR(dwc->reset)) > return PTR_ERR(dwc->reset); > > - ret = clk_bulk_get(dev, dwc->num_clks, dwc->clks); > - if (ret == -EPROBE_DEFER) > - return ret; > - /* > - * Clocks are optional, but new DT platforms should support all clocks > - * as required by the DT-binding. > - */ > - if (ret) > - dwc->num_clks = 0; > + if (dev->of_node) { > + dwc->num_clks = ARRAY_SIZE(dwc3_core_clks); > + > + ret = clk_bulk_get(dev, dwc->num_clks, dwc->clks); > + if (ret == -EPROBE_DEFER) > + return ret; > + /* > + * Clocks are optional, but new DT platforms should support all > + * clocks as required by the DT-binding. > + */ > + if (ret) > + dwc->num_clks = 0; > + } > > ret = reset_control_deassert(dwc->reset); > if (ret) > -- > 2.17.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-usb" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Best Regards Masahiro Yamada -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html