[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aKMX_c3gvYc6E3DT@xhacker>
Date: Mon, 18 Aug 2025 20:09:33 +0800
From: Jisheng Zhang <jszhang@...nel.org>
To: Uwe Kleine-König <ukleinek@...nel.org>
Cc: linux-pwm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] pwm: berlin: Fix wrong register in suspend/resume
On Sun, Aug 17, 2025 at 12:52:01PM +0200, Uwe Kleine-König wrote:
> Hello,
Hi,
>
> On Fri, Aug 15, 2025 at 11:10:16AM +0800, Jisheng Zhang wrote:
> > The 'enable' register should be BERLIN_PWM_EN rather than
> > BERLIN_PWM_ENABLE.
> >
> > Fixes: bbf0722c1c66 ("pwm: berlin: Add suspend/resume support")
> > Signed-off-by: Jisheng Zhang <jszhang@...nel.org>
> > ---
> > drivers/pwm/pwm-berlin.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/pwm/pwm-berlin.c b/drivers/pwm/pwm-berlin.c
> > index 831aed228caf..858d36991374 100644
> > --- a/drivers/pwm/pwm-berlin.c
> > +++ b/drivers/pwm/pwm-berlin.c
> > @@ -234,7 +234,7 @@ static int berlin_pwm_suspend(struct device *dev)
> > for (i = 0; i < chip->npwm; i++) {
> > struct berlin_pwm_channel *channel = &bpc->channel[i];
> >
> > - channel->enable = berlin_pwm_readl(bpc, i, BERLIN_PWM_ENABLE);
> > + channel->enable = berlin_pwm_readl(bpc, i, BERLIN_PWM_EN);
>
> BERLIN_PWM_ENABLE is 1 and BERLIN_PWM_EN is 0. What is the effect? Is
> the low bit just ignored and the right thing happens? Or does this
operate the wrong address then kernel panic
> result in a bus exception and the machine catches fire?
Yep, cpu exception then kernel panic.
>
> If it's more the latter than the former, I wonder how that didn't pop up
> earlier.
This bug has been fixed in vendor's repo for a long time, it's just
because we didn't upstream the fix.
Thanks
Powered by blists - more mailing lists