[V5 PATCH 26/26] usb: ehci: ehci-mv: add device tree support

Mark Rutland mark.rutland at arm.com
Fri Jan 25 04:55:29 EST 2013


[...]

> >> @@ -170,19 +202,36 @@ static int mv_ehci_probe(struct platform_device *pdev)
> >>       }
> >>
> >>       platform_set_drvdata(pdev, ehci_mv);
> >> -     ehci_mv->pdata = pdata;
> >>       ehci_mv->hcd = hcd;
> >>
> >> -     ehci_mv->clknum = pdata->clknum;
> >> -     for (clk_i = 0; clk_i < ehci_mv->clknum; clk_i++) {
> >> -             ehci_mv->clk[clk_i] =
> >> -                 devm_clk_get(&pdev->dev, pdata->clkname[clk_i]);
> >> -             if (IS_ERR(ehci_mv->clk[clk_i])) {
> >> -                     dev_err(&pdev->dev, "error get clck \"%s\"\n",
> >> -                             pdata->clkname[clk_i]);
> >> -                     retval = PTR_ERR(ehci_mv->clk[clk_i]);
> >> -                     goto err_clear_drvdata;
> >> +     retval = mv_ehci_parse_dt(pdev, ehci_mv);
> >> +     if (retval > 0) {
> >
> > Is this why you returned 1 from mv_ehci_parse_dt? So you only do this if you
> > don't have a dt node?
> >
> > If so, why not rip the check (and positive error code) out of mv_ehci_parse_dt,
> > and then here:
> >
> > if (pdev->dev.of_node) {
> >         retval = mv_ehci_parse_dt(pdev, ehci_mv);
> > } else
> >         fall back to mv_usb_platform_data ...
> > }
> >
> > That makes it obvious that one side depends on dt and the other's a fallback,
> > and doesn't rely on nonstandard return code behaviour.
> >
> 
> I will change it.
> 
> > Also, why not return immediately if mv_ehci_parse_dt fails?
> >
> I do not understand. if mv_ehci_parse_dt returns negative value, the
> probe will be finished immediately.

Yes, you're right. I got myself confused about the logic.

Thanks,
Mark.





More information about the linux-arm-kernel mailing list