Re: [PATCH v5 6/7] pwm: lpss: Add devm_pwm_lpss_probe() stub

From: Andy Shevchenko
Date: Tue Nov 22 2022 - 12:41:00 EST


On Tue, Nov 22, 2022 at 05:47:03PM +0100, Uwe Kleine-König wrote:
> On Thu, Nov 17, 2022 at 01:08:05PM +0200, Andy Shevchenko wrote:
> > In case the PWM LPSS module is not provided, allow users to be
> > compiled with the help of the devm_pwm_lpss_probe() stub.

...

> > +static inline
> > +struct pwm_lpss_chip *devm_pwm_lpss_probe(struct device *dev, void __iomem *base,
> > + const struct pwm_lpss_boardinfo *info)
> > +{
> > + return ERR_PTR(-ENODEV);
> > +}
> > +#endif /* CONFIG_PWM_LPSS */
>
> Hmm, this is actually never used, because if
> !IS_REACHABLE(CONFIG_PWM_LPSS), the only caller (that is added in patch
> 7) has:
>
> if (!IS_REACHABLE(CONFIG_PWM_LPSS))
> return 0;
>
> before devm_pwm_lpss_probe() is called.
>
> Not sure if it's safe to just drop this patch.

How is it supposed to be compiled and linked then?

> The return value is
> neither -ENOSYS (which I would expect for a stub function like that)

This is not a generic library registration / addition of the device.
I don't see how ENOSYS and esp. EINVAL fits here.

> nor
> -EINVAL (which for reasons unknown to me is used in the stub for
> pwmchip_add()).

This I explained already that _add() != _probe() semantically, I do not see the
link between their error codes.

> I would have a better feeling with -ENOSYS in your stub, but I don't
> feel really strong here.


--
With Best Regards,
Andy Shevchenko