* [PATCH v12 0/3] Move backlight helper functions from tinydrm-helpers to linux/backlight @ 2017-10-12 15:26 Meghana Madhyastha 2017-10-12 15:28 ` [PATCH v12 1/3] drm/tinydrm: Move helper functions from tinydrm-helpers to backlight.h Meghana Madhyastha 2017-10-12 15:50 ` [PATCH v12 2/3] drm/tinydrm: Move tinydrm_of_find_backlight to backlight.c Meghana Madhyastha 0 siblings, 2 replies; 5+ messages in thread From: Meghana Madhyastha @ 2017-10-12 15:26 UTC (permalink / raw) To: daniel, noralf, outreachy-kernel, dri-devel, daniel.thompson, jani.nikula Move drm helper functions from tinydrm-helpers to linux/backlight for ease of use by callers in other drivers. Changes in v12: -Move backlight_put() to the patch 2/3 from patch 3/3. -Remove #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)..#endif because the file is not built if it isn't enabled Meghana Madhyastha (3): drm/tinydrm: Move helper functions from tinydrm-helpers to backlight.h drm/tinydrm: Move tinydrm_of_find_backlight to backlight.c drm/tinydrm: Add devres versions of backlight_get drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c | 95 -------------------------- drivers/gpu/drm/tinydrm/mi0283qt.c | 3 +- drivers/gpu/drm/tinydrm/mipi-dbi.c | 5 +- drivers/video/backlight/backlight.c | 68 ++++++++++++++++++ include/drm/tinydrm/tinydrm-helpers.h | 5 -- include/linux/backlight.h | 55 +++++++++++++++ 6 files changed, 128 insertions(+), 103 deletions(-) -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v12 1/3] drm/tinydrm: Move helper functions from tinydrm-helpers to backlight.h 2017-10-12 15:26 [PATCH v12 0/3] Move backlight helper functions from tinydrm-helpers to linux/backlight Meghana Madhyastha @ 2017-10-12 15:28 ` Meghana Madhyastha 2017-10-12 16:46 ` Noralf Trønnes 2017-10-12 15:50 ` [PATCH v12 2/3] drm/tinydrm: Move tinydrm_of_find_backlight to backlight.c Meghana Madhyastha 1 sibling, 1 reply; 5+ messages in thread From: Meghana Madhyastha @ 2017-10-12 15:28 UTC (permalink / raw) To: daniel, noralf, outreachy-kernel, dri-devel, daniel.thompson, jani.nikula Move the helper functions enable_backlight and disable_backlight from tinydrm-helpers.c to backlight.h as static inline functions so that they can be used by other drivers. Signed-off-by: Meghana Madhyastha <meghana.madhyastha@gmail.com> --- Changes in v12: -None drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c | 55 -------------------------- drivers/gpu/drm/tinydrm/mipi-dbi.c | 5 ++- include/drm/tinydrm/tinydrm-helpers.h | 2 - include/linux/backlight.h | 30 ++++++++++++++ 4 files changed, 33 insertions(+), 59 deletions(-) diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c b/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c index bd6cce0..a42dee6 100644 --- a/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c @@ -276,61 +276,6 @@ struct backlight_device *tinydrm_of_find_backlight(struct device *dev) } EXPORT_SYMBOL(tinydrm_of_find_backlight); -/** - * tinydrm_enable_backlight - Enable backlight helper - * @backlight: Backlight device - * - * Returns: - * Zero on success, negative error code on failure. - */ -int tinydrm_enable_backlight(struct backlight_device *backlight) -{ - unsigned int old_state; - int ret; - - if (!backlight) - return 0; - - old_state = backlight->props.state; - backlight->props.state &= ~BL_CORE_FBBLANK; - DRM_DEBUG_KMS("Backlight state: 0x%x -> 0x%x\n", old_state, - backlight->props.state); - - ret = backlight_update_status(backlight); - if (ret) - DRM_ERROR("Failed to enable backlight %d\n", ret); - - return ret; -} -EXPORT_SYMBOL(tinydrm_enable_backlight); - -/** - * tinydrm_disable_backlight - Disable backlight helper - * @backlight: Backlight device - * - * Returns: - * Zero on success, negative error code on failure. - */ -int tinydrm_disable_backlight(struct backlight_device *backlight) -{ - unsigned int old_state; - int ret; - - if (!backlight) - return 0; - - old_state = backlight->props.state; - backlight->props.state |= BL_CORE_FBBLANK; - DRM_DEBUG_KMS("Backlight state: 0x%x -> 0x%x\n", old_state, - backlight->props.state); - ret = backlight_update_status(backlight); - if (ret) - DRM_ERROR("Failed to disable backlight %d\n", ret); - - return ret; -} -EXPORT_SYMBOL(tinydrm_disable_backlight); - #if IS_ENABLED(CONFIG_SPI) /** diff --git a/drivers/gpu/drm/tinydrm/mipi-dbi.c b/drivers/gpu/drm/tinydrm/mipi-dbi.c index 2caeabc..71b416b 100644 --- a/drivers/gpu/drm/tinydrm/mipi-dbi.c +++ b/drivers/gpu/drm/tinydrm/mipi-dbi.c @@ -11,6 +11,7 @@ #include <drm/tinydrm/mipi-dbi.h> #include <drm/tinydrm/tinydrm-helpers.h> +#include <linux/backlight.h> #include <linux/debugfs.h> #include <linux/dma-buf.h> #include <linux/gpio/consumer.h> @@ -279,7 +280,7 @@ void mipi_dbi_pipe_enable(struct drm_simple_display_pipe *pipe, if (fb) fb->funcs->dirty(fb, NULL, 0, 0, NULL, 0); - tinydrm_enable_backlight(mipi->backlight); + backlight_enable(mipi->backlight); } EXPORT_SYMBOL(mipi_dbi_pipe_enable); @@ -318,7 +319,7 @@ void mipi_dbi_pipe_disable(struct drm_simple_display_pipe *pipe) mipi->enabled = false; if (mipi->backlight) - tinydrm_disable_backlight(mipi->backlight); + backlight_disable(mipi->backlight); else mipi_dbi_blank(mipi); } diff --git a/include/drm/tinydrm/tinydrm-helpers.h b/include/drm/tinydrm/tinydrm-helpers.h index d554ded..f54fae0 100644 --- a/include/drm/tinydrm/tinydrm-helpers.h +++ b/include/drm/tinydrm/tinydrm-helpers.h @@ -47,8 +47,6 @@ void tinydrm_xrgb8888_to_gray8(u8 *dst, void *vaddr, struct drm_framebuffer *fb, struct drm_clip_rect *clip); struct backlight_device *tinydrm_of_find_backlight(struct device *dev); -int tinydrm_enable_backlight(struct backlight_device *backlight); -int tinydrm_disable_backlight(struct backlight_device *backlight); size_t tinydrm_spi_max_transfer_size(struct spi_device *spi, size_t max_len); bool tinydrm_spi_bpw_supported(struct spi_device *spi, u8 bpw); diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 5f2fd61..355e9f5 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -153,6 +153,36 @@ static inline void * bl_get_data(struct backlight_device *bl_dev) return dev_get_drvdata(&bl_dev->dev); } +/** + * backlight_enable - Enable backlight + * @bd: the backlight device to enable + */ +static inline int backlight_enable(struct backlight_device *bd) +{ + if (!bd) + return 0; + + bd->props.power = FB_BLANK_UNBLANK; + bd->props.state &= ~BL_CORE_FBBLANK; + + return backlight_update_status(bd); +} + +/** + * backlight_disable - Disable backlight + * @bd: the backlight device to disable + */ +static inline int backlight_disable(struct backlight_device *bd) +{ + if (!bd) + return 0; + + bd->props.power = FB_BLANK_POWERDOWN; + bd->props.state |= BL_CORE_FBBLANK; + + return backlight_update_status(bd); +} + struct generic_bl_info { const char *name; int max_intensity; -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v12 1/3] drm/tinydrm: Move helper functions from tinydrm-helpers to backlight.h 2017-10-12 15:28 ` [PATCH v12 1/3] drm/tinydrm: Move helper functions from tinydrm-helpers to backlight.h Meghana Madhyastha @ 2017-10-12 16:46 ` Noralf Trønnes 0 siblings, 0 replies; 5+ messages in thread From: Noralf Trønnes @ 2017-10-12 16:46 UTC (permalink / raw) To: Meghana Madhyastha, daniel, outreachy-kernel, dri-devel, daniel.thompson, jani.nikula Den 12.10.2017 17.28, skrev Meghana Madhyastha: > Move the helper functions enable_backlight and disable_backlight > from tinydrm-helpers.c to backlight.h as static inline functions so > that they can be used by other drivers. > > Signed-off-by: Meghana Madhyastha <meghana.madhyastha@gmail.com> > --- Please rebase on latest drm-misc, the patch doesn't apply. > Changes in v12: > -None > > drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c | 55 -------------------------- > drivers/gpu/drm/tinydrm/mipi-dbi.c | 5 ++- > include/drm/tinydrm/tinydrm-helpers.h | 2 - > include/linux/backlight.h | 30 ++++++++++++++ > 4 files changed, 33 insertions(+), 59 deletions(-) > > diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c b/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c > index bd6cce0..a42dee6 100644 > --- a/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c > +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c > @@ -276,61 +276,6 @@ struct backlight_device *tinydrm_of_find_backlight(struct device *dev) > } > EXPORT_SYMBOL(tinydrm_of_find_backlight); > > -/** > - * tinydrm_enable_backlight - Enable backlight helper > - * @backlight: Backlight device > - * > - * Returns: > - * Zero on success, negative error code on failure. > - */ > -int tinydrm_enable_backlight(struct backlight_device *backlight) > -{ > - unsigned int old_state; > - int ret; > - > - if (!backlight) > - return 0; > - > - old_state = backlight->props.state; > - backlight->props.state &= ~BL_CORE_FBBLANK; > - DRM_DEBUG_KMS("Backlight state: 0x%x -> 0x%x\n", old_state, > - backlight->props.state); > - > - ret = backlight_update_status(backlight); > - if (ret) > - DRM_ERROR("Failed to enable backlight %d\n", ret); > - > - return ret; > -} > -EXPORT_SYMBOL(tinydrm_enable_backlight); > - > -/** > - * tinydrm_disable_backlight - Disable backlight helper > - * @backlight: Backlight device > - * > - * Returns: > - * Zero on success, negative error code on failure. > - */ > -int tinydrm_disable_backlight(struct backlight_device *backlight) > -{ > - unsigned int old_state; > - int ret; > - > - if (!backlight) > - return 0; > - > - old_state = backlight->props.state; > - backlight->props.state |= BL_CORE_FBBLANK; > - DRM_DEBUG_KMS("Backlight state: 0x%x -> 0x%x\n", old_state, > - backlight->props.state); > - ret = backlight_update_status(backlight); > - if (ret) > - DRM_ERROR("Failed to disable backlight %d\n", ret); > - > - return ret; > -} > -EXPORT_SYMBOL(tinydrm_disable_backlight); > - > #if IS_ENABLED(CONFIG_SPI) > > /** > diff --git a/drivers/gpu/drm/tinydrm/mipi-dbi.c b/drivers/gpu/drm/tinydrm/mipi-dbi.c > index 2caeabc..71b416b 100644 > --- a/drivers/gpu/drm/tinydrm/mipi-dbi.c > +++ b/drivers/gpu/drm/tinydrm/mipi-dbi.c > @@ -11,6 +11,7 @@ > > #include <drm/tinydrm/mipi-dbi.h> > #include <drm/tinydrm/tinydrm-helpers.h> > +#include <linux/backlight.h> > #include <linux/debugfs.h> > #include <linux/dma-buf.h> > #include <linux/gpio/consumer.h> > @@ -279,7 +280,7 @@ void mipi_dbi_pipe_enable(struct drm_simple_display_pipe *pipe, > if (fb) > fb->funcs->dirty(fb, NULL, 0, 0, NULL, 0); > > - tinydrm_enable_backlight(mipi->backlight); > + backlight_enable(mipi->backlight); > } > EXPORT_SYMBOL(mipi_dbi_pipe_enable); > > @@ -318,7 +319,7 @@ void mipi_dbi_pipe_disable(struct drm_simple_display_pipe *pipe) > mipi->enabled = false; > > if (mipi->backlight) > - tinydrm_disable_backlight(mipi->backlight); > + backlight_disable(mipi->backlight); > else > mipi_dbi_blank(mipi); > } > diff --git a/include/drm/tinydrm/tinydrm-helpers.h b/include/drm/tinydrm/tinydrm-helpers.h > index d554ded..f54fae0 100644 > --- a/include/drm/tinydrm/tinydrm-helpers.h > +++ b/include/drm/tinydrm/tinydrm-helpers.h > @@ -47,8 +47,6 @@ void tinydrm_xrgb8888_to_gray8(u8 *dst, void *vaddr, struct drm_framebuffer *fb, > struct drm_clip_rect *clip); > > struct backlight_device *tinydrm_of_find_backlight(struct device *dev); > -int tinydrm_enable_backlight(struct backlight_device *backlight); > -int tinydrm_disable_backlight(struct backlight_device *backlight); > > size_t tinydrm_spi_max_transfer_size(struct spi_device *spi, size_t max_len); > bool tinydrm_spi_bpw_supported(struct spi_device *spi, u8 bpw); > diff --git a/include/linux/backlight.h b/include/linux/backlight.h > index 5f2fd61..355e9f5 100644 > --- a/include/linux/backlight.h > +++ b/include/linux/backlight.h > @@ -153,6 +153,36 @@ static inline void * bl_get_data(struct backlight_device *bl_dev) > return dev_get_drvdata(&bl_dev->dev); > } > > +/** > + * backlight_enable - Enable backlight > + * @bd: the backlight device to enable > + */ > +static inline int backlight_enable(struct backlight_device *bd) > +{ > + if (!bd) > + return 0; > + > + bd->props.power = FB_BLANK_UNBLANK; > + bd->props.state &= ~BL_CORE_FBBLANK; > + > + return backlight_update_status(bd); > +} > + > +/** > + * backlight_disable - Disable backlight > + * @bd: the backlight device to disable > + */ > +static inline int backlight_disable(struct backlight_device *bd) > +{ > + if (!bd) > + return 0; > + > + bd->props.power = FB_BLANK_POWERDOWN; > + bd->props.state |= BL_CORE_FBBLANK; > + > + return backlight_update_status(bd); > +} > + > struct generic_bl_info { > const char *name; > int max_intensity; _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v12 2/3] drm/tinydrm: Move tinydrm_of_find_backlight to backlight.c 2017-10-12 15:26 [PATCH v12 0/3] Move backlight helper functions from tinydrm-helpers to linux/backlight Meghana Madhyastha 2017-10-12 15:28 ` [PATCH v12 1/3] drm/tinydrm: Move helper functions from tinydrm-helpers to backlight.h Meghana Madhyastha @ 2017-10-12 15:50 ` Meghana Madhyastha 2017-10-12 16:49 ` Noralf Trønnes 1 sibling, 1 reply; 5+ messages in thread From: Meghana Madhyastha @ 2017-10-12 15:50 UTC (permalink / raw) To: daniel, noralf, outreachy-kernel, dri-devel, daniel.thompson, jani.nikula Rename tinydrm_of_find_backlight to backlight_get and move it to linux/backlight.c so that it can be used by other drivers. Signed-off-by: Meghana Madhyastha <meghana.madhyastha@gmail.com> --- Changes in v12: -Move backlight_put() to the patch 2/3 from patch 3/3. -Remove #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)..#endif because the file is not built if it isn't enabled drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c | 40 ------------------------ drivers/gpu/drm/tinydrm/mi0283qt.c | 3 +- drivers/video/backlight/backlight.c | 43 ++++++++++++++++++++++++++ include/drm/tinydrm/tinydrm-helpers.h | 3 -- include/linux/backlight.h | 9 ++++++ 5 files changed, 54 insertions(+), 44 deletions(-) diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c b/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c index a42dee6..cb1a01a 100644 --- a/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c @@ -236,46 +236,6 @@ void tinydrm_xrgb8888_to_gray8(u8 *dst, void *vaddr, struct drm_framebuffer *fb, } EXPORT_SYMBOL(tinydrm_xrgb8888_to_gray8); -/** - * tinydrm_of_find_backlight - Find backlight device in device-tree - * @dev: Device - * - * This function looks for a DT node pointed to by a property named 'backlight' - * and uses of_find_backlight_by_node() to get the backlight device. - * Additionally if the brightness property is zero, it is set to - * max_brightness. - * - * Returns: - * NULL if there's no backlight property. - * Error pointer -EPROBE_DEFER if the DT node is found, but no backlight device - * is found. - * If the backlight device is found, a pointer to the structure is returned. - */ -struct backlight_device *tinydrm_of_find_backlight(struct device *dev) -{ - struct backlight_device *backlight; - struct device_node *np; - - np = of_parse_phandle(dev->of_node, "backlight", 0); - if (!np) - return NULL; - - backlight = of_find_backlight_by_node(np); - of_node_put(np); - - if (!backlight) - return ERR_PTR(-EPROBE_DEFER); - - if (!backlight->props.brightness) { - backlight->props.brightness = backlight->props.max_brightness; - DRM_DEBUG_KMS("Backlight brightness set to %d\n", - backlight->props.brightness); - } - - return backlight; -} -EXPORT_SYMBOL(tinydrm_of_find_backlight); - #if IS_ENABLED(CONFIG_SPI) /** diff --git a/drivers/gpu/drm/tinydrm/mi0283qt.c b/drivers/gpu/drm/tinydrm/mi0283qt.c index 7e5bb7d..edf9502 100644 --- a/drivers/gpu/drm/tinydrm/mi0283qt.c +++ b/drivers/gpu/drm/tinydrm/mi0283qt.c @@ -12,6 +12,7 @@ #include <drm/tinydrm/ili9341.h> #include <drm/tinydrm/mipi-dbi.h> #include <drm/tinydrm/tinydrm-helpers.h> +#include <linux/backlight.h> #include <linux/delay.h> #include <linux/gpio/consumer.h> #include <linux/module.h> @@ -189,7 +190,7 @@ static int mi0283qt_probe(struct spi_device *spi) if (IS_ERR(mipi->regulator)) return PTR_ERR(mipi->regulator); - mipi->backlight = tinydrm_of_find_backlight(dev); + mipi->backlight = backlight_get(dev); if (IS_ERR(mipi->backlight)) return PTR_ERR(mipi->backlight); diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 8049e76..f3e95b3 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 +/** + * backlight_get - 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 *backlight_get(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); + } + } + + return bd; +} +EXPORT_SYMBOL(backlight_get); + +static inline void backlight_put(struct backlight_device *bd) +{ + if (bd) + put_device(&bd->dev); +} + static void __exit backlight_class_exit(void) { class_destroy(backlight_class); diff --git a/include/drm/tinydrm/tinydrm-helpers.h b/include/drm/tinydrm/tinydrm-helpers.h index f54fae0..b89d8e4 100644 --- a/include/drm/tinydrm/tinydrm-helpers.h +++ b/include/drm/tinydrm/tinydrm-helpers.h @@ -10,7 +10,6 @@ #ifndef __LINUX_TINYDRM_HELPERS_H #define __LINUX_TINYDRM_HELPERS_H -struct backlight_device; struct tinydrm_device; struct drm_clip_rect; struct spi_transfer; @@ -46,8 +45,6 @@ void tinydrm_xrgb8888_to_rgb565(u16 *dst, void *vaddr, void tinydrm_xrgb8888_to_gray8(u8 *dst, void *vaddr, struct drm_framebuffer *fb, struct drm_clip_rect *clip); -struct backlight_device *tinydrm_of_find_backlight(struct device *dev); - size_t tinydrm_spi_max_transfer_size(struct spi_device *spi, size_t max_len); bool tinydrm_spi_bpw_supported(struct spi_device *spi, u8 bpw); int tinydrm_spi_transfer(struct spi_device *spi, u32 speed_hz, diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 355e9f5..1d713b3 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h @@ -202,4 +202,13 @@ of_find_backlight_by_node(struct device_node *node) } #endif +#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE) +struct backlight_device *backlight_get(struct device *dev); +#else +static inline struct backlight_device *backlight_get(struct device *dev) +{ + return NULL; +} +#endif + #endif -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v12 2/3] drm/tinydrm: Move tinydrm_of_find_backlight to backlight.c 2017-10-12 15:50 ` [PATCH v12 2/3] drm/tinydrm: Move tinydrm_of_find_backlight to backlight.c Meghana Madhyastha @ 2017-10-12 16:49 ` Noralf Trønnes 0 siblings, 0 replies; 5+ messages in thread From: Noralf Trønnes @ 2017-10-12 16:49 UTC (permalink / raw) To: Meghana Madhyastha, daniel, outreachy-kernel, dri-devel, daniel.thompson, jani.nikula Den 12.10.2017 17.50, skrev Meghana Madhyastha: > Rename tinydrm_of_find_backlight to backlight_get and move it > to linux/backlight.c so that it can be used by other drivers. > > Signed-off-by: Meghana Madhyastha <meghana.madhyastha@gmail.com> > --- > Changes in v12: > -Move backlight_put() to the patch 2/3 from patch 3/3. > -Remove #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)..#endif > because the file is not built if it isn't enabled > > drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c | 40 ------------------------ > drivers/gpu/drm/tinydrm/mi0283qt.c | 3 +- > drivers/video/backlight/backlight.c | 43 ++++++++++++++++++++++++++ > include/drm/tinydrm/tinydrm-helpers.h | 3 -- > include/linux/backlight.h | 9 ++++++ > 5 files changed, 54 insertions(+), 44 deletions(-) > > diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c b/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c > index a42dee6..cb1a01a 100644 > --- a/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c > +++ b/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c > @@ -236,46 +236,6 @@ void tinydrm_xrgb8888_to_gray8(u8 *dst, void *vaddr, struct drm_framebuffer *fb, > } > EXPORT_SYMBOL(tinydrm_xrgb8888_to_gray8); > > -/** > - * tinydrm_of_find_backlight - Find backlight device in device-tree > - * @dev: Device > - * > - * This function looks for a DT node pointed to by a property named 'backlight' > - * and uses of_find_backlight_by_node() to get the backlight device. > - * Additionally if the brightness property is zero, it is set to > - * max_brightness. > - * > - * Returns: > - * NULL if there's no backlight property. > - * Error pointer -EPROBE_DEFER if the DT node is found, but no backlight device > - * is found. > - * If the backlight device is found, a pointer to the structure is returned. > - */ > -struct backlight_device *tinydrm_of_find_backlight(struct device *dev) > -{ > - struct backlight_device *backlight; > - struct device_node *np; > - > - np = of_parse_phandle(dev->of_node, "backlight", 0); > - if (!np) > - return NULL; > - > - backlight = of_find_backlight_by_node(np); > - of_node_put(np); > - > - if (!backlight) > - return ERR_PTR(-EPROBE_DEFER); > - > - if (!backlight->props.brightness) { > - backlight->props.brightness = backlight->props.max_brightness; > - DRM_DEBUG_KMS("Backlight brightness set to %d\n", > - backlight->props.brightness); > - } > - > - return backlight; > -} > -EXPORT_SYMBOL(tinydrm_of_find_backlight); > - > #if IS_ENABLED(CONFIG_SPI) > > /** > diff --git a/drivers/gpu/drm/tinydrm/mi0283qt.c b/drivers/gpu/drm/tinydrm/mi0283qt.c > index 7e5bb7d..edf9502 100644 > --- a/drivers/gpu/drm/tinydrm/mi0283qt.c > +++ b/drivers/gpu/drm/tinydrm/mi0283qt.c > @@ -12,6 +12,7 @@ > #include <drm/tinydrm/ili9341.h> > #include <drm/tinydrm/mipi-dbi.h> > #include <drm/tinydrm/tinydrm-helpers.h> > +#include <linux/backlight.h> > #include <linux/delay.h> > #include <linux/gpio/consumer.h> > #include <linux/module.h> > @@ -189,7 +190,7 @@ static int mi0283qt_probe(struct spi_device *spi) > if (IS_ERR(mipi->regulator)) > return PTR_ERR(mipi->regulator); > > - mipi->backlight = tinydrm_of_find_backlight(dev); > + mipi->backlight = backlight_get(dev); > if (IS_ERR(mipi->backlight)) > return PTR_ERR(mipi->backlight); > > diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c > index 8049e76..f3e95b3 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 > > +/** > + * backlight_get - 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 *backlight_get(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); > + } > + } > + > + return bd; > +} > +EXPORT_SYMBOL(backlight_get); > + > +static inline void backlight_put(struct backlight_device *bd) Inlines like this should go in the header file backlight.h. > +{ > + if (bd) > + put_device(&bd->dev); > +} > + > static void __exit backlight_class_exit(void) > { > class_destroy(backlight_class); > diff --git a/include/drm/tinydrm/tinydrm-helpers.h b/include/drm/tinydrm/tinydrm-helpers.h > index f54fae0..b89d8e4 100644 > --- a/include/drm/tinydrm/tinydrm-helpers.h > +++ b/include/drm/tinydrm/tinydrm-helpers.h > @@ -10,7 +10,6 @@ > #ifndef __LINUX_TINYDRM_HELPERS_H > #define __LINUX_TINYDRM_HELPERS_H > > -struct backlight_device; > struct tinydrm_device; > struct drm_clip_rect; > struct spi_transfer; > @@ -46,8 +45,6 @@ void tinydrm_xrgb8888_to_rgb565(u16 *dst, void *vaddr, > void tinydrm_xrgb8888_to_gray8(u8 *dst, void *vaddr, struct drm_framebuffer *fb, > struct drm_clip_rect *clip); > > -struct backlight_device *tinydrm_of_find_backlight(struct device *dev); > - > size_t tinydrm_spi_max_transfer_size(struct spi_device *spi, size_t max_len); > bool tinydrm_spi_bpw_supported(struct spi_device *spi, u8 bpw); > int tinydrm_spi_transfer(struct spi_device *spi, u32 speed_hz, > diff --git a/include/linux/backlight.h b/include/linux/backlight.h > index 355e9f5..1d713b3 100644 > --- a/include/linux/backlight.h > +++ b/include/linux/backlight.h > @@ -202,4 +202,13 @@ of_find_backlight_by_node(struct device_node *node) > } > #endif > > +#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE) > +struct backlight_device *backlight_get(struct device *dev); > +#else > +static inline struct backlight_device *backlight_get(struct device *dev) > +{ > + return NULL; > +} > +#endif > + > #endif _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-10-12 16:49 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-10-12 15:26 [PATCH v12 0/3] Move backlight helper functions from tinydrm-helpers to linux/backlight Meghana Madhyastha 2017-10-12 15:28 ` [PATCH v12 1/3] drm/tinydrm: Move helper functions from tinydrm-helpers to backlight.h Meghana Madhyastha 2017-10-12 16:46 ` Noralf Trønnes 2017-10-12 15:50 ` [PATCH v12 2/3] drm/tinydrm: Move tinydrm_of_find_backlight to backlight.c Meghana Madhyastha 2017-10-12 16:49 ` Noralf Trønnes
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).