lkml.org 
[lkml]   [2018]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v16 03/10] video: backlight: Add of_find_backlight helper in backlight.c
    From
    Date

    Den 16.01.2018 11.33, 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 <meghana.madhyastha@gmail.com>
    > ---
    > Changes in v16:
    > -Add comment about brightness in of_find_backlight
    >
    > drivers/video/backlight/backlight.c | 40 +++++++++++++++++++++++++++++++++++++
    > include/linux/backlight.h | 19 ++++++++++++++++++
    > 2 files changed, 59 insertions(+)
    >
    > diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
    > index 8049e7656..7e4a5d77d 100644
    > --- a/drivers/video/backlight/backlight.c
    > +++ b/drivers/video/backlight/backlight.c
    > @@ -580,6 +580,46 @@ 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.
    > + * gpio_backlight uses brightness as power state during probe.

    I was thinking the gpio_backlight issue to be a comment with the code,
    not the docs.
    Isn't this sentence a bit confusing as part of the docs?

    checkpatch complains:
    -:21: WARNING: Block comments should align the * on each line
    -:72: WARNING: Block comments should align the * on each line

    Noralf.

    > + *
    > + * 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);
    > + 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 7b6a9a2a3..32ea510da 100644
    > --- a/include/linux/backlight.h
    > +++ b/include/linux/backlight.h
    > @@ -160,6 +160,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);
    > @@ -203,4 +213,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

    \
     
     \ /
      Last update: 2018-01-16 17:57    [W:2.757 / U:0.456 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site