[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <685ba7d9.df0a0220.e1b22.e6c2@mx.google.com>
Date: Wed, 25 Jun 2025 09:40:07 +0200
From: Christian Marangi <ansuelsmth@...il.com>
To: Uwe Kleine-König <ukleinek@...nel.org>
Cc: linux-kernel@...r.kernel.org, linux-pwm@...r.kernel.org,
Andy Shevchenko <andriy.shevchenko@...el.com>,
Benjamin Larsson <benjamin.larsson@...exis.eu>,
AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>,
Lorenzo Bianconi <lorenzo@...nel.org>
Subject: Re: [PATCH v16 2/2] pwm: airoha: Add support for EN7581 SoC
On Wed, Jun 25, 2025 at 09:24:33AM +0200, Uwe Kleine-König wrote:
> Hello Christian,
>
> On Wed, Jun 25, 2025 at 02:00:39AM +0200, Christian Marangi wrote:
> > + /*
> > + * Period goes at 4ns step, normalize it to check if we can
> > + * share a generator.
> > + */
> > + period_ns = rounddown_u64(period_ns, AIROHA_PWM_PERIOD_TICK_NS);
>
> I don't understand why you need that. If you clamp to
> AIROHA_PWM_PERIOD_MAX_NS first, you don't need the (expensive) 64-bit
> operation. If you compare using ticks instead of ns you don't even need
> to round down, but just do the division that you end up doing anyhow.
>
Correct me if I'm wrong but
#define NSEC_PER_SEC 1000000000L
#define AIROHA_PWM_PERIOD_MAX_NS (1 * NSEC_PER_SEC)
doesn't fit u32 so an u64 is needed.
And using ns until the apply process is handy for bucket sharing. I can
change it to reference ticks but I think the round is necessary.
You want to change everything to reference tick? (honestly this is a
good chance to introduce this missing API, since I feel also other might
benefits from this)
--
Ansuel
Powered by blists - more mailing lists