public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] Fix clk_divider_bestdiv() to get max clk rate supported and add some kunit test suites
@ 2026-04-21 18:25 Prabhakar
  2026-04-21 18:25 ` [PATCH v3 1/2] clk: divider: Add KUnit tests for clk_divider_bestdiv() ULONG_MAX handling Prabhakar
  2026-04-21 18:25 ` [PATCH v3 2/2] clk: divider: Fix clk_divider_bestdiv() returning min rate for large rate requests Prabhakar
  0 siblings, 2 replies; 5+ messages in thread
From: Prabhakar @ 2026-04-21 18:25 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd, Brian Masney, Geert Uytterhoeven
  Cc: linux-kernel, linux-clk, Prabhakar, Biju Das, Fabrizio Castro,
	Lad Prabhakar

From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Hi all,

This patch series includes two patches. The first patch fixes the
clk_divider_bestdiv() function in clk-divider driver to return the
maximum clock rate supported by the divider when the requested rate
is larger than the parent clock rate. The second patch adds some
kunit test suites for clk-divider driver to verify the fix.

v2->v3:
- Added Rb tag
- Swapped the order of the patches
- Added the expected value in the fixup patch

v1->v2:
- Updated the patch#1 fixing review comments from Sashiko
- Added a new patch#2 to add some kunit test suites for clk-divider driver

# case 1: Without the fix
-------------------------
root@rzn2h-evk:~# modprobe clk-divider_test;modprobe -r clk-divider_test
[   28.584792] KTAP version 1
[   28.591070] 1..1
[   28.595258]     KTAP version 1
[   28.602327]     # Subtest: clk_divider_bestdiv
[   28.612609]     # module: clk_divider_test
[   28.612618]     1..2
[   28.627986]     ok 1 clk_divider_bestdiv_ulong_max_returns_max_rate​
[   28.628793]     ok 2 clk_divider_bestdiv_mux_ulong_max_returns_max_rate
[   28.643341] # clk_divider_bestdiv: pass:2 fail:0 skip:0 total:2
[   28.658389] # Totals: pass:2 fail:0 skip:0 total:2
[   28.672085] ok 1 clk_divider_bestdiv

# case 2: With the fix and no changes to Kunit test case
--------------------------------------------------------
root@rzn2h-evk:~# modprobe clk-divider_test;modprobe -r clk-divider_test
[   43.105680] KTAP version 1
[   43.108854] 1..1
[   43.110998]     KTAP version 1
[   43.114449]     # Subtest: clk_divider_bestdiv
[   43.119601]     # module: clk_divider_test
[   43.119609]     1..2
[   43.127192]     # clk_divider_bestdiv_ulong_max_returns_max_rate: EXPECTATION FAILED at drivers/clk/clk-divider_test.c:71
[   43.127192]     Expected rate == 1000000000UL / 8, but
[   43.127192]         rate == 500000000 (0x1dcd6500)
[   43.127192]         1000000000UL / 8 == 125000000 (0x7735940)
[   43.127578]     not ok 1 clk_divider_bestdiv_ulong_max_returns_max_rate
[   43.158547]     # clk_divider_bestdiv_mux_ulong_max_returns_max_rate: EXPECTATION FAILED at drivers/clk/clk-divider_test.c:141
[   43.158547]     Expected rate == 0, but
[   43.158547]         rate == 2000000000 (0x77359400)
[   43.189942]     not ok 2 clk_divider_bestdiv_mux_ulong_max_returns_max_rate
[   43.189953] # clk_divider_bestdiv: pass:0 fail:2 skip:0 total:2
[   43.197828] # Totals: pass:0 fail:2 skip:0 total:2
[   43.204592] not ok 1 clk_divider_bestdiv
root@rzn2h-evk:~#

# Case 3: With the fixes to core and Kunit test case
----------------------------------------------------
root@rzn2h-evk:~# modprobe clk-divider_test;modprobe -r clk-divider_test
[   21.006247] KTAP version 1
[   21.009423] 1..1
[   21.011565]     KTAP version 1
[   21.015135]     # Subtest: clk_divider_bestdiv
[   21.020189]     # module: clk_divider_test
[   21.020197]     1..2
[   21.028241]     ok 1 clk_divider_bestdiv_ulong_max_returns_max_rate
[   21.029020]     ok 2 clk_divider_bestdiv_mux_ulong_max_returns_max_rate
[   21.036313] # clk_divider_bestdiv: pass:2 fail:0 skip:0 total:2
[   21.043976] # Totals: pass:2 fail:0 skip:0 total:2
[   21.050732] ok 1 clk_divider_bestdiv

Cheers,
Prabhakar

Lad Prabhakar (2):
  clk: divider: Add KUnit tests for clk_divider_bestdiv() ULONG_MAX
    handling
  clk: divider: Fix clk_divider_bestdiv() returning min rate for large
    rate requests

 drivers/clk/Kconfig            |   8 ++
 drivers/clk/Makefile           |   1 +
 drivers/clk/clk-divider.c      |  25 ++++--
 drivers/clk/clk-divider_test.c | 158 +++++++++++++++++++++++++++++++++
 4 files changed, 184 insertions(+), 8 deletions(-)
 create mode 100644 drivers/clk/clk-divider_test.c

-- 
2.53.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-04-25 21:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-21 18:25 [PATCH v3 0/2] Fix clk_divider_bestdiv() to get max clk rate supported and add some kunit test suites Prabhakar
2026-04-21 18:25 ` [PATCH v3 1/2] clk: divider: Add KUnit tests for clk_divider_bestdiv() ULONG_MAX handling Prabhakar
2026-04-24 19:35   ` Brian Masney
2026-04-25 21:19     ` Lad, Prabhakar
2026-04-21 18:25 ` [PATCH v3 2/2] clk: divider: Fix clk_divider_bestdiv() returning min rate for large rate requests Prabhakar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox