[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <D8Z4GLQZGKKS.37TDZ7QBN4V4N@bootlin.com>
Date: Sun, 06 Apr 2025 02:16:41 +0200
From: "Thomas Bonnefille" <thomas.bonnefille@...tlin.com>
To: Uwe Kleine-König <ukleinek@...nel.org>, "Jingbao Qiu"
<qiujingbao.dlmu@...il.com>
Cc: <robh@...nel.org>, <krzk+dt@...nel.org>, <conor+dt@...nel.org>,
<unicorn_wang@...look.com>, <dlan@...too.org>, <linux-pwm@...r.kernel.org>,
<devicetree@...r.kernel.org>, <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v7 2/2] pwm: sophgo: add pwm support for Sophgo CV1800
SoC
Hello,
On Sat Jun 1, 2024 at 1:53 PM CEST, Uwe Kleine-König wrote:
> On Wed, May 01, 2024 at 04:32:42PM +0800, Jingbao Qiu wrote:
>> [...]
>> + if ((state & BIT(pwm->hwpwm)) && enable)
>> + regmap_update_bits(priv->map, PWM_CV1800_OE,
>> + PWM_CV1800_OE_MASK(pwm->hwpwm),
>> + PWM_CV1800_REG_ENABLE(pwm->hwpwm));
>
> This looks strange. If BIT(hwpwm) is already set, set it again?!
> Also if you used the caching implemented in regmap, you don't need to
> make this conditional.
>
I was testing the series and noticed indeed an issue in this driver at
those lines. If PWM_CV1800_OE isn't set by something else than the
kernel it will never be set and so, there will never be a PWM outputted.
Using :
if (!(state & BIT(pwm->hwpwm)) && enable)
Solved the issue but as Uwe said you can probably rely on regmap caching
to avoid this condition.
>
> ...
>
Do you plan on sending a new iteration some day ? I may have some time
to continue the upstreaming process if you need to.
Thank you for this series !
Thomas
Powered by blists - more mailing lists