Re: [RFT PATCH] power: bq2415x_charger: Properly handle ENODEV from power_supply_get_by_phandle

From: Sebastian Reichel
Date: Wed Oct 15 2014 - 09:58:17 EST


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?

> [...]

-- Sebastian

Attachment: signature.asc
Description: Digital signature