Re: [RFT PATCH] power: bq2415x_charger: Properly handle ENODEV from power_supply_get_by_phandle
From: Krzysztof Kozlowski
Date: Wed Oct 15 2014 - 10:10:10 EST
On Åro, 2014-10-15 at 15:58 +0200, Sebastian Reichel wrote:
> Hi,
>
> On Wed, Oct 15, 2014 at 01:11:31PM +0200, Krzysztof Kozlowski wrote:
> > > [...] I guess something as the following is needed:
> > >
> > > if (IS_ERR_OR_NULL(bq->notify_psy)) {
> > > if (bq->notify_psy)
> > > dev_err(&client->dev, "no 'ti,usb-charger-detection' property\n");
> > > ret = PTR_ERR(bq->notify_psy);
> > > goto error_2;
> > > }
> >
> > So you do not want to defer the probe? What if notified charger will
> > come online after this probe?
>
> No, but resources must be freed fore the EPROBE_DEFER case, too.
> You are right, though, that my snipped does not setup the
> EPROBE_DEFER return value correctly.
>
> > Second idea - now I think my change is not compatible with bindings
> > (documentation) and could break booting of existing boards which do not
> > provide the "ti,usb-charger-detection" property. For example
> > arch/arm/boot/dts/omap3-n900.dts
> >
> > The "ti,usb-charger-detection" property is marked as optional but my
> > patch actually makes it required.
> >
> > It should be rather like this:
> >
> > if (IS_ERR(bq->notify_psy)) {
> > bq->notify_psy = NULL;
> > dev_info(&client->dev, "no 'ti,usb-charger-detection' property \n");
> > } else if (!bq->notify_psy) {
> > ret = -EPROBE_DEFER;
> > goto error_2;
> > }
> >
> > What do you think?
>
> I thing the dev_info call should include the error code returned,
> since its not propagated further:
>
> dev_info(&client->dev, "no 'ti,usb-charger-detection' property (err=%d)\n",
> PTR_ERR(by->notify_psy));
>
> Apart from that it looks fine to me. Can you send a v2?
Sure, I'll send fixed version.
Best regards,
Krzysztof
>
> > [...]
>
> -- Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/