'brightness' is usually an index into a table of duty_cycle values,
where the value at index 0 may well be non-zero
(tegra30-apalis-eval.dts and tegra30-colibri-eval-v3.dts are real-life
examples).
Thus brightness = 0 does not necessarily mean that the PWM output
will be inactive.
Check for 'duty_cycle = 0' rather than 'brightness = 0' to decide
whether to disable the PWM.
Signed-off-by: Lothar Waßmann <redacted>
---
drivers/video/backlight/pwm_bl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
From: Tomi Valkeinen <hidden> Date: 2016-06-06 12:02:40
Hi,
On 06/06/16 13:44, Lothar Waßmann wrote:
'brightness' is usually an index into a table of duty_cycle values,
where the value at index 0 may well be non-zero
(tegra30-apalis-eval.dts and tegra30-colibri-eval-v3.dts are real-life
examples).
Thus brightness == 0 does not necessarily mean that the PWM output
will be inactive.
Check for 'duty_cycle == 0' rather than 'brightness == 0' to decide
whether to disable the PWM.
The binding doc does say:
- brightness-levels: Array of distinct brightness levels. Typically these
are in the range from 0 to 255, but any range starting at 0 will do.
The actual brightness level (PWM duty cycle) will be interpolated
from these values. 0 means a 0% duty cycle (darkest/off), while the
last value in the array represents a 100% duty cycle (brightest).
Tomi
Hi,
On Mon, 6 Jun 2016 15:02:21 +0300 Tomi Valkeinen wrote:
Hi,
On 06/06/16 13:44, Lothar Waßmann wrote:
quoted
'brightness' is usually an index into a table of duty_cycle values,
where the value at index 0 may well be non-zero
(tegra30-apalis-eval.dts and tegra30-colibri-eval-v3.dts are real-life
examples).
Thus brightness = 0 does not necessarily mean that the PWM output
will be inactive.
Check for 'duty_cycle = 0' rather than 'brightness = 0' to decide
whether to disable the PWM.
The binding doc does say:
- brightness-levels: Array of distinct brightness levels. Typically these
are in the range from 0 to 255, but any range starting at 0 will do.
The actual brightness level (PWM duty cycle) will be interpolated
from these values. 0 means a 0% duty cycle (darkest/off), while the
last value in the array represents a 100% duty cycle (brightest).
So, what should I do, when I need a range of levels that doesn't start
at 0? E.g. if the brightness is inverse proportional to the PWM duty
cycle.
Lothar Waßmann
From: Tomi Valkeinen <hidden> Date: 2016-06-07 08:03:25
On 07/06/16 09:49, Lothar Waßmann wrote:
Hi,
On Mon, 6 Jun 2016 15:02:21 +0300 Tomi Valkeinen wrote:
quoted
Hi,
On 06/06/16 13:44, Lothar Waßmann wrote:
quoted
'brightness' is usually an index into a table of duty_cycle values,
where the value at index 0 may well be non-zero
(tegra30-apalis-eval.dts and tegra30-colibri-eval-v3.dts are real-life
examples).
Thus brightness == 0 does not necessarily mean that the PWM output
will be inactive.
Check for 'duty_cycle == 0' rather than 'brightness == 0' to decide
whether to disable the PWM.
The binding doc does say:
- brightness-levels: Array of distinct brightness levels. Typically these
are in the range from 0 to 255, but any range starting at 0 will do.
The actual brightness level (PWM duty cycle) will be interpolated
from these values. 0 means a 0% duty cycle (darkest/off), while the
last value in the array represents a 100% duty cycle (brightest).
So, what should I do, when I need a range of levels that doesn't start
at 0? E.g. if the brightness is inverse proportional to the PWM duty
cycle.
That's a question to the PWM/backlight maintainers, but I think in the
addition of your patch, the binding doc needs to be changed, as it
doesn't hold true after your patch.
Tomi