[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200309214822.GA19773@roeck-us.net>
Date: Mon, 9 Mar 2020 14:48:22 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: Guru Das Srinagesh <gurus@...eaurora.org>
Cc: linux-pwm@...r.kernel.org,
Thierry Reding <thierry.reding@...il.com>,
Uwe Kleine-König <uwe@...ine-koenig.org>,
Subbaraman Narayanamurthy <subbaram@...eaurora.org>,
linux-kernel@...r.kernel.org, Kamil Debski <kamil@...as.org>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>,
Jean Delvare <jdelvare@...e.com>,
Liam Girdwood <lgirdwood@...il.com>,
Mark Brown <broonie@...nel.org>, linux-hwmon@...r.kernel.org
Subject: Re: [PATCH v7 03/13] hwmon: pwm-fan: Use 64-bit division macros for
period and duty cycle
On Mon, Mar 09, 2020 at 12:35:06PM -0700, Guru Das Srinagesh wrote:
> Because period and duty cycle are defined in the PWM framework structs
> as ints with units of nanoseconds, the maximum time duration that can be
> set is limited to ~2.147 seconds. Redefining them as u64 values will
> enable larger time durations to be set.
>
> As a first step, prepare drivers to handle the switch to u64 period and
> duty_cycle by replacing division operations involving pwm period and duty cycle
> with their 64-bit equivalents as appropriate. The actual switch to u64 period
> and duty_cycle follows as a separate patch.
>
> Where the dividend is 64-bit but the divisor is 32-bit, use *_ULL
> macros:
> - DIV_ROUND_UP_ULL
> - DIV_ROUND_CLOSEST_ULL
> - div_u64
>
> Where the divisor is 64-bit (dividend may be 32-bit or 64-bit), use
> DIV64_* macros:
> - DIV64_U64_ROUND_CLOSEST
> - div64_u64
>
There is no explanation why this is necessary. What is the use case ?
It is hard to imagine a real-world use case with a duty cycle of more
than 2 seconds.
Guenter
Powered by blists - more mailing lists