diff options
author | Noralf Trønnes <noralf@tronnes.org> | 2020-05-09 17:16:10 +0300 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2020-05-11 09:39:16 +0300 |
commit | 479da1f538a2f3547e15f9d5922c611b69ec2fbc (patch) | |
tree | 2ebc2934ac8ba1d0129981f79cd05f257449e4dd | |
parent | 62a1d3f623ac0338912fdfbdda9bdac4cadcbc75 (diff) | |
download | linux-479da1f538a2f3547e15f9d5922c611b69ec2fbc.tar.xz |
backlight: Add backlight_device_get_by_name()
Add a way to lookup a backlight device based on its name.
Will be used by a USB display gadget getting the name from configfs.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Acked-by: Jingoo Han <jingoohan1@gmail.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
-rw-r--r-- | drivers/video/backlight/backlight.c | 21 | ||||
-rw-r--r-- | include/linux/backlight.h | 1 |
2 files changed, 22 insertions, 0 deletions
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index cac3e35d7630..92d80aa0c0ef 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -433,6 +433,27 @@ struct backlight_device *backlight_device_get_by_type(enum backlight_type type) EXPORT_SYMBOL(backlight_device_get_by_type); /** + * backlight_device_get_by_name - Get backlight device by name + * @name: Device name + * + * This function looks up a backlight device by its name. It obtains a reference + * on the backlight device and it is the caller's responsibility to drop the + * reference by calling backlight_put(). + * + * Returns: + * A pointer to the backlight device if found, otherwise NULL. + */ +struct backlight_device *backlight_device_get_by_name(const char *name) +{ + struct device *dev; + + dev = class_find_device_by_name(backlight_class, name); + + return dev ? to_backlight_device(dev) : NULL; +} +EXPORT_SYMBOL(backlight_device_get_by_name); + +/** * backlight_device_unregister - unregisters a backlight device object. * @bd: the backlight device object to be unregistered and freed. * diff --git a/include/linux/backlight.h b/include/linux/backlight.h index c7d6b2e8c3b5..56e4580d4f55 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -190,6 +190,7 @@ extern void backlight_force_update(struct backlight_device *bd, extern int backlight_register_notifier(struct notifier_block *nb); extern int backlight_unregister_notifier(struct notifier_block *nb); extern struct backlight_device *backlight_device_get_by_type(enum backlight_type type); +struct backlight_device *backlight_device_get_by_name(const char *name); extern int backlight_device_set_brightness(struct backlight_device *bd, unsigned long brightness); #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev) |