On Tue, 21 Apr 2020, Guru Das Srinagesh wrote: > [REQUEST] > > Would it be possible for the patches that have already received Acked-by's in > this series to be accepted and applied to the tree? I lost an Acked-by (in > intel-panel.c) because it had a merge conflict with a new change that came in > after I rebased to tip. I wasn't sure earlier about accepting single patches as > opposed to the entire series en masse, but this event has got me thinking. > > [COVER LETTER] > > 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. Consequently, applications desiring to set greater time > periods via the PWM framework are not be able to do so - like, for instance, > causing an LED to blink at an interval of 5 seconds. > > Redefining the period and duty cycle struct members in the core PWM framework > structs as u64 values will enable larger time durations to be set and solve > this problem. Such a change to the framework mandates that drivers using these > struct members (and corresponding helper functions) also be modified correctly > in order to prevent compilation errors. > > This patch series introduces the changes to all the drivers first, followed by > the framework change at the very end so that when the latter is applied, all > the drivers are in good shape and there are no compilation errors. > > Changes from v12: > - Rebased to tip of for-next > - Collected Acked-by for sun4i > - Reworked patch for intel-panel.c due to rebase, dropped Jani's Acked-by as > a result > > Changes from v11: > - Rebased to tip of for-next. > - Collected "Acked-by:" for v7 (unchanged) of pwm: sifive: [4] > - Squished stm32-lp.c change with final patch in series > - sun4i: Used nsecs_to_jiffies() > - imx27: Added overflow handling logic > - clps711x: Corrected the if condition for skipping the division > - clk: pwm: Reverted to v8 version, added check to prevent division-by-zero > > Changes from v10: > - Carefully added back all the "Reviewed-by: " and "Acked-by: " tags received > so far that had gotten missed in v9. No other changes. > > Changes from v9: > - Gathered the received "Reviewed-by: " tag > - Added back the clk-pwm.c patch because kbuild test robot complained [3] > and addressed received review comments. > - clps711x: Addressed review comments. > > Changes from v8: > - Gathered all received "Acked-by: " and "Reviewed-by: " tags > - Dropped patch to clk-pwm.c for reasons mentiond in [2] > - Expanded audience of unreviewed patches > > Changes from v7: > - Changed commit messages of all patches to be brief and to the point. > - Added explanation of change in cover letter. > - Dropped change to pwm-sti.c as upon review it was unnecessary as struct > pwm_capture is not being modified in the PWM core. > > Changes from v6: > - Split out the driver changes out into separate patches, one patch per file > for ease of reviewing. > > Changes from v5: > - Dropped the conversion of struct pwm_capture to u64 for reasons mentioned > in https://www.spinics.net/lists/linux-pwm/msg11541.html > > Changes from v4: > - Split the patch into two: one for changes to the drivers, and the actual > switch to u64 for ease of reverting should the need arise. > - Re-examined the patch and made the following corrections: > * intel_panel.c: > DIV64_U64_ROUND_UP -> DIV_ROUND_UP_ULL (as only the numerator would be > 64-bit in this case). > * pwm-sti.c: > do_div -> div_u64 (do_div is optimized only for x86 architectures, and > div_u64's comment block suggests to use this as much as possible). > > Changes from v3: > - Rebased to current tip of for-next. > > Changes from v2: > - Fixed %u -> %llu in a dev_dbg in pwm-stm32-lp.c, thanks to kbuild test robot > - Added a couple of fixes to pwm-imx-tpm.c and pwm-sifive.c > > Changes from v1: > - Fixed compilation errors seen when compiling for different archs. > > v1: > - Reworked the change pushed upstream earlier [1] so as to not add an > extension to an obsolete API. With this change, pwm_ops->apply() can be > used to set pwm_state parameters as usual. > > [1] https://lore.kernel.org/lkml/20190916140048.GB7488@ulmo/ > [2] https://lore.kernel.org/lkml/20200312190859.GA19605@xxxxxxxxxxxxxx/ > [3] https://www.spinics.net/lists/linux-pwm/msg11906.html > [4] https://www.spinics.net/lists/linux-pwm/msg11986.html > > To: Arnd Bergmann <arnd@xxxxxxxx> > To: David Laight <David.Laight@xxxxxxxxxx> > To: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> > Cc: Alexander Shiyan <shc_work@xxxxxxx> > Cc: Alexandre Torgue <alexandre.torgue@xxxxxx> > Cc: Allison Randal <allison@xxxxxxxxxxx> > Cc: Arnd Bergmann <arnd@xxxxxxxx> > Cc: Atish Patra <atish.patra@xxxxxxx> > Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx> > Cc: Chen-Yu Tsai <wens@xxxxxxxx> > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Cc: Daniel Thompson <daniel.thompson@xxxxxxxxxx> > Cc: Daniel Vetter <daniel@xxxxxxxx> > Cc: David Airlie <airlied@xxxxxxxx> > Cc: David Collins <collinsd@xxxxxxxxxxxxxx> > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > Cc: Fabio Estevam <festevam@xxxxxxxxx> > Cc: Fabrice Gasnier <fabrice.gasnier@xxxxxx> > Cc: Guenter Roeck <linux@xxxxxxxxxxxx> > Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Jean Delvare <jdelvare@xxxxxxxx> > Cc: Jingoo Han <jingoohan1@xxxxxxxxx> > Cc: Joe Perches <joe@xxxxxxxxxxx> > Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> > Cc: Kamil Debski <kamil@xxxxxxxxx> > Cc: Kate Stewart <kstewart@xxxxxxxxxxxxxxxxxxx> > Cc: Lee Jones <lee.jones@xxxxxxxxxx> > Cc: Liam Girdwood <lgirdwood@xxxxxxxxx> > Cc: linux-clk@xxxxxxxxxxxxxxx > Cc: linux-fbdev@xxxxxxxxxxxxxxx > Cc: linux-hwmon@xxxxxxxxxxxxxxx > Cc: linux-media@xxxxxxxxxxxxxxx > Cc: linux-pwm@xxxxxxxxxxxxxxx > Cc: linux-riscv@xxxxxxxxxxxxxxxxxxx > Cc: Mark Brown <broonie@xxxxxxxxxx> > Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> > Cc: Maxime Coquelin <mcoquelin.stm32@xxxxxxxxx> > Cc: Maxime Ripard <mripard@xxxxxxxxxx> > Cc: Michael Turquette <mturquette@xxxxxxxxxxxx> > Cc: NXP Linux Team <linux-imx@xxxxxxx> > Cc: Palmer Dabbelt <palmer@xxxxxxxxxxx> > Cc: Paul Walmsley <paul.walmsley@xxxxxxxxxx> > Cc: Pengutronix Kernel Team <kernel@xxxxxxxxxxxxxx> > Cc: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> > Cc: Richard Fontana <rfontana@xxxxxxxxxx> > Cc: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> > Cc: Shawn Guo <shawnguo@xxxxxxxxxx> > Cc: Stephen Boyd <sboyd@xxxxxxxxxx> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: "Ville Syrjälä" <ville.syrjala@xxxxxxxxxxxxxxx> > Cc: Yash Shah <yash.shah@xxxxxxxxxx> > > Guru Das Srinagesh (11): > drm/i915: Use 64-bit division macro > hwmon: pwm-fan: Use 64-bit division macro > ir-rx51: Use 64-bit division macro > pwm: clps711x: Cast period to u32 before use as divisor > pwm: pwm-imx-tpm: Use 64-bit division macro > pwm: imx27: Use 64-bit division macro and function > pwm: sifive: Use 64-bit division macro > pwm: sun4i: Use nsecs_to_jiffies to avoid a division > backlight: pwm_bl: Use 64-bit division function > clk: pwm: Use 64-bit division function > pwm: core: Convert period and duty cycle to u64 > > drivers/clk/clk-pwm.c | 7 +++- > drivers/gpu/drm/i915/display/intel_panel.c | 2 +- > drivers/hwmon/pwm-fan.c | 2 +- > drivers/media/rc/ir-rx51.c | 3 +- > drivers/pwm/core.c | 14 ++++---- > drivers/pwm/pwm-clps711x.c | 5 ++- > drivers/pwm/pwm-imx-tpm.c | 2 +- > drivers/pwm/pwm-imx27.c | 53 +++++++++++++++++++++++++----- > drivers/pwm/pwm-sifive.c | 2 +- > drivers/pwm/pwm-stm32-lp.c | 2 +- > drivers/pwm/pwm-sun4i.c | 2 +- > drivers/pwm/sysfs.c | 8 ++--- > drivers/video/backlight/pwm_bl.c | 3 +- Acked-by: Lee Jones <lee.jones@xxxxxxxxxx> > include/linux/pwm.h | 12 +++---- > 14 files changed, 82 insertions(+), 35 deletions(-) -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel