[PATCH 1/5] leds: introduce led_color_name function

Thomas Weißschuh posted 5 patches 1 year, 8 months ago
There is a newer version of this series
[PATCH 1/5] leds: introduce led_color_name function
Posted by Thomas Weißschuh 1 year, 8 months ago
This is similar to the existing led_colors array but is safer to use and
usable by everyone.
Getting string representations of color ids is useful for drivers
which are handling color ids anyways, for example for the multicolor API.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
 drivers/leds/led-core.c |  9 +++++++++
 include/linux/leds.h    | 10 ++++++++++
 2 files changed, 19 insertions(+)

diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c
index 89c9806cc97f..04a49958458e 100644
--- a/drivers/leds/led-core.c
+++ b/drivers/leds/led-core.c
@@ -534,6 +534,15 @@ int led_compose_name(struct device *dev, struct led_init_data *init_data,
 }
 EXPORT_SYMBOL_GPL(led_compose_name);
 
+const char *led_color_name(u8 color_id)
+{
+	if (color_id >= ARRAY_SIZE(led_colors))
+		return NULL;
+
+	return led_colors[color_id];
+}
+EXPORT_SYMBOL_GPL(led_color_name);
+
 enum led_default_state led_init_default_state_get(struct fwnode_handle *fwnode)
 {
 	const char *state = NULL;
diff --git a/include/linux/leds.h b/include/linux/leds.h
index db6b114bb3d9..0f1b955fa3f7 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -427,6 +427,16 @@ void led_sysfs_enable(struct led_classdev *led_cdev);
 int led_compose_name(struct device *dev, struct led_init_data *init_data,
 		     char *led_classdev_name);
 
+/**
+ * led_color_name - get string representation of color id
+ * @color_id: The LED_COLOR_ID_* constant
+ *
+ * Get the string name of a LED_COLOR_ID_* constant.
+ *
+ * Returns: A string constant or NULL on an invalid ID.
+ */
+const char *led_color_name(u8 color_id);
+
 /**
  * led_sysfs_is_disabled - check if LED sysfs interface is disabled
  * @led_cdev: the LED to query

-- 
2.45.1

Re: [PATCH 1/5] leds: introduce led_color_name function
Posted by Lee Jones 1 year, 8 months ago
It would save me a lot of work if you could follow the conventions of
the subsystem when drafting subjects.

`git log --online -- <subsystem>` is your friend.

> This is similar to the existing led_colors array but is safer to use and
> usable by everyone.

Place spaces between paragraphs or don't line-break at all please.

> Getting string representations of color ids is useful for drivers

"IDs"

> which are handling color ids anyways, for example for the multicolor API.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> ---
>  drivers/leds/led-core.c |  9 +++++++++
>  include/linux/leds.h    | 10 ++++++++++
>  2 files changed, 19 insertions(+)
> 
> diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c
> index 89c9806cc97f..04a49958458e 100644
> --- a/drivers/leds/led-core.c
> +++ b/drivers/leds/led-core.c
> @@ -534,6 +534,15 @@ int led_compose_name(struct device *dev, struct led_init_data *init_data,
>  }
>  EXPORT_SYMBOL_GPL(led_compose_name);
>  
> +const char *led_color_name(u8 color_id)

led_get_color_name()

> +{
> +	if (color_id >= ARRAY_SIZE(led_colors))
> +		return NULL;
> +
> +	return led_colors[color_id];
> +}
> +EXPORT_SYMBOL_GPL(led_color_name);
> +
>  enum led_default_state led_init_default_state_get(struct fwnode_handle *fwnode)
>  {
>  	const char *state = NULL;
> diff --git a/include/linux/leds.h b/include/linux/leds.h
> index db6b114bb3d9..0f1b955fa3f7 100644
> --- a/include/linux/leds.h
> +++ b/include/linux/leds.h
> @@ -427,6 +427,16 @@ void led_sysfs_enable(struct led_classdev *led_cdev);
>  int led_compose_name(struct device *dev, struct led_init_data *init_data,
>  		     char *led_classdev_name);
>  
> +/**
> + * led_color_name - get string representation of color id
> + * @color_id: The LED_COLOR_ID_* constant
> + *
> + * Get the string name of a LED_COLOR_ID_* constant.
> + *
> + * Returns: A string constant or NULL on an invalid ID.
> + */
> +const char *led_color_name(u8 color_id);


>  /**
>   * led_sysfs_is_disabled - check if LED sysfs interface is disabled
>   * @led_cdev: the LED to query
> 
> -- 
> 2.45.1
> 
> 

-- 
Lee Jones [李琼斯]