On Mon 2019-08-26 23:02:19, Jacek Anaszewski wrote: > Replace preprocessor macro aliases for legacy LED registration helpers > with inline functions. It will allow to avoid misleading compiler error > messages about missing symbol that actually wasn't explicitly used > in the code. It used to occur when CONFIG_LEDS_CLASS was undefined > and legacy (non-ext) function had been used in the code. > > Signed-off-by: Jacek Anaszewski Acked-by: Pavel Machek > Cc: Dan Murphy > --- > include/linux/leds.h | 29 +++++++++++++++++++++++++---- > 1 file changed, 25 insertions(+), 4 deletions(-) > > diff --git a/include/linux/leds.h b/include/linux/leds.h > index d101fd13e18e..b8df71193329 100644 > --- a/include/linux/leds.h > +++ b/include/linux/leds.h > @@ -157,18 +157,39 @@ struct led_classdev { > * @led_cdev: the led_classdev structure for this device > * @init_data: the LED class device initialization data > * > + * Register a new object of LED class, with name derived from init_data. > + * > * Returns: 0 on success or negative error value on failure > */ > extern int led_classdev_register_ext(struct device *parent, > struct led_classdev *led_cdev, > struct led_init_data *init_data); > -#define led_classdev_register(parent, led_cdev) \ > - led_classdev_register_ext(parent, led_cdev, NULL) > + > +/** > + * led_classdev_register - register a new object of LED class > + * @parent: LED controller device this LED is driven by > + * @led_cdev: the led_classdev structure for this device > + * > + * Register a new object of LED class, with name derived from the name property > + * of passed led_cdev argument. > + * > + * Returns: 0 on success or negative error value on failure > + */ > +static inline int led_classdev_register(struct device *parent, > + struct led_classdev *led_cdev) > +{ > + return led_classdev_register_ext(parent, led_cdev, NULL); > +} > + > extern int devm_led_classdev_register_ext(struct device *parent, > struct led_classdev *led_cdev, > struct led_init_data *init_data); > -#define devm_led_classdev_register(parent, led_cdev) \ > - devm_led_classdev_register_ext(parent, led_cdev, NULL) > + > +static inline int devm_led_classdev_register(struct device *parent, > + struct led_classdev *led_cdev) > +{ > + return devm_led_classdev_register_ext(parent, led_cdev, NULL); > +} > extern void led_classdev_unregister(struct led_classdev *led_cdev); > extern void devm_led_classdev_unregister(struct device *parent, > struct led_classdev *led_cdev); -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html