Message ID | 20190613194326.180889-4-mka@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | backlight: Expose brightness curve type through sysfs | expand |
Hi Matthias, On 13/6/19 21:43, Matthias Kaehlcke wrote: > For backlight curves calculated with the CIE 1931 algorithm set > the brightness scale type property accordingly. This makes the > scale type available to userspace via the 'scale' sysfs attribute. > > Signed-off-by: Matthias Kaehlcke <mka@chromium.org> Tested on Samsung Chromebook Plus which uses the CIE 1931 algorithm. Tested-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> > --- > drivers/video/backlight/pwm_bl.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c > index fb45f866b923..f067fe7aa35d 100644 > --- a/drivers/video/backlight/pwm_bl.c > +++ b/drivers/video/backlight/pwm_bl.c > @@ -553,6 +553,8 @@ static int pwm_backlight_probe(struct platform_device *pdev) > goto err_alloc; > } > > + memset(&props, 0, sizeof(struct backlight_properties)); > + > if (data->levels) { > /* > * For the DT case, only when brightness levels is defined > @@ -591,6 +593,8 @@ static int pwm_backlight_probe(struct platform_device *pdev) > > pb->levels = data->levels; > } > + > + props.scale = BACKLIGHT_SCALE_CIE1931; > } else { > /* > * That only happens for the non-DT case, where platform data > @@ -601,7 +605,6 @@ static int pwm_backlight_probe(struct platform_device *pdev) > > pb->lth_brightness = data->lth_brightness * (state.period / pb->scale); > > - memset(&props, 0, sizeof(struct backlight_properties)); > props.type = BACKLIGHT_RAW; > props.max_brightness = data->max_brightness; > bl = backlight_device_register(dev_name(&pdev->dev), &pdev->dev, pb, >
On 13/06/2019 20:43, Matthias Kaehlcke wrote: > For backlight curves calculated with the CIE 1931 algorithm set > the brightness scale type property accordingly. This makes the > scale type available to userspace via the 'scale' sysfs attribute. > > Signed-off-by: Matthias Kaehlcke <mka@chromium.org> I'd like to keep discussion on patch 2 open a bit longer (it's not part of the thread below patch 2 but Pavel had concerns about the sysfs interface) so this ack won't really push things forward but FWIW: Acked-by: Daniel Thompson <daniel.thompson@linaro.org> > --- > drivers/video/backlight/pwm_bl.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c > index fb45f866b923..f067fe7aa35d 100644 > --- a/drivers/video/backlight/pwm_bl.c > +++ b/drivers/video/backlight/pwm_bl.c > @@ -553,6 +553,8 @@ static int pwm_backlight_probe(struct platform_device *pdev) > goto err_alloc; > } > > + memset(&props, 0, sizeof(struct backlight_properties)); > + > if (data->levels) { > /* > * For the DT case, only when brightness levels is defined > @@ -591,6 +593,8 @@ static int pwm_backlight_probe(struct platform_device *pdev) > > pb->levels = data->levels; > } > + > + props.scale = BACKLIGHT_SCALE_CIE1931; > } else { > /* > * That only happens for the non-DT case, where platform data > @@ -601,7 +605,6 @@ static int pwm_backlight_probe(struct platform_device *pdev) > > pb->lth_brightness = data->lth_brightness * (state.period / pb->scale); > > - memset(&props, 0, sizeof(struct backlight_properties)); > props.type = BACKLIGHT_RAW; > props.max_brightness = data->max_brightness; > bl = backlight_device_register(dev_name(&pdev->dev), &pdev->dev, pb, >
On Fri, 21 Jun 2019, Daniel Thompson wrote: > On 13/06/2019 20:43, Matthias Kaehlcke wrote: > > For backlight curves calculated with the CIE 1931 algorithm set > > the brightness scale type property accordingly. This makes the > > scale type available to userspace via the 'scale' sysfs attribute. > > > > Signed-off-by: Matthias Kaehlcke <mka@chromium.org> > > I'd like to keep discussion on patch 2 open a bit longer (it's not part of > the thread below patch 2 but Pavel had concerns about the sysfs interface) > so this ack won't really push things forward but FWIW: > > Acked-by: Daniel Thompson <daniel.thompson@linaro.org> Does this depend on patch 2, or is it orthogonal? > > --- > > drivers/video/backlight/pwm_bl.c | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c > > index fb45f866b923..f067fe7aa35d 100644 > > --- a/drivers/video/backlight/pwm_bl.c > > +++ b/drivers/video/backlight/pwm_bl.c > > @@ -553,6 +553,8 @@ static int pwm_backlight_probe(struct platform_device *pdev) > > goto err_alloc; > > } > > + memset(&props, 0, sizeof(struct backlight_properties)); > > + > > if (data->levels) { > > /* > > * For the DT case, only when brightness levels is defined > > @@ -591,6 +593,8 @@ static int pwm_backlight_probe(struct platform_device *pdev) > > pb->levels = data->levels; > > } > > + > > + props.scale = BACKLIGHT_SCALE_CIE1931; > > } else { > > /* > > * That only happens for the non-DT case, where platform data > > @@ -601,7 +605,6 @@ static int pwm_backlight_probe(struct platform_device *pdev) > > pb->lth_brightness = data->lth_brightness * (state.period / pb->scale); > > - memset(&props, 0, sizeof(struct backlight_properties)); > > props.type = BACKLIGHT_RAW; > > props.max_brightness = data->max_brightness; > > bl = backlight_device_register(dev_name(&pdev->dev), &pdev->dev, pb, > > >
On Thu, Jun 27, 2019 at 10:24:53AM +0100, Lee Jones wrote: > On Fri, 21 Jun 2019, Daniel Thompson wrote: > > > On 13/06/2019 20:43, Matthias Kaehlcke wrote: > > > For backlight curves calculated with the CIE 1931 algorithm set > > > the brightness scale type property accordingly. This makes the > > > scale type available to userspace via the 'scale' sysfs attribute. > > > > > > Signed-off-by: Matthias Kaehlcke <mka@chromium.org> > > > > I'd like to keep discussion on patch 2 open a bit longer (it's not part of > > the thread below patch 2 but Pavel had concerns about the sysfs interface) > > so this ack won't really push things forward but FWIW: > > > > Acked-by: Daniel Thompson <daniel.thompson@linaro.org> > > Does this depend on patch 2, or is it orthogonal? IIRC it depends on patch 2 (since that't what introduces props.scale ). Daniel. > > > > --- > > > drivers/video/backlight/pwm_bl.c | 5 ++++- > > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c > > > index fb45f866b923..f067fe7aa35d 100644 > > > --- a/drivers/video/backlight/pwm_bl.c > > > +++ b/drivers/video/backlight/pwm_bl.c > > > @@ -553,6 +553,8 @@ static int pwm_backlight_probe(struct platform_device *pdev) > > > goto err_alloc; > > > } > > > + memset(&props, 0, sizeof(struct backlight_properties)); > > > + > > > if (data->levels) { > > > /* > > > * For the DT case, only when brightness levels is defined > > > @@ -591,6 +593,8 @@ static int pwm_backlight_probe(struct platform_device *pdev) > > > pb->levels = data->levels; > > > } > > > + > > > + props.scale = BACKLIGHT_SCALE_CIE1931; > > > } else { > > > /* > > > * That only happens for the non-DT case, where platform data > > > @@ -601,7 +605,6 @@ static int pwm_backlight_probe(struct platform_device *pdev) > > > pb->lth_brightness = data->lth_brightness * (state.period / pb->scale); > > > - memset(&props, 0, sizeof(struct backlight_properties)); > > > props.type = BACKLIGHT_RAW; > > > props.max_brightness = data->max_brightness; > > > bl = backlight_device_register(dev_name(&pdev->dev), &pdev->dev, pb, > > > > > > > -- > Lee Jones [李琼斯] > Linaro Services Technical Lead > Linaro.org │ Open source software for ARM SoCs > Follow Linaro: Facebook | Twitter | Blog
diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c index fb45f866b923..f067fe7aa35d 100644 --- a/drivers/video/backlight/pwm_bl.c +++ b/drivers/video/backlight/pwm_bl.c @@ -553,6 +553,8 @@ static int pwm_backlight_probe(struct platform_device *pdev) goto err_alloc; } + memset(&props, 0, sizeof(struct backlight_properties)); + if (data->levels) { /* * For the DT case, only when brightness levels is defined @@ -591,6 +593,8 @@ static int pwm_backlight_probe(struct platform_device *pdev) pb->levels = data->levels; } + + props.scale = BACKLIGHT_SCALE_CIE1931; } else { /* * That only happens for the non-DT case, where platform data @@ -601,7 +605,6 @@ static int pwm_backlight_probe(struct platform_device *pdev) pb->lth_brightness = data->lth_brightness * (state.period / pb->scale); - memset(&props, 0, sizeof(struct backlight_properties)); props.type = BACKLIGHT_RAW; props.max_brightness = data->max_brightness; bl = backlight_device_register(dev_name(&pdev->dev), &pdev->dev, pb,
For backlight curves calculated with the CIE 1931 algorithm set the brightness scale type property accordingly. This makes the scale type available to userspace via the 'scale' sysfs attribute. Signed-off-by: Matthias Kaehlcke <mka@chromium.org> --- drivers/video/backlight/pwm_bl.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)