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

From: Andy Shevchenko
Date: Tue Nov 22 2022 - 13:33:05 EST


On Tue, Nov 22, 2022 at 07:14:44PM +0100, Uwe Kleine-König wrote:
> On Tue, Nov 22, 2022 at 07:35:38PM +0200, Andy Shevchenko wrote:
> > 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:

...

> > > > +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 compiler optimizes everything away after that return 0 and so
> doesn't need that symbol at all.
>
> I just tested compiling your series without patch #6, x86_64 allmodconfig + PWM=n.
>
> nm doesn't report the need for devm_pwm_lpss_probe in
> drivers/pinctrl/intel/pinctrl-intel.o.

Sounds like you are right. I tried a brief test with m/m, y/m, m/y, and m/n
variants between PINCTRL_INTEL and PWM_LPSS and all were built fine.

That said, I will drop this patch and send a PR with the rest.

Thank you for thorough review!

--
With Best Regards,
Andy Shevchenko