2019-06-13 19:44:49

by Matthias Kaehlcke

[permalink] [raw]
Subject: [PATCH 3/4] backlight: pwm_bl: Set scale type for CIE 1931 curves

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 <[email protected]>
---
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,
--
2.22.0.rc2.383.gf4fbbf30c2-goog


2019-06-19 09:17:38

by Enric Balletbo i Serra

[permalink] [raw]
Subject: Re: [PATCH 3/4] backlight: pwm_bl: Set scale type for CIE 1931 curves

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 <[email protected]>

Tested on Samsung Chromebook Plus which uses the CIE 1931 algorithm.

Tested-by: Enric Balletbo i Serra <[email protected]>

> ---
> 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,
>

2019-06-21 12:56:23

by Daniel Thompson

[permalink] [raw]
Subject: Re: [PATCH 3/4] backlight: pwm_bl: Set scale type for CIE 1931 curves

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 <[email protected]>

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 <[email protected]>


> ---
> 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,
>

2019-06-27 09:27:32

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH 3/4] backlight: pwm_bl: Set scale type for CIE 1931 curves

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 <[email protected]>
>
> 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 <[email protected]>

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,
> >
>

--
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

2019-06-27 15:50:05

by Daniel Thompson

[permalink] [raw]
Subject: Re: [PATCH 3/4] backlight: pwm_bl: Set scale type for CIE 1931 curves

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 <[email protected]>
> >
> > 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 <[email protected]>
>
> 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