diff mbox series

Revert "pwm: jz4740: Enhance precision in calculation of duty cycle"

Message ID 9335b924318fb36a882d5b46e8e9f2a10bb24daa.1594365885.git.hns@goldelico.com
State Superseded
Headers show
Series Revert "pwm: jz4740: Enhance precision in calculation of duty cycle" | expand

Commit Message

H. Nikolaus Schaller July 10, 2020, 7:24 a.m. UTC
This reverts commit a6030d71e62d3e0e270bf3b7fb48d32a636732db.

which was applied to v5.4.49. This ends in a compile issue:

  CC      drivers/pwm/pwm-jz4740.o - due to target missing
drivers/pwm/pwm-jz4740.c: In function 'jz4740_pwm_apply':
drivers/pwm/pwm-jz4740.c:111:28: error: 'rate' undeclared (first use in this function)
  tmp = (unsigned long long)rate * state->duty_cycle;
                            ^
drivers/pwm/pwm-jz4740.c:111:28: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [drivers/pwm/pwm-jz4740.o] Error 1

v5.5 and later include the required additional patches to define
the rate variable.

Fixes: a6030d71e62d ("pwm: jz4740: Enhance precision in calculation of duty cycle")
Cc: stable@vger.kernel.org # v5.4.49
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
---
 drivers/pwm/pwm-jz4740.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Uwe Kleine-König July 10, 2020, 10:18 a.m. UTC | #1
On Fri, Jul 10, 2020 at 09:24:45AM +0200, H. Nikolaus Schaller wrote:
> This reverts commit a6030d71e62d3e0e270bf3b7fb48d32a636732db.
> 
> which was applied to v5.4.49. This ends in a compile issue:
> 
>   CC      drivers/pwm/pwm-jz4740.o - due to target missing
> drivers/pwm/pwm-jz4740.c: In function 'jz4740_pwm_apply':
> drivers/pwm/pwm-jz4740.c:111:28: error: 'rate' undeclared (first use in this function)
>   tmp = (unsigned long long)rate * state->duty_cycle;
>                             ^
> drivers/pwm/pwm-jz4740.c:111:28: note: each undeclared identifier is reported only once for each function it appears in
> make[4]: *** [drivers/pwm/pwm-jz4740.o] Error 1
> 
> v5.5 and later include the required additional patches to define
> the rate variable.

So 9017dc4fbd59 ("pwm: jz4740: Enhance precision in calculation of duty
cycle") which is in v5.8-rc1 was backported to stable:

	v5.4.49 (as commit a6030d71e62d3e0e270bf3b7fb48d32a636732db)
	v5.7.5 (as commit e0e71bb7852142a18fb829da419013bb6da9ed3f)

However 9017dc4fbd59 depends on

	ce1f9cece057 ("pwm: jz4740: Use clocks from TCU driver")

(which in mainline comes before 9017dc4fbd59 as it's included in
v5.7-rc1).

As ce1f9cece057 was not backported to v5.4.x, this must either be done, or
we need to patch that. Will reply with a suggested change.

In v5.7.x there is no problem.

Best regards
Uwe
H. Nikolaus Schaller July 10, 2020, 10:46 a.m. UTC | #2
> Am 10.07.2020 um 12:18 schrieb Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
> 
> On Fri, Jul 10, 2020 at 09:24:45AM +0200, H. Nikolaus Schaller wrote:
>> This reverts commit a6030d71e62d3e0e270bf3b7fb48d32a636732db.
>> 
>> which was applied to v5.4.49. This ends in a compile issue:
>> 
>>  CC      drivers/pwm/pwm-jz4740.o - due to target missing
>> drivers/pwm/pwm-jz4740.c: In function 'jz4740_pwm_apply':
>> drivers/pwm/pwm-jz4740.c:111:28: error: 'rate' undeclared (first use in this function)
>>  tmp = (unsigned long long)rate * state->duty_cycle;
>>                            ^
>> drivers/pwm/pwm-jz4740.c:111:28: note: each undeclared identifier is reported only once for each function it appears in
>> make[4]: *** [drivers/pwm/pwm-jz4740.o] Error 1
>> 
>> v5.5 and later include the required additional patches to define
>> the rate variable.
> 
> So 9017dc4fbd59 ("pwm: jz4740: Enhance precision in calculation of duty
> cycle") which is in v5.8-rc1 was backported to stable:
> 
> 	v5.4.49 (as commit a6030d71e62d3e0e270bf3b7fb48d32a636732db)
> 	v5.7.5 (as commit e0e71bb7852142a18fb829da419013bb6da9ed3f)
> 
> However 9017dc4fbd59 depends on
> 
> 	ce1f9cece057 ("pwm: jz4740: Use clocks from TCU driver")
> 
> (which in mainline comes before 9017dc4fbd59 as it's included in
> v5.7-rc1).
> 
> As ce1f9cece057 was not backported to v5.4.x, this must either be done, or
> we need to patch that. Will reply with a suggested change.

That is what I did suspect that some other patch this one depends on
was not backported.

What the better strategy (backport missing parts or revert) depends
on how easy it is to backport to v5.4.y.

I am happy with either solution. It is just simpler for me to post
my workaround for the compile issue.

> 
> In v5.7.x there is no problem.

In v5.5 and v5.6 there is also no problem. Just v5.4 starting with v5.4.49.

BR and thanks,
Nikolaus
diff mbox series

Patch

diff --git a/drivers/pwm/pwm-jz4740.c b/drivers/pwm/pwm-jz4740.c
index d0f5c69930d0d9..9d78cc21cb1279 100644
--- a/drivers/pwm/pwm-jz4740.c
+++ b/drivers/pwm/pwm-jz4740.c
@@ -108,8 +108,8 @@  static int jz4740_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
 	if (prescaler == 6)
 		return -EINVAL;
 
-	tmp = (unsigned long long)rate * state->duty_cycle;
-	do_div(tmp, NSEC_PER_SEC);
+	tmp = (unsigned long long)period * state->duty_cycle;
+	do_div(tmp, state->period);
 	duty = period - tmp;
 
 	if (duty >= period)