lkml.org 
[lkml]   [2021]   [Sep]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v6 09/19] auxdisplay: ht16k33: Connect backlight to fbdev
    Reviewed-by: Robin van der Gracht <robin@protonic.nl>

    On 2021-09-14 16:38, Geert Uytterhoeven wrote:
    > Currently /sys/class/graphics/fb0/bl_curve is not accessible (-ENODEV),
    > as the driver does not connect the backlight to the frame buffer device.
    > Fix this moving backlight initialization up, and filling in
    > fb_info.bl_dev.
    >
    > Fixes: 8992da44c6805d53 ("auxdisplay: ht16k33: Driver for LED controller")
    > Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    > ---
    > v6:
    > - No changes,
    >
    > v5:
    > - No changes,
    >
    > v4:
    > - No changes,
    >
    > v3:
    > - No changes,
    >
    > v2:
    > - New.
    > ---
    > drivers/auxdisplay/ht16k33.c | 56 ++++++++++++++++++------------------
    > 1 file changed, 28 insertions(+), 28 deletions(-)
    >
    > diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c
    > index 1e69cc6d21a0dca2..2b630e194570f6e5 100644
    > --- a/drivers/auxdisplay/ht16k33.c
    > +++ b/drivers/auxdisplay/ht16k33.c
    > @@ -413,6 +413,33 @@ static int ht16k33_probe(struct i2c_client *client,
    > if (err)
    > return err;
    >
    > + /* Backlight */
    > + memset(&bl_props, 0, sizeof(struct backlight_properties));
    > + bl_props.type = BACKLIGHT_RAW;
    > + bl_props.max_brightness = MAX_BRIGHTNESS;
    > +
    > + bl = devm_backlight_device_register(&client->dev, DRIVER_NAME"-bl",
    > + &client->dev, priv,
    > + &ht16k33_bl_ops, &bl_props);
    > + if (IS_ERR(bl)) {
    > + dev_err(&client->dev, "failed to register backlight\n");
    > + return PTR_ERR(bl);
    > + }
    > +
    > + err = of_property_read_u32(node, "default-brightness-level",
    > + &dft_brightness);
    > + if (err) {
    > + dft_brightness = MAX_BRIGHTNESS;
    > + } else if (dft_brightness > MAX_BRIGHTNESS) {
    > + dev_warn(&client->dev,
    > + "invalid default brightness level: %u, using %u\n",
    > + dft_brightness, MAX_BRIGHTNESS);
    > + dft_brightness = MAX_BRIGHTNESS;
    > + }
    > +
    > + bl->props.brightness = dft_brightness;
    > + ht16k33_bl_update_status(bl);
    > +
    > /* Framebuffer (2 bytes per column) */
    > BUILD_BUG_ON(PAGE_SIZE < HT16K33_FB_SIZE);
    > fbdev->buffer = (unsigned char *) get_zeroed_page(GFP_KERNEL);
    > @@ -445,6 +472,7 @@ static int ht16k33_probe(struct i2c_client *client,
    > fbdev->info->screen_size = HT16K33_FB_SIZE;
    > fbdev->info->fix = ht16k33_fb_fix;
    > fbdev->info->var = ht16k33_fb_var;
    > + fbdev->info->bl_dev = bl;
    > fbdev->info->pseudo_palette = NULL;
    > fbdev->info->flags = FBINFO_FLAG_DEFAULT;
    > fbdev->info->par = priv;
    > @@ -460,34 +488,6 @@ static int ht16k33_probe(struct i2c_client *client,
    > goto err_fbdev_unregister;
    > }
    >
    > - /* Backlight */
    > - memset(&bl_props, 0, sizeof(struct backlight_properties));
    > - bl_props.type = BACKLIGHT_RAW;
    > - bl_props.max_brightness = MAX_BRIGHTNESS;
    > -
    > - bl = devm_backlight_device_register(&client->dev, DRIVER_NAME"-bl",
    > - &client->dev, priv,
    > - &ht16k33_bl_ops, &bl_props);
    > - if (IS_ERR(bl)) {
    > - dev_err(&client->dev, "failed to register backlight\n");
    > - err = PTR_ERR(bl);
    > - goto err_fbdev_unregister;
    > - }
    > -
    > - err = of_property_read_u32(node, "default-brightness-level",
    > - &dft_brightness);
    > - if (err) {
    > - dft_brightness = MAX_BRIGHTNESS;
    > - } else if (dft_brightness > MAX_BRIGHTNESS) {
    > - dev_warn(&client->dev,
    > - "invalid default brightness level: %u, using %u\n",
    > - dft_brightness, MAX_BRIGHTNESS);
    > - dft_brightness = MAX_BRIGHTNESS;
    > - }
    > -
    > - bl->props.brightness = dft_brightness;
    > - ht16k33_bl_update_status(bl);
    > -
    > ht16k33_fb_queue(priv);
    > return 0;

    \
     
     \ /
      Last update: 2021-09-29 16:21    [W:2.871 / U:1.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site