Re: [PATCH v17 03/10] video: backlight: Add of_find_backlight helper in backlight.c
Den 19.01.2018 12.05, skrev Daniel Thompson: On Fri, Jan 19, 2018 at 10:42:15AM +, Meghana Madhyastha wrote: Add of_find_backlight, a helper function which is a generic version of tinydrm_of_find_backlight that can be used by other drivers to avoid repetition of code and simplify things. Signed-off-by: Meghana Madhyastha Didn't I already ack this one? Meghana, You are supposed to pick up the r-b/acks you get and add them when you send a new version. This way the reviewer knows which patches still need attention. Here's a good overview of the acks/r-b's you've received: https://patchwork.freedesktop.org/project/dri-devel/patches/?submitter=17149 Beware that r-b/ack to the cover letter doesn't show up in patchwork, like Sean did on the last version putting his r-b on the whole series. The same goes for someone putting an r-b in one of the patches stating that it applies to whole series, patchwork thinks it only applies to this one patch. Noralf. --- changes in v17: -rebase with drm-misc-next -convert st7735r callers from tinydrm specific helpers to new generic backlight helpers -remove select BACKLIGHT_LCD_SUPPORT and select BACKLIGHT_CLASS_DEVICE from tinydrm/Kconfig drivers/video/backlight/backlight.c | 43 + include/linux/backlight.h | 19 2 files changed, 62 insertions(+) diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 8049e7656..553bf5c48 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -580,6 +580,49 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node) EXPORT_SYMBOL(of_find_backlight_by_node); #endif +/** + * of_find_backlight - Get backlight device + * @dev: Device + * + * This function looks for a property named 'backlight' on the DT node + * connected to @dev and looks up the backlight device. + * + * Call backlight_put() to drop the reference on the backlight device. + * + * Returns: + * A pointer to the backlight device if found. + * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight + * device is found. + * NULL if there's no backlight property. + */ +struct backlight_device *of_find_backlight(struct device *dev) +{ + struct backlight_device *bd = NULL; + struct device_node *np; + + if (!dev) + return NULL; + + if (IS_ENABLED(CONFIG_OF) && dev->of_node) { + np = of_parse_phandle(dev->of_node, "backlight", 0); + if (np) { + bd = of_find_backlight_by_node(np); + of_node_put(np); + if (!bd) + return ERR_PTR(-EPROBE_DEFER); + /* +* Note: gpio_backlight uses brightness as +* power state during probe +*/ + if (!bd->props.brightness) + bd->props.brightness = bd->props.max_brightness; + } + } + + return bd; +} +EXPORT_SYMBOL(of_find_backlight); + static void __exit backlight_class_exit(void) { class_destroy(backlight_class); diff --git a/include/linux/backlight.h b/include/linux/backlight.h index ace825e2c..ddc9bade4 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -162,6 +162,16 @@ static inline int backlight_disable(struct backlight_device *bd) return backlight_update_status(bd); } +/** + * backlight_put - Drop backlight reference + * @bd: the backlight device to put + */ +static inline void backlight_put(struct backlight_device *bd) +{ + if (bd) + put_device(&bd->dev); +} + extern struct backlight_device *backlight_device_register(const char *name, struct device *dev, void *devdata, const struct backlight_ops *ops, const struct backlight_properties *props); @@ -205,4 +215,13 @@ of_find_backlight_by_node(struct device_node *node) } #endif +#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE) +struct backlight_device *of_find_backlight(struct device *dev); +#else +static inline struct backlight_device *of_find_backlight(struct device *dev) +{ + return NULL; +} +#endif + #endif -- 2.11.0 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v17 03/10] video: backlight: Add of_find_backlight helper in backlight.c
Den 19.01.2018 11.42, skrev Meghana Madhyastha: Add of_find_backlight, a helper function which is a generic version of tinydrm_of_find_backlight that can be used by other drivers to avoid repetition of code and simplify things. Signed-off-by: Meghana Madhyastha --- Reviewed-by: Noralf Trønnes changes in v17: -rebase with drm-misc-next -convert st7735r callers from tinydrm specific helpers to new generic backlight helpers -remove select BACKLIGHT_LCD_SUPPORT and select BACKLIGHT_CLASS_DEVICE from tinydrm/Kconfig drivers/video/backlight/backlight.c | 43 + include/linux/backlight.h | 19 2 files changed, 62 insertions(+) diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 8049e7656..553bf5c48 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -580,6 +580,49 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node) EXPORT_SYMBOL(of_find_backlight_by_node); #endif +/** + * of_find_backlight - Get backlight device + * @dev: Device + * + * This function looks for a property named 'backlight' on the DT node + * connected to @dev and looks up the backlight device. + * + * Call backlight_put() to drop the reference on the backlight device. + * + * Returns: + * A pointer to the backlight device if found. + * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight + * device is found. + * NULL if there's no backlight property. + */ +struct backlight_device *of_find_backlight(struct device *dev) +{ + struct backlight_device *bd = NULL; + struct device_node *np; + + if (!dev) + return NULL; + + if (IS_ENABLED(CONFIG_OF) && dev->of_node) { + np = of_parse_phandle(dev->of_node, "backlight", 0); + if (np) { + bd = of_find_backlight_by_node(np); + of_node_put(np); + if (!bd) + return ERR_PTR(-EPROBE_DEFER); + /* +* Note: gpio_backlight uses brightness as +* power state during probe +*/ + if (!bd->props.brightness) + bd->props.brightness = bd->props.max_brightness; + } + } + + return bd; +} +EXPORT_SYMBOL(of_find_backlight); + static void __exit backlight_class_exit(void) { class_destroy(backlight_class); diff --git a/include/linux/backlight.h b/include/linux/backlight.h index ace825e2c..ddc9bade4 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -162,6 +162,16 @@ static inline int backlight_disable(struct backlight_device *bd) return backlight_update_status(bd); } +/** + * backlight_put - Drop backlight reference + * @bd: the backlight device to put + */ +static inline void backlight_put(struct backlight_device *bd) +{ + if (bd) + put_device(&bd->dev); +} + extern struct backlight_device *backlight_device_register(const char *name, struct device *dev, void *devdata, const struct backlight_ops *ops, const struct backlight_properties *props); @@ -205,4 +215,13 @@ of_find_backlight_by_node(struct device_node *node) } #endif +#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE) +struct backlight_device *of_find_backlight(struct device *dev); +#else +static inline struct backlight_device *of_find_backlight(struct device *dev) +{ + return NULL; +} +#endif + #endif ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v17 03/10] video: backlight: Add of_find_backlight helper in backlight.c
On Fri, Jan 19, 2018 at 10:42:15AM +, Meghana Madhyastha wrote: > Add of_find_backlight, a helper function which is a generic version > of tinydrm_of_find_backlight that can be used by other drivers to avoid > repetition of code and simplify things. > > Signed-off-by: Meghana Madhyastha Didn't I already ack this one? > --- > changes in v17: > -rebase with drm-misc-next > -convert st7735r callers from tinydrm specific helpers > to new generic backlight helpers > -remove select BACKLIGHT_LCD_SUPPORT > and select BACKLIGHT_CLASS_DEVICE from > tinydrm/Kconfig > > drivers/video/backlight/backlight.c | 43 > + > include/linux/backlight.h | 19 > 2 files changed, 62 insertions(+) > > diff --git a/drivers/video/backlight/backlight.c > b/drivers/video/backlight/backlight.c > index 8049e7656..553bf5c48 100644 > --- a/drivers/video/backlight/backlight.c > +++ b/drivers/video/backlight/backlight.c > @@ -580,6 +580,49 @@ struct backlight_device > *of_find_backlight_by_node(struct device_node *node) > EXPORT_SYMBOL(of_find_backlight_by_node); > #endif > > +/** > + * of_find_backlight - Get backlight device > + * @dev: Device > + * > + * This function looks for a property named 'backlight' on the DT node > + * connected to @dev and looks up the backlight device. > + * > + * Call backlight_put() to drop the reference on the backlight device. > + * > + * Returns: > + * A pointer to the backlight device if found. > + * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight > + * device is found. > + * NULL if there's no backlight property. > + */ > +struct backlight_device *of_find_backlight(struct device *dev) > +{ > + struct backlight_device *bd = NULL; > + struct device_node *np; > + > + if (!dev) > + return NULL; > + > + if (IS_ENABLED(CONFIG_OF) && dev->of_node) { > + np = of_parse_phandle(dev->of_node, "backlight", 0); > + if (np) { > + bd = of_find_backlight_by_node(np); > + of_node_put(np); > + if (!bd) > + return ERR_PTR(-EPROBE_DEFER); > + /* > + * Note: gpio_backlight uses brightness as > + * power state during probe > + */ > + if (!bd->props.brightness) > + bd->props.brightness = bd->props.max_brightness; > + } > + } > + > + return bd; > +} > +EXPORT_SYMBOL(of_find_backlight); > + > static void __exit backlight_class_exit(void) > { > class_destroy(backlight_class); > diff --git a/include/linux/backlight.h b/include/linux/backlight.h > index ace825e2c..ddc9bade4 100644 > --- a/include/linux/backlight.h > +++ b/include/linux/backlight.h > @@ -162,6 +162,16 @@ static inline int backlight_disable(struct > backlight_device *bd) > return backlight_update_status(bd); > } > > +/** > + * backlight_put - Drop backlight reference > + * @bd: the backlight device to put > + */ > +static inline void backlight_put(struct backlight_device *bd) > +{ > + if (bd) > + put_device(&bd->dev); > +} > + > extern struct backlight_device *backlight_device_register(const char *name, > struct device *dev, void *devdata, const struct backlight_ops *ops, > const struct backlight_properties *props); > @@ -205,4 +215,13 @@ of_find_backlight_by_node(struct device_node *node) > } > #endif > > +#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE) > +struct backlight_device *of_find_backlight(struct device *dev); > +#else > +static inline struct backlight_device *of_find_backlight(struct device *dev) > +{ > + return NULL; > +} > +#endif > + > #endif > -- > 2.11.0 > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH v17 03/10] video: backlight: Add of_find_backlight helper in backlight.c
Add of_find_backlight, a helper function which is a generic version of tinydrm_of_find_backlight that can be used by other drivers to avoid repetition of code and simplify things. Signed-off-by: Meghana Madhyastha --- changes in v17: -rebase with drm-misc-next -convert st7735r callers from tinydrm specific helpers to new generic backlight helpers -remove select BACKLIGHT_LCD_SUPPORT and select BACKLIGHT_CLASS_DEVICE from tinydrm/Kconfig drivers/video/backlight/backlight.c | 43 + include/linux/backlight.h | 19 2 files changed, 62 insertions(+) diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 8049e7656..553bf5c48 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -580,6 +580,49 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node) EXPORT_SYMBOL(of_find_backlight_by_node); #endif +/** + * of_find_backlight - Get backlight device + * @dev: Device + * + * This function looks for a property named 'backlight' on the DT node + * connected to @dev and looks up the backlight device. + * + * Call backlight_put() to drop the reference on the backlight device. + * + * Returns: + * A pointer to the backlight device if found. + * Error pointer -EPROBE_DEFER if the DT property is set, but no backlight + * device is found. + * NULL if there's no backlight property. + */ +struct backlight_device *of_find_backlight(struct device *dev) +{ + struct backlight_device *bd = NULL; + struct device_node *np; + + if (!dev) + return NULL; + + if (IS_ENABLED(CONFIG_OF) && dev->of_node) { + np = of_parse_phandle(dev->of_node, "backlight", 0); + if (np) { + bd = of_find_backlight_by_node(np); + of_node_put(np); + if (!bd) + return ERR_PTR(-EPROBE_DEFER); + /* +* Note: gpio_backlight uses brightness as +* power state during probe +*/ + if (!bd->props.brightness) + bd->props.brightness = bd->props.max_brightness; + } + } + + return bd; +} +EXPORT_SYMBOL(of_find_backlight); + static void __exit backlight_class_exit(void) { class_destroy(backlight_class); diff --git a/include/linux/backlight.h b/include/linux/backlight.h index ace825e2c..ddc9bade4 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -162,6 +162,16 @@ static inline int backlight_disable(struct backlight_device *bd) return backlight_update_status(bd); } +/** + * backlight_put - Drop backlight reference + * @bd: the backlight device to put + */ +static inline void backlight_put(struct backlight_device *bd) +{ + if (bd) + put_device(&bd->dev); +} + extern struct backlight_device *backlight_device_register(const char *name, struct device *dev, void *devdata, const struct backlight_ops *ops, const struct backlight_properties *props); @@ -205,4 +215,13 @@ of_find_backlight_by_node(struct device_node *node) } #endif +#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE) +struct backlight_device *of_find_backlight(struct device *dev); +#else +static inline struct backlight_device *of_find_backlight(struct device *dev) +{ + return NULL; +} +#endif + #endif -- 2.11.0 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel