linux/include/kunit
Linus Torvalds 4517b5a6c8 Here's the clk changes for the merge window which is dominated in the diffstat
by Qualcomm churning out new SoCs that need clk drivers. Looking beyond the
 sheer amount of lines of mostly data there we have a clk nexus DT binding
 change in the core clk framework and a driver core patch to add a subsys driver
 macro. The clock nexus support is useful for devices that map clks internally
 or for connectors on a board that route clock signals to another board. I
 suspect the use of this will expand in the future, so we have unit tests to
 make sure it doesn't break. The driver core change adds subsys_driver() and
 subsys_platform_driver() so we can register early drivers without open-coding
 that all (module_platform_driver() is at device initcall level so it isn't be
 used).
 
 Beyond the core framework bits we have lots of changes all over the tree to
 initialize 'struct clk_init_data'. The potential risk here is that someone
 forgets to initialize all the members of that structure and either the clk
 flags cause weird behavior later on or the parents are pointing at junk and the
 clk is orphaned forever. The patches just initialize the thing with zeroes to
 be safe. Longer term we should probably move this struct out of 'struct clk_hw'
 and pass it during clk registration time. That's a much bigger change and would
 require restructuring entire drivers that rely on the pointer being there.
 
 Finally, we have the usual fixes like calculation updates for dividers,
 handling error paths during clk registration, or fixing clk data now that
 drivers are using them. Those patches are dwarfed by the amount of new SoC
 support and only affect those SoCs and the consumers of those clks. Overall I'm
 more concerned the clk_init_data patches are going to expose some latent bugs
 that we didn't notice before because something was relying on clks being
 orphaned and now they're not.
 
 Core:
  - subsys_driver() / subsys_platform_driver() macros
  - Clock nexus DT binding support (with KUnit tests)
  - Spread-spectrum configuration validation
  - Fully initialize struct clk_init_data across many drivers
 
 New Drivers:
  - Anlogic DR1V90 CRU
  - ZTE zx297520v3 top, matrix, and LSP clocks
  - Samsung Exynos5515 and ACPM driver extended to Exynos850.
  - Qualcomm Eliza camera, camera-BIST, GPU, and video clks
  - Qualcomm Hawi / Maili camera and GPU controllers
  - Qualcomm Kuno global, RPMh
  - Qualcomm MSM8952 global, RPM
  - Qualcomm Nord camera/video clocks, EMAC interconnect, PHY resets
  - Qualcomm IPQ5210 / IPQ9650 network clocks
  - i.MX93 350 MHz fractional-N GP-PLL for display
  - i.MX pll14xx spread-spectrum clock generation
  - Amlogic A9 SCMI clock controller
  - Allwinner single-divider "update bit" support
  - EN7523 Serdes port selection
 -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmri0R4UHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSWcAA//YrAnklSwDggOqJ3FwYZ8DHwXfcjU
 LQO4guUzlfNl3Lq4js1av5XetKtHk7ndtDxhbP6kLgFIZ+b2LbkPDEUOlxiPZ/47
 MjrveKqgXgEVk6yAl1S8HpmL0BMSO+GZsr61Mcha3kjEUfgen4cZDGzETgyaxniW
 cqIrP6IRa/Z60c6IydRyK+kN/317TGp/VKPcXudtecey5FB+WlpaUQV9ntiOGBZZ
 6icxy2O76v31XU/HJnb+IjTZ0Jc449rBDE+/T12OvoZ1z1Lv59mRgxJgZ0BwdMOP
 PoqTXLq6hby1IH37pCjSEp2X9qVhMsT9I40HM/Nn5uPZIvlDk6mZ4GXh0/sWZqC/
 yYaf9gVouORSKV3DTMSD/njtsNKANoo/aj08Gxfr+hJHrA/7ohehntpeKobWlk9K
 X+0uzT0N1h6PgqlmDHDv0MvYYzUnNif1PRuN+0JFrpvf5Y1cc6jCKdapYVvQtr6i
 NzOs7XG1IbigWPlccUTl3hn0Bs15dLhOVUrWo1c9aPF4vkGpPtyHib8nLdCerbuP
 7mICMzZ3PM76l9rl7VvO8wLNvBHBa+8f90jXE9Zz/0oyAj0fIdrNsXL6Nu+5usDA
 zT8T5Z2PfGgkx6TsftRmk0SZErROG0YakGRstSSSTYytHig0+JezVAH7NY26z7Dz
 Vcft0XmRGbL1jbU=
 =Vb8R
 -----END PGP SIGNATURE-----

Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux

Pull clk updates from Stephen Boyd:
 "Here's the clk changes for the merge window which is dominated in the
  diffstat by Qualcomm churning out new SoCs that need clk drivers.

  Looking beyond the sheer amount of lines of mostly data there we have
  a clk nexus DT binding change in the core clk framework and a driver
  core patch to add a subsys driver macro.

  The clock nexus support is useful for devices that map clks internally
  or for connectors on a board that route clock signals to another
  board. I suspect the use of this will expand in the future, so we have
  unit tests to make sure it doesn't break.

  The driver core change adds subsys_driver() and
  subsys_platform_driver() so we can register early drivers without
  open-coding that all (module_platform_driver() is at device initcall
  level so it isn't be used).

  Beyond the core framework bits we have lots of changes all over the
  tree to initialize 'struct clk_init_data'. The potential risk here is
  that someone forgets to initialize all the members of that structure
  and either the clk flags cause weird behavior later on or the parents
  are pointing at junk and the clk is orphaned forever. The patches just
  initialize the thing with zeroes to be safe. Longer term we should
  probably move this struct out of 'struct clk_hw' and pass it during
  clk registration time. That's a much bigger change and would require
  restructuring entire drivers that rely on the pointer being there.

  Finally, we have the usual fixes like calculation updates for
  dividers, handling error paths during clk registration, or fixing clk
  data now that drivers are using them. Those patches are dwarfed by the
  amount of new SoC support and only affect those SoCs and the consumers
  of those clks. Overall I'm more concerned the clk_init_data patches
  are going to expose some latent bugs that we didn't notice before
  because something was relying on clks being orphaned and now they're
  not.

  Core:
   - subsys_driver() / subsys_platform_driver() macros
   - Clock nexus DT binding support (with KUnit tests)
   - Spread-spectrum configuration validation
   - Fully initialize struct clk_init_data across many drivers

  New Drivers:
   - Anlogic DR1V90 CRU
   - ZTE zx297520v3 top, matrix, and LSP clocks
   - Samsung Exynos5515 and ACPM driver extended to Exynos850.
   - Qualcomm Eliza camera, camera-BIST, GPU, and video clks
   - Qualcomm Hawi / Maili camera and GPU controllers
   - Qualcomm Kuno global, RPMh
   - Qualcomm MSM8952 global, RPM
   - Qualcomm Nord camera/video clocks, EMAC interconnect, PHY resets
   - Qualcomm IPQ5210 / IPQ9650 network clocks
   - i.MX93 350 MHz fractional-N GP-PLL for display
   - i.MX pll14xx spread-spectrum clock generation
   - Amlogic A9 SCMI clock controller
   - Allwinner single-divider "update bit" support
   - EN7523 Serdes port selection"

* tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (316 commits)
  clk: imx: pll14xx: support spread spectrum clock generation
  clk: cdce925: Size the PLL child name buffer for any int
  clk: stm32: fix clock array size for STM32MP21
  dt-bindings: clock: Convert HiSilicon clocks to DT schema
  clk: lmk04832: Handle reset GPIO lookup errors
  dt-bindings: clock: anlogic,dr1v90-cru: make external clocks optional
  clk: tegra: bpmp: remove kcalloc
  clk: mmp2-audio: add missing PM_CLK dependency
  clk: zte: Introduce a driver for zx297520v3 LSP clocks
  clk: zte: Introduce a driver for zx297520v3 matrix clocks
  clk: zte: Introduce a driver for zx297520v3 top clocks
  clk: zte: Add zx PLL support infrastructure
  clk: zte: Add regmap-based clocks
  clk: zte: Add Clock registration infrastructure
  dt-bindings: clk: zte: Add zx297520v3 LSP clock and reset controller
  dt-bindings: clk: zte: Add zx297520v3 matrix clock and reset controller
  dt-bindings: clk: zte: Add zx297520v3 top clock and reset controller
  clk: nuvoton: ma35d1: Add missing WDT/WWDT parent clocks
  dt-bindings: clock: ma35d1: Add missing WDT/WWDT parent clocks
  dt-bindings: clock: ma35d1: Drop CLK_MAX_IDX define
  ...
2026-10-30 06:18:43 -10:00
..
assert.h kunit: Rename KUNIT_ASSERT_FAILURE to KUNIT_FAIL_AND_ABORT for readability 2024-07-12 10:12:05 -06:00
attributes.h kunit: Add ability to filter attributes 2023-07-26 13:29:15 -06:00
clk.h clk: tests: Add Kunit testing for nexus nodes 2026-09-03 14:03:09 -04:00
device.h kunit: Add APIs for managing devices 2023-12-18 13:28:08 -07:00
fwnode.h kunit: provide a set of fwnode-oriented helpers 2026-07-15 17:47:16 +02:00
of.h of: kunit: Extract some overlay boiler plate into macros 2024-10-09 16:25:32 -07:00
platform_device.h kunit: provide kunit_platform_device_unregister() 2026-05-26 11:19:54 +02:00
resource.h treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
run-in-irq-context.h kunit: irq: Unregister on-stack timer and work from debugobjects 2026-08-10 20:17:56 -07:00
skbuff.h kunit: skb: add gfp to kernel doc for kunit_zalloc_skb() 2024-11-19 14:52:17 -07:00
static_stub.h kunit: Allow passing function pointer to kunit_activate_static_stub() 2024-01-03 09:06:52 -07:00
test-bug.h bug/kunit: Core support for suppressing warning backtraces 2026-05-14 10:50:00 -06:00
test.h kunit: Return void from kunit_run_all_tests() 2026-09-02 09:19:48 -06:00
try-catch.h kunit: Adjust kunit_test timeout based on test_{suite,case} speed 2025-06-24 20:47:39 -06:00
visibility.h module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00