From: Guru Das Srinagesh <hidden> Date: 2020-03-09 19:35:31
Because period and duty cycle are defined in the PWM framework structs
as ints with units of nanoseconds, the maximum time duration that can be
set is limited to ~2.147 seconds. Redefining them as u64 values will
enable larger time durations to be set.
As a first step, prepare drivers to handle the switch to u64 period and
duty_cycle by replacing division operations involving pwm period and duty cycle
with their 64-bit equivalents as appropriate. The actual switch to u64 period
and duty_cycle follows as a separate patch.
Where the dividend is 64-bit but the divisor is 32-bit, use *_ULL
macros:
- DIV_ROUND_UP_ULL
- DIV_ROUND_CLOSEST_ULL
- div_u64
Where the divisor is 64-bit (dividend may be 32-bit or 64-bit), use
DIV64_* macros:
- DIV64_U64_ROUND_CLOSEST
- div64_u64
Cc: Lee Jones <redacted>
Cc: Daniel Thompson <redacted>
Cc: Jingoo Han <jingoohan1@gmail.com>
Cc: Bartlomiej Zolnierkiewicz <redacted>
Cc: linux-pwm@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Guru Das Srinagesh <redacted>
---
drivers/video/backlight/pwm_bl.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
From: Daniel Thompson <hidden> Date: 2020-03-10 14:34:39
On Mon, Mar 09, 2020 at 12:35:15PM -0700, Guru Das Srinagesh wrote:
Because period and duty cycle are defined in the PWM framework structs
as ints with units of nanoseconds, the maximum time duration that can be
set is limited to ~2.147 seconds. Redefining them as u64 values will
enable larger time durations to be set.
As a first step, prepare drivers to handle the switch to u64 period and
duty_cycle by replacing division operations involving pwm period and duty cycle
with their 64-bit equivalents as appropriate. The actual switch to u64 period
and duty_cycle follows as a separate patch.
Where the dividend is 64-bit but the divisor is 32-bit, use *_ULL
macros:
- DIV_ROUND_UP_ULL
- DIV_ROUND_CLOSEST_ULL
- div_u64
Where the divisor is 64-bit (dividend may be 32-bit or 64-bit), use
DIV64_* macros:
- DIV64_U64_ROUND_CLOSEST
- div64_u64
This patch looks like it is a tiny change to get the pwm_backlight to
perform 64-bit division. Most of the above text is completely irrelevant
to the change contained in this patch. No need to justify the change in
the PWM structures here since that can go in the patch that changes
those structures. Just describe what this patch does, perhaps something
like the following:
The PWM API will shortly switch the state.period and
state.duty_cycle fields to 64-bit values. Make pwm_bl
ready for this transition by adopting 64-bit division
macros.
Also please copy the backlight maintainers into the covering letter. It
is useful to place patches like this into context.
Daniel.
quoted hunk
Cc: Lee Jones <redacted>
Cc: Daniel Thompson <redacted>
Cc: Jingoo Han <jingoohan1@gmail.com>
Cc: Bartlomiej Zolnierkiewicz <redacted>
Cc: linux-pwm@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Guru Das Srinagesh <redacted>
---
drivers/video/backlight/pwm_bl.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
From: Guru Das Srinagesh <hidden> Date: 2020-03-10 18:12:45
On Tue, Mar 10, 2020 at 02:34:32PM +0000, Daniel Thompson wrote:
This patch looks like it is a tiny change to get the pwm_backlight to
perform 64-bit division. Most of the above text is completely irrelevant
to the change contained in this patch. No need to justify the change in
the PWM structures here since that can go in the patch that changes
those structures. Just describe what this patch does, perhaps something
like the following:
The PWM API will shortly switch the state.period and
state.duty_cycle fields to 64-bit values. Make pwm_bl
ready for this transition by adopting 64-bit division
macros.
Will update the commit text accordingly.
Also please copy the backlight maintainers into the covering letter. It
is useful to place patches like this into context.