Message ID | 9335b924318fb36a882d5b46e8e9f2a10bb24daa.1594365885.git.hns@goldelico.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | Revert "pwm: jz4740: Enhance precision in calculation of duty cycle" | expand |
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
> 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 --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)
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(-)