Commit graph

1,481,701 commits

Author SHA1 Message Date
Ulf Hansson
3ca7b513ae pmdomain: Merge branch fixes into next
Merge the pmdomain fixes for v7.2-rc[n] into the next branch, to allow
them to get tested together with the pmdomain changes that are targeted
for the next release.

Signed-off-by: Ulf Hansson <ulfh@kernel.org>
2026-08-12 11:12:00 +02:00
Karl Mehltretter
090a95dbe1 pmdomain: mediatek: mfg: initialize prev_o in mtk_mfg_attach_dev()
mtk_mfg_attach_dev() reads prev_o on the first iteration of its loop,
in "if (prev_o && prev_o->freq == o->freq)", before prev_o is assigned
at the end of the loop body. On that first iteration, evaluating prev_o
reads an indeterminate value. If it is non-NULL, the condition
dereferences a stale or invalid pointer, potentially faulting or
incorrectly skipping the first OPP.

Initialize prev_o to NULL. This matches the intent as well: there is no
previous OPP to compare against on the first iteration.

Found with Clang's -Wconditional-uninitialized.

Fixes: f08e7a4e8d ("pmdomain: mediatek: Add support for MFlexGraphics")
Assisted-by: Claude:claude-fable-5
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
Reviewed-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulfh@kernel.org>
2026-08-12 11:09:12 +02:00
Geert Uytterhoeven
9f79f93963 pmdomain: renesas: Add R-Car X5H MDLC driver
Add a minimal Module Controller driver for the R-Car X5H (R8A78000) SoC.
For now this just supports the always-on power domains, and dummy module
clocks and resets for the serial console (which is enabled by the boot
loader).

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Ulf Hansson <ulfh@kernel.org>
2026-08-12 11:05:43 +02:00
Pinkesh Vaghela
d86dadc6fe dt-bindings: mfd: syscon: Add ESWIN EIC7700 compatible
Document ESWIN EIC7700 SoC compatible for syscon registers.

Signed-off-by: Pinkesh Vaghela <pinkesh.vaghela@einfochips.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20260804104431.1391839-5-pinkesh.vaghela@einfochips.com
Signed-off-by: Lee Jones <lee@kernel.org>
2026-08-12 09:11:44 +01:00
Ali Ahmet Memis
47504742ce mfd: qnap-mcu: keep the reply buffer alive past a command timeout
qnap_mcu_exec() publishes an on-stack buffer to the receive path:

	unsigned char rx[QNAP_MCU_RX_BUFFER_SIZE];
	...
	reply->data = rx;
	reply->length = length;

and qnap_mcu_receive_buf() writes into it from the serdev receive path,
which runs out of flush_to_ldisc() and is not serialized against
qnap_mcu_exec() at all. bus_lock cannot cover it, because qnap_mcu_exec()
holds that mutex across wait_for_completion_timeout().

On a timeout qnap_mcu_exec() returns with reply->data still pointing at
its own frame. A reply that arrives late, or an unsolicited message from
the MCU, is then written into a stack frame that has been left, corrupting
whatever runs next on that stack. The same applies when qnap_mcu_write()
fails, since that path returns without touching the reply state either.

Move the receive buffer into struct qnap_mcu. It is 37 bytes and the
structure is devm_kzalloc()ed, so it lives as long as the driver, and a
late write lands in memory that is still valid and is reinitialized by the
next command. bus_lock keeps commands from sharing it.

This deliberately does not clear reply->data or reply->length on the
timeout path. Doing so races with qnap_mcu_receive_buf(), which reads both
after its

	if (!reply->length)
		return size;

check: clearing reply->data gives a NULL dereference, and clearing
reply->length alone removes the reply->received == reply->length exit
condition, so the copy loop runs until the uart chunk is consumed and
overruns the buffer. Leaving both set keeps the write bounded by
reply->length, which qnap_mcu_exec() has already checked against
sizeof(mcu->rx).

Fixes: 998f70d180 ("mfd: Add base driver for qnap-mcu devices")
Cc: stable@vger.kernel.org
Signed-off-by: Ali Ahmet Memis <ali@iusegentoo.com>
Link: https://lore.kernel.org/all/20260802132012.537B81F000E9@smtp.kernel.org/
Link: https://patch.msgid.link/20260802135307.31380-1-ali@iusegentoo.com
Signed-off-by: Lee Jones <lee@kernel.org>
2026-08-12 09:07:27 +01:00
Alvin Sun
a697e26880 rust: module: update MAINTAINERS to cover module.rs
Module types now live in `rust/kernel/module.rs` alongside
`rust/kernel/module_param.rs`. Update the MODULE SUPPORT file pattern
from `rust/kernel/module_param.rs` to `rust/kernel/module*.rs` so both
files are covered.

Assisted-by: opencode:glm-5.2
Link: https://lore.kernel.org/rust-for-linux/8ea21b29-9baf-4926-a16f-7d21c5a1a1b8@suse.com
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Acked-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
Link: https://patch.msgid.link/20260811-fix-fops-owner-v10-10-7e71776f9dbe@linux.dev
[ Removed Acked-by and Cc. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-08-12 09:36:27 +02:00
Alvin Sun
cdb7c5e018 rust: macros: remove THIS_MODULE static from module!
All users have been migrated to `ModuleMetadata::THIS_MODULE` const or
`this_module::<LocalModule>()` helper. The `static THIS_MODULE`
generated by the `module!` macro is no longer referenced anywhere,
so remove it to avoid having two sources of the same `ThisModule`
pointer.

Assisted-by: opencode:glm-5.2
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Reviewed-by: Gary Guo <gary@garyguo.net>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Acked-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
Link: https://patch.msgid.link/20260811-fix-fops-owner-v10-9-7e71776f9dbe@linux.dev
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-08-12 09:36:26 +02:00
Alvin Sun
d1ea160c4f rust_binder: use LocalModule for THIS_MODULE
Replace the `THIS_MODULE` static reference in the binder fops with
`this_module::<LocalModule>()`, consistent with the move of
`THIS_MODULE` into the `ModuleMetadata` trait.

Assisted-by: opencode:glm-5.2
Reviewed-by: Gary Guo <gary@garyguo.net>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
Link: https://patch.msgid.link/20260811-fix-fops-owner-v10-8-7e71776f9dbe@linux.dev
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-08-12 09:36:26 +02:00
Alvin Sun
003c01b2f0 rust: configfs: use LocalModule for THIS_MODULE
Replace the `THIS_MODULE` static reference in the `configfs_attrs!`
macro with `this_module::<LocalModule>()`, and update
rnull to import `LocalModule` instead of `THIS_MODULE`, consistent
with the move of `THIS_MODULE` into the `ModuleMetadata` trait.

Assisted-by: opencode:glm-5.2
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: Gary Guo <gary@garyguo.net>
Acked-by: Andreas Hindborg <a.hindborg@kernel.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
Link: https://patch.msgid.link/20260811-fix-fops-owner-v10-7-7e71776f9dbe@linux.dev
[ Rebased to avoid the imports cleanup patch. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-08-12 09:36:26 +02:00
Alvin Sun
f9a2e4f3d7 rust: miscdevice: set fops.owner from driver module pointer
Set the miscdevice fops owner field from the driver module pointer
via the `this_module::<T::OwnerModule>()` helper, instead of
defaulting to null.

Assisted-by: opencode:glm-5.2
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Reviewed-by: Gary Guo <gary@garyguo.net>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
Link: https://patch.msgid.link/20260811-fix-fops-owner-v10-6-7e71776f9dbe@linux.dev
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-08-12 09:36:26 +02:00
Alvin Sun
3ef9758930 rust: drm: set fops.owner from driver module pointer
Change `create_fops()` to accept an owner module pointer instead of
hardcoding `null_mut()`, ensuring the kernel correctly tracks the
module owning the DRM device's file operations.

Assisted-by: opencode:glm-5.2
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Reviewed-by: Gary Guo <gary@garyguo.net>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
Link: https://patch.msgid.link/20260811-fix-fops-owner-v10-5-7e71776f9dbe@linux.dev
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-08-12 09:36:26 +02:00
Alvin Sun
7d3e99e933 rust: macros: auto-insert OwnerModule in #[vtable]
Auto-add `type OwnerModule: ::kernel::ModuleMetadata;` as a required
associated type on the trait side if not already defined, and
auto-insert `type OwnerModule = crate::LocalModule;` on the impl side
if not explicitly provided, eliminating the need to manually declare
and implement `OwnerModule` in every vtable trait and impl.

Assisted-by: opencode:glm-5.2
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Suggested-by: Gary Guo <gary@garyguo.net>
Link: https://lore.kernel.org/all/DIMMWHUOLPSH.13JFRHDKDQJGO@garyguo.net
Reviewed-by: Gary Guo <gary@garyguo.net>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
Link: https://patch.msgid.link/20260811-fix-fops-owner-v10-4-7e71776f9dbe@linux.dev
[ Fixed `rusttest` by adding a dummy `LocalModule`. Removed interim
  `#[allow(dead_code)]`. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-08-12 09:36:26 +02:00
Alvin Sun
98f256e272 rust: doctest: add LocalModule fallback for #[vtable] ThisModule
Add a `LocalModule` struct with a null-pointer `ModuleMetadata` impl
in the doctest harness, so that `crate::LocalModule` (auto-inserted
by `#[vtable]`) resolves correctly when there is no `module!` macro.

Assisted-by: opencode:glm-5.2
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Reviewed-by: Gary Guo <gary@garyguo.net>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
Link: https://patch.msgid.link/20260811-fix-fops-owner-v10-3-7e71776f9dbe@linux.dev
[ Fixed `clippy::undocumented_unsafe_blocks` lint by wrapping with
  a block. Added interim `#[allow(dead_code)]`. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-08-12 09:36:26 +02:00
Alvin Sun
54f846db7b rust: module: add THIS_MODULE const to ModuleMetadata trait
Since `const_refs_to_static` has been stable as of the MSRV bump, a
`ThisModule` pointer can now be used in const contexts.

Add a `THIS_MODULE` const to the `ModuleMetadata` trait so that modules
can provide their `ThisModule` pointer in const contexts such as static
`file_operations`.

Add a `this_module()` helper to retrieve the `THIS_MODULE` pointer of a
given module type, and update `__init` to use it instead of the
`THIS_MODULE` static generated by the `module!` macro.

The `static THIS_MODULE` generated by the `module!` macro is retained
for backwards compatibility with existing users and removed in a later
patch once all references have been migrated.

Assisted-by: opencode:glm-5.2
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Reviewed-by: Gary Guo <gary@garyguo.net>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Acked-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
Link: https://patch.msgid.link/20260811-fix-fops-owner-v10-2-7e71776f9dbe@linux.dev
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-08-12 09:36:26 +02:00
Alvin Sun
0752a2e96e rust: module: move module types into module.rs
Move `Module`, `InPlaceModule`, `ModuleMetadata` and `ThisModule` from
`lib.rs` into a new `rust/kernel/module.rs`. Re-export them from `lib.rs`
to avoid tree-wide changes.

Switch six bus driver registrations from `module.0` to the public
`ThisModule::as_ptr()` accessor, since the field is no longer visible
outside the new `module` submodule.

No functional change.

Assisted-by: opencode:glm-5.2
Suggested-by: Gary Guo <gary@garyguo.net>
Link: https://lore.kernel.org/all/DJFIQPLOVO4T.1K8T0VZM30LDA@garyguo.net/
Reviewed-by: Gary Guo <gary@garyguo.net>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Acked-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
Link: https://patch.msgid.link/20260811-fix-fops-owner-v10-1-7e71776f9dbe@linux.dev
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2026-08-12 09:36:26 +02:00
Christian Brauner
9948bc9aa1
Merge patch series "fixes for iomap_bio_read_folio_range_sync"
Christoph Hellwig <hch@lst.de> says:

Two fixes for iomap_bio_read_folio_range_sync, a potential kernel
crash when tweaking the device integrity behvavior using sysfs,
and a missing bio_uninit that the Sashiko review of the first fix
found.

* patches from https://patch.msgid.link/20260804124404.737145-1-hch@lst.de:
  iomap: iomap_bio_read_folio_range_sync is missing a call to bio_uninit
  iomap: don't free integrity payload that doesn't exist

Link: https://patch.msgid.link/20260804124404.737145-1-hch@lst.de
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-08-12 09:22:40 +02:00
Christoph Hellwig
accb6624e3
iomap: iomap_bio_read_folio_range_sync is missing a call to bio_uninit
Which could leak blkg references.

Fixes: c03cea4214 ("iomap: add initial support for writes without buffer heads")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20260804124404.737145-3-hch@lst.de
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Anuj Gupta <anuj20.g@samsung.com>
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-08-12 09:22:39 +02:00
Christoph Hellwig
8a8685b32c
iomap: don't free integrity payload that doesn't exist
fs_bio_integrity_alloc might not allocate a bio integrity payload if PI
verification is disabled on the block device.  Check for that case before
calling fs_bio_integrity_free in iomap_bio_read_folio_range_sync to
avoid a NULL pointer dereferences.

Make the branch cover the PI verification as well - while
fs_bio_integrity_verify works without an integrity payload, it requires
one to actually do useful work.

Fixes: 0b10a37052 ("iomap: support T10 protection information")
Cc: stable@vger.kernel.org # v7.1
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Anuj Gupta <anuj20.g@samsung.com>
Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Link: https://patch.msgid.link/20260804124404.737145-2-hch@lst.de
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-08-12 09:22:39 +02:00
Karl Mehltretter
9ac8fd8312
super: fix dying superblock warning messages
WARN_ON_ONCE() takes a condition, not a message. The string literals
are always true, so the warnings still trigger but the messages are
never printed.

Use WARN_ONCE(1, ...) instead to print the messages and keep the
once-only behavior.

Found with a Coccinelle script. Clang's -Wstring-conversion also flags
such calls but is not enabled in kernel builds.

Fixes: f0cd988016 ("fs: massage locking helpers")
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
Link: https://patch.msgid.link/20260808123802.73687-1-kmehltretter@gmail.com
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-08-12 09:20:35 +02:00
Benjamin Wu
7c7fe554f4
docs: fix grammatical error in iomap docs
Change "This origins" -> "The origins"

Signed-off-by: Benjamin Wu <benjamin.wu37@gmail.com>
Link: https://patch.msgid.link/20260810063704.355933-1-benjamin.wu37@gmail.com
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-08-12 09:17:07 +02:00
Stephen Boyd
d8a8d206a7 Allwinner clock changes for 7.3
Some cleanups to the Allwinner clock driver library and support for the
 Allwinner A733 RTC clocks added.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAmp4YtEQHHdlbnNAa2Vy
 bmVsLm9yZwAKCRA4mlQhnA8kMOIFEADkvYPkegyGZWpVRlRuvV1mzE0Uc16Ueo4G
 jisA5FSjOOjR1v8JcG16gvX0uvllWBTyHRQUJ/4VRexedRcL/QQewID7kZ4Ebh+M
 BGuSbEHiPUqLTDO0j9mNE5Cu6fmIvrMSCyffxFqCbmhfvb5XiCIPeNtA9Q9V18dK
 UMSIh9NUU2JKINnJJnBpL/3akPxUDUEBRx2MfuW85hb/0irsWaYAGEToFLNBYBhf
 r5QUcXnrMgV7mvFPLHjG0TytPWRDTiNR/aXlXtPuLPx7TgTuKMSwt2b7mGv7+kz0
 rPooPw48TfpFVoGmBx22FmD4BJuHyi8BUTQfWluSpw+MZpwmURYDhfQiyPjPASAC
 nSDWIFL5s0i/R2Gtql+sbqpY3zDADxta/jRsUG/0azEALjcVNNuWWr9f/h0QxiDB
 MRLrUFKRx6TwQBSgyMRkk43wA0pWKn9koZaB1FFu3if03heRk/Qt/YOcg7mp0xP7
 EW0PZfKq3GXBWtcQ0UlC6jOzF+X0MFWlNCOSxkNR460H+K2jQdMaU+rUx0N1qXnA
 qN9uoMzukXd9x6GazWDA4tOfbc6fYSQ8R40EQNLsrjCaYq6gf/ED1V83D60/2TnM
 8rpxDagwTLndtT+oO2DkCEk60XVpnRodkyzLXlQ+wHNF0FjddDA/I29QLAcN5bvl
 kjsWWCFtTw==
 =1HWO
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmp8DggUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSXnBQ//fyZ0fFm5sAO5Dl4/d52hbv4i4SLa
 Wv/R+dEbrHrMlU5Vd1WSHImf0XqG97MZNlGlNor3fcM98Z9bQo3NZFOGTUkjJs6W
 yJGs/68mJpZvfqYHBXBk+PlYBDD7ULNOAgz8TSsrjuLS0ehpvmI40eYhcczqZLqe
 wupz/upveK81a9qDQfpfrIF7pb5Xf57YTQnkFRJkrL7Jyhu6+jSp0YhnqXpTOz+w
 RtPqHGSl+kquLPGgmzZmDS2lUZfRr/MrEbP2LsEhoqK2rBLQGnoYYtxlBBDKgtdc
 VEjpsp3dk8TnckgAZZF+Az13PoOYIXXP6EoSez+V5UANGCXjxB+Xh1JNdGmsYF5+
 awI6fjlND8xKsGGz5tKMvZXuqf1a+cF8sqqI0cJ6roLN7DUQEc2lSPN5Ao6eaw+A
 ljV7hUe/7RyIS1rvJtMVy60g6+9hqGPtQqqM8xV+2brCguL/sj6aW16P9ZEy+wvv
 LLJev2Ojt0I2JCwyYkDqCX8EefNfZGFAVe3+fUUunNHahQjXlCv1IWe6vqbI78dR
 uTWP9n3ohTozg4PNDSxjOZxQaueGL6ZTfBwLTrXk6tVo4Q4pawMH0q+VIvr3Hzc7
 ifOK5/NN6oq/dAfXIukRFBXdGSGRyMNt7sYfq9r2CxGP/9NqeF4g9H2Uxotu0q5C
 YyLtNcH2+pTsUUE=
 =3i3v
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-clk-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into clk-allwinner

Pull Allwinner clk driver updates from Chen-Yu Tsai:

Some cleanups to the Allwinner clock driver library and support for the
Allwinner A733 RTC clocks added.

* tag 'sunxi-clk-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  clk: sunxi-ng: sun6i-rtc: add a733 support
  clk: sunxi-ng: sun6i-rtc: split main oscillator div and gate
  clk: sunxi-ng: div: add read-only operation support
  clk: sunxi-ng: mux: fix determine helper rate propagation
  clk: sunxi-ng: mux: remove unneeded export
  clk: sunxi-ng: sun6i-rtc: Add feature bit for IOSC calibration
  clk: sunxi-ng: sun6i-rtc: clean up DT usage
  clk: sunxi-ng: fix ccu probe clock unregister on error
  dt-bindings: rtc: sun6i: add sun60i-a733 support
  dt-bindings: rtc: sun6i: no clock-output-names on h616/r329
2026-08-11 23:08:57 -07:00
Stephen Boyd
79b64c7476 Qualcomm clock updates for v7.3
Add global, TCSR, RPMh, and video clock controller support for Maili.
 Add global, RPM, GPU, display, and audio core clock controller support for
 Shikra. Add display and graphics clock controllers for Nord.
 
 Add Glymur camera and EVA clock controllers, the IPQ9650 REFGEN clocks, and
 Hawi video clock controller support. Extend the IPQ5210 APSS PLL and RPM
 clock support for Agatti.
 
 Enable runtime PM and regulator-backed reference clock handling where needed.
 Update QCM2290 clock and power-domain handling, critical clock definitions,
 and arm architecture Kconfig defaults.
 
 Correct MDM9607, MSM8916, MSM8939, SM6115, QCS8300, Kaanapali, and Glymur
 clock and power-domain handling. Improve GDSC error propagation and teardown.
 
 Update bindings for the added controllers and required power and OPP
 properties.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmp2AIsOHGJqb3JuQGty
 eW8uc2UACgkQCx85Pw2ZrcVp1Q/8DSFhshwLJ7BxaKUyYcoL0oCzRRMoH5U3UEw6
 9iYM+bGbeNSguZW5d3fKQhOX4EHULk/nOHuP3nril1jeOUCMZlF6BaZcFaWxQN8I
 E26T3STNS1JYyQDGzUMAc9mL44nV/XfurA6w0BCkwGHZ4kFmgBJHWn8ns9jaxW6z
 jlTg9aUwm/omId3pkuB6LY0A7oTBOX8Vul/i+6CAh5JXr7JL2M+gU9rnqnNVJ2ug
 PX+m7phzZNaflVK6GsUP4TI/CPqgPWyeeccA/POQ4xkREwivZb8VpaV9LKPqqSmY
 3SJ3bNaBd0nadsHoJiEbBflCWx88eMAXuXhMGHsxveA1KoTaxBJVDK3nzEqulobN
 xdLd9XXA+OJ9fMT3rVxmupldbkPlfxH1NIIxtSlAZlMb10SBo0O7S4EyzWisHSfP
 S5wFTprc3NLnqfHa+14inleIOqRGLRbHe2hb2dJRxv8Nxv0u82VGe0xEOk0oHgjS
 i60Sm8Hl81svH+sxICVBPDZ7JEH9FY3mHNav/DDcBbX9Bukg7xybgOonP5Y4K3E4
 fAGU8T1SMRe3u+dsZmjR07ZFmEQgevefE8diDA8Z/bpND/HOWsjBILMUcz87aaYt
 YVu9BE+mOzIektehQcLsRkgmP15xLuCOEfpeL46I8mNEWPgfl1jfVyjEdFs2BFcn
 Rkj+acY=
 =1e93
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmp8Dc4UHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSUQihAAwkz9Uc6w+wI4IuD1aGOcnj1/SQOe
 vFaylCwhUDb85ryx2TrwmXDAorxt1kPxVYGSNCmwTUP3KamDxtDIdqdxdB7AsKnq
 SNFe2JOx0pFDtGOKRqG3hCiml3GlIMzQQmbXCXKxPLK6NaVxNZwaJzrqhfMiJqji
 tGNWxllEMws82jWJ8N20+OLkpPcfV9CGxPwWFU6G+IrZpbmhCuzXqbaHOExQy2vz
 xMdcYRkVTZy4elI1ab6OTc3wQyu3zPL5dwBpTuWdbxLIvVbQChcgn9VGb9BITlBG
 +H8M9f5fzBkEkbI8m1l0wUm5mBfLiD+b4E72Y0UYMKsGp7oiJZCz/Tdm2eTdile7
 IjhbOksiqJA824iN1AKtS1pqImmDkKJHHQcSHh7tANceFz+BkL4av4/pkrE3e6mu
 WZ7SoMQuWdXQuhnwzqnr0IOttKMmlBYvzdH+7tJ5IseM5kihXD/JugqqEA0lC7Rs
 4BUbmV09Snrx/06EmIs7E4MNprPAiN//AjstmJOJli2eZYKBnccpXCWG/VQ7GkJ+
 k5pkcGVjFMKtXUFwd4cgnTB8PQTdeF9f6nde6jjX42sD72qESLqqRpykj5UCg+D1
 zfZMvBQMbgdjVVx0IbsgkFWtO6rDn6cbNjluAjPTIiXcnE2ckCv5wSpDlxIE3K28
 dBIq1TQFxXKgLlk=
 =Ge5l
 -----END PGP SIGNATURE-----

Merge tag 'qcom-clk-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into clk-qcom

Pull Qualcomm clk driver updates from Bjorn Andersson:

Add global, TCSR, RPMh, and video clock controller support for Maili.
Add global, RPM, GPU, display, and audio core clock controller support for
Shikra. Add display and graphics clock controllers for Nord.

Add Glymur camera and EVA clock controllers, the IPQ9650 REFGEN clocks, and
Hawi video clock controller support. Extend the IPQ5210 APSS PLL and RPM
clock support for Agatti.

Enable runtime PM and regulator-backed reference clock handling where needed.
Update QCM2290 clock and power-domain handling, critical clock definitions,
and arm architecture Kconfig defaults.

Correct MDM9607, MSM8916, MSM8939, SM6115, QCS8300, Kaanapali, and Glymur
clock and power-domain handling. Improve GDSC error propagation and teardown.

Update bindings for the added controllers and required power and OPP
properties.

* tag 'qcom-clk-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (94 commits)
  clk: qcom: Add support for Qualcomm GPU Clock Controller on Shikra
  clk: qcom: Return expected ENOMEM error on dynamic allocation failure
  clk: qcom: apss-ipq-pll: Add IPQ5210 support
  dt-bindings: clock: qcom,a53pll: Add IPQ5210 compatible
  clk: qcom: Add support for videocc driver on Qualcomm Maili SoC
  dt-bindings: clock: qcom: Add Qualcomm Maili video clock controller
  dt-bindings: clock: qcom: Add Qualcomm Shikra GPU clock controller
  dt-bindings: clock: qcom: Add Qualcomm Shikra Display clock controller
  clk: qcom: gpucc-qcm2290: Park RCG's clk source at XO during disable
  clk: qcom: gpucc-qcm2290: Keep the critical clocks always-on from probe
  clk: qcom: gpucc-qcm2290: Move to the latest common qcom_cc_probe() model
  clk: qcom: gpucc-qcm2290: Drop pm_clk handling
  clk: qcom: qcm2290: Update DISPCC and GPUCC GDSC *wait_val values
  clk: qcom: qcm2290: Add RETAIN_FF_ENABLE flag for DISPCC and GPUCC GDSCs
  clk: qcom: qcm2290: Set POLL_CFG_GDSCR flag for DISPCC and GPUCC GDSCs
  clk: qcom: dispcc-qcm2290: Enable runtime PM support
  clk: qcom: dispcc-qcm2290: Move to the latest common qcom_cc_probe() model
  clk: qcom: gcc-qcm2290: Keep the critical clocks always-on from probe
  dt-bindings: clock: qcom,qcm2290-dispcc: Add missing power-domains property
  clk: qcom: Add Audio Core clock controller support on Qualcomm Shikra SoC
  ...
2026-08-11 23:07:47 -07:00
Stephen Boyd
e38dc76404 Samsung SoC clock drivers changes for v7.3
1. Exynos990: Add few missing clocks and correct the gate clock parents
    in the PERIS clock controller.
 
 2. Cleanup - Use kzalloc_flex for __counted_by checks.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmp0Q9oQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD15DYD/913hNrlwksCT1sCnY+yye76h8HTLrO7zqo
 wFJdkbfhNlXDRpAw130sgGS2YZ0ed8AsIhD0cmjZQeXw8Wrdds7itymr26mqtot4
 6QcZB0FEbuMSo4JM9S7Dx6jQIfyPmophDSbi4OzS9L1IY/r1cJb9B0TV3elD2rZ4
 h5H/eW7V1y/VI3oQlsMYuvtI4YgKmOpz7G/hjHJUA7aBP1+fQYboXO6jM4BTsyWM
 9xL9vHZuFcA0PbyqzsasRKRYNC7ueEHTgBzmITlz5aEvIzCjWmsEmNCyQhWsyHN7
 UECOUVnRka8kEuKopfHgqKLlyjOS02e5mKh8NQX2IcjV7czPx44BF475P+v04ks1
 cFQhOKMjEYBtV1AHF1fs+I5PTW84KuK5i30we6ERXxysdkEFA+4wsVmoIlgozG7Z
 SBnaW0bDM0E0rACKtwHVGPTG4NScBQ1mv/ZPOIcE/eU1WUKEfd6KZk73lTUIroiL
 yAWJVXom9pwPUL6lL3JH+qsIheOavTRTP1wH0F44j/r2QQegZqhlXVQHyrA1RWJV
 OHX87i4RgZPw/9/b1pqk/Or6oUFZHpdbvXo2bT6oq781gWcBsfYa8RzWo+X+0Uc8
 Q3CamvFl4HP14YAwwKejmnGj/holtzGG6jceNi/6W+f1YG21cUTRxpGrcLnvK41K
 R6vCMvfBZg==
 =vtnb
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmp8DVEUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSUxiBAAt0HOBg0gsM+MAEJZfwv1DUaquA8Y
 Zb92F0N8aM2XSiWOK5LfzdDnTwTHoQ+5yI2Y18TMavpsGUR28FiK+vXeXRNgyo2J
 d/RJUbleNk2mDK/Rkp07Cp+TK7mlY/mpbPOevuQKya2pYyu9ZyCPSvWHk85sCrJ7
 kTsl0fY5ukDrFosCxRNDNKtfywgZw7dAm3JJkzfQo0pVo1wKxlogO9u0TPgn0PiK
 TnE4pqziJaPPZTS/MYXWRqGof3eand4UbitNEp+HxL2JfbDlhZ5LW1rtNa7DvRPT
 pj4Dy+IxGZyHlgFN6mxcu4NfGHxXNTFgQM2aqeyu9zXVh+y8+jqXGmtgCPdo06GC
 DpEgRpHtG2nqxXdYVE7+8aEcRZVTNBKR0C9PyyNyBbYV8FeC4g5gfC6237pbSkAL
 gsKa0Dom/MoN2RTkpci40vqyyQ13ooNQ3Z08mPa5xTyLUWqOXexd/bSZ4Cl8JxW4
 Oe2G6cYhO5lRKcqNhzEMyeYQloxmI/uySMRSvY0bS9B6lOVgQQEYezQfVHNuJgBD
 qHyQg6Gznk6TVpi0wxn40XnLzSBFeZ7Z8WUkEJyY5cW5dIiCFYnno0AHBrxqxeZm
 22YbOLYbg9SO1OXKOe/Hd69iEoCfWxB4TbWDAFM3qBEx2TvoaOsAosQJfKzLktC8
 ogPOBrGsxruqIb8=
 =Yl9+
 -----END PGP SIGNATURE-----

Merge tag 'samsung-clk-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into clk-samsung

Pull Samsung SoC clk driver updates from Krzysztof Kozlowski:

 - Exynos990: Add few missing clocks and correct the gate clock
   parents in the PERIS clock controller.
 - Cleanup - Use kzalloc_flex for __counted_by checks in Samsung
   clk driver.

* tag 'samsung-clk-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  clk: samsung: pll: use kzalloc_flex
  clk: samsung: cpu: use kzalloc_flex
  clk: samsung: use kzalloc_flex
  clk: samsung: exynos990: Fix PERIS gate clock parents
  clk: samsung: exynos990: Add PERIS TMU_SUB_PCLK gate
  dt-bindings: clock: exynos990: Add CLK_GOUT_PERIS_TMU_SUB_PCLK
2026-08-11 23:05:36 -07:00
Stephen Boyd
1353d95e63 Clock driver for RV1106, fix for rk3576 spi source mux, better representing
fractional PLL coefficients and a fix for the dclk of the 3rd video-port to
 not affect other compoents when its rate gets changed.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmpzqVIQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgTYRB/9lSKLStQtLlreGs6zY5F2fVLN6qUgimFuz
 t7MFxUTJp/J8dArPK/PST78s+dbFcI2U2d+4K24zuDtNJm7Zsw3sEEcNjFRNqcnN
 FRyXdT1Yc1EhTFlwg8rSeVC/sCznm1b59BMBPRP2u11kDtPtS1HxpEPACFBg4rIg
 Bul89omf3Iyq//W5wweb69IK0GxAw3fldjgONOd9D1yd+GvO/HW/V03bXbX71T9Z
 RkSSyQ3E8bdxJzdEMUgaSSFVAxSCji0v8H30Kp5hlWm4JX3yhZzyTHcvv/QwxgNk
 F+irFyG5GfFzVg1wN+E55bdcL8o6OthIocVd9ae+OtKs5GFotzsi
 =6iqM
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmp8DQIUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSV6Pw/9Fgw7gZRPS0KFJ/MXUgc/AZikVlpU
 r8GjmpcmpnjiZOIOKM2dvmBV7f1iB3xxNS0c9QDQ+HGa3G/+WWKsoHePumRVuJMf
 Mq7Zds7TP4DOSrxQGmrGA8B7YAthPV3iSUxjnxd5di0KXf0958HWVdNuYUNuS2x2
 3qHGpqt24zGG1PV/59QKHK+fzrMt6dMOLOscYwhoaaQrnxXt0nQjslwew7W2QSlF
 5F/2g8KHg3ezZU0S0AWsZ2+b2yhEojGxjjYwBjEgFysiOABAd2EfilgSG3EU7l5f
 41uf3eJKfbocz7Lw0ZoHo1TBc9OAvA9mPLwoj/eFEc1oIH//2ODsvsd4spOSimJz
 RTWH2C9XJxlZKnBN/ZFRZtaghsdmF74iIumweekXXidsVP0+BsQyp6f6aKNOABiU
 8RAEpL50vHFBt9RCNvV8dBghav6TWmR8oHkRlNoYzqZ9NX3L4wVQn8rhSNwwQcGw
 mvs7ginmTQX+uC9qgHuIV4kP4WasYCfTzFQlPlFMoAtpgtggtuXzxqeJJEfTpRiW
 080t0XVS5kMIFPgbd51xdpBe+BJTLKUq+k8wZuP0XazfENP/fgAj1sw2DXdkD3NU
 IfknpUcBtywx5AIdXGWP7qNTWSJ+YAkSz/KTPd9f76UY1ToXgMMH2VAc42FD3rsf
 Qe1OM6jN7BB4CW8=
 =jLWg
 -----END PGP SIGNATURE-----

Merge tag 'v7.3-rockchip-clk1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into clk-rockchip

Pull Rockchip clk driver updates from Heiko Stuebner:

 - Clock driver for Rockchip RV1106
 - Fix for Rockchip rk3576 spi source mux
 - Better representing fractional PLL coefficients in Rockchip
   clk driver
 - Fix for the Rockchip dclk of the 3rd video-port to not affect
   other compoents when its rate gets changed

* tag 'v7.3-rockchip-clk1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  clk: rockchip: rk3576: fix source muxes for SPI0..SPI4
  clk: rockchip: Add clock controller for the RV1106
  dt-bindings: clock: rockchip: Add RV1106 CRU support
  clk: rockchip: Fractional PLL coefficient on RK3588/RK3576 is two's complement
  clk: rockchip: Fix the fractional part denominator on RK3588/RK3576 PLLs
  clk: rockchip: rk3588: Allow VP2 the same sourcing options as other VPs
  clk: rockchip: rk3588: Don't change PLL rates when setting dclk_vop2_src
2026-08-11 23:03:45 -07:00
Rob Herring (Arm)
da3abd0445 clk: at91: Read "reg" with helper
The "reg" property is an address-sized DT cell property. The AT91
compat clock parser only uses a small bus id from it, but reading it
with the u8 helper does not match the property encoding.

Use of_property_read_reg() so the code goes through the helper for
"reg" properties, then keep the existing range check before passing
the bus id to the clock registration code.

Assisted-by: Codex:gpt-5-5
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Brian Masney <bmasney@redhat.com>
Link: https://patch.msgid.link/20260612215251.1888345-1-robh@kernel.org
Signed-off-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
2026-08-12 09:02:57 +03:00
Stephen Boyd
9af2b73822 i.MX clock changes for 7.3
- Add audio PLL debugfs support for K-divider control.
 - Add missing MODULE_DEVICE_TABLE() declarations for i.MX8QXP clock drivers.
 - Add PCIe FUNC_OUTPUT_EN clock gate support on i.MX95.
 - Configure the i.MX95 PCIe transmitter current reference to fix REFCLK
   rise-fall timing.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEETvPuEU56jyrKp9G4G19EyQCVFVYFAmpxz1YACgkQG19EyQCV
 FVYqmA/7BUS8H0KGRHeRs2VXP1tAydexeUgePx0eqzUzSij92rSicZodfhMeuVtt
 9k3MH35QFRiiKcU9giOFg7XQk5KEAXwsLFuoaPv5EYwITChKeTCKhOu42GvQ5BMA
 sTvuENQt9rg3oW3wGfluiWK/ENxboB3TlbV/mCU2YuNdpwHnKRDu6lqWFn2milx1
 j31izCzrXDndFD3Iw6KRnnAyzS6TBO55iXOSvWJe15XepHERXn73m/0IW+4ZsAMY
 dp9ggS4Qo68qczPxQQv2mudntSpz++ZUoAJbCuYHppgstUOpS/9lFm3w5EpRa7MR
 TTy6p1sKhddM0l463Lct6nDXFSXUzhk5cAmF3BSGdF3rJf3nkGRWTmyEXkW2TzPY
 Qedg9wU4hDEygMqd4Mk2Tpd1GNIUxAuwD6J0sa4janh2kCTfVo/B1NruW6rERSfL
 6AmFVwSSdjo9z8OYXNn+nzpycvdC4EVZr4tUzm14mjou05LBSy0Q4kUJredQpuJt
 w7yjBa4j8Y3DtY80sQ6yBjFn06T9wmx0SdpNp01sYODzF4p5B4hSt/IJqG6RFiu5
 /B2pNWRFsgys0KGky/IVcqfYhjnyuiV+yDJortnryVGHMa9XmeEwLkvJyhg8FTs4
 FkU5INkvjL92jZohpgCjNjSbYFyn1HoSH6Bu5x1P1iGDCkdaYhs=
 =AFza
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmp8CGcUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSUNgBAAoJnoiA+XxAtdiqS0ESsjrzsGN8y3
 2p2nGLioG8feIoGlSQ5G8rWBH3nCsDh7fjr7dqUwKnBOWXgaR858ypVnBOeYKXKI
 4BMhI7GAkhN94fGUkRcM1OXmddQ/0o03Tus0c9YkaQeQ5oXoAWbGMTHprqXAWE9D
 7fGzcv3JpvpbMI1hucqDDi7XXkNWnzD41sysPMfdUpcX5gqHANtPWE8A1Onq/9nK
 q6NKkiIeQ/rBlnNLhJsKJWNGrC7Bc9tSWiAsntNyEfxywtghRsTyzDQ3Eo1YIIzG
 UaD3tNeoGk7aanWYkQHjnL6RCWLKUElfBlhPAvW0Lm9T93K5CaoUOvT9oFJVVnO6
 KbMEKdfKjhdhGmGrU+bujchGxsl90rpQEOS4xuZUNU3nUFw1h3GvkkPl+Nt+bJIz
 Io/qzbQrhcMLni7aP2POZa6hHKcOkCzDm/b5+OmYFXDGK+x6MvkhcgXVEov4gM1f
 bgFshkyi8JHS+wrEHf+gshvoF9aVMu/V7JsZm+zQBh7Z48neRPfkPkx3WLimv1K/
 2d1jkEgIKpY6+z5095/kS4H7/oAK94zaODuBc3VjOAw/3MbLU0j1y8s0o1NcS4Bc
 iHj5OIZ++V1EigGtp6aiPkUJud0Pl8U4nrdVxa/o/MeMq8bgyxub/9G8lm/BRDB+
 idO7CpOqwJLKLko=
 =YBxi
 -----END PGP SIGNATURE-----

Merge tag 'clk-imx-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/abelvesa/linux into clk-imx

Pull i.MX clk driver updates from Abel Vesa:

 - Add audio PLL debugfs support for K-divider control.
 - Add missing MODULE_DEVICE_TABLE() declarations for i.MX8QXP clock drivers.
 - Add PCIe FUNC_OUTPUT_EN clock gate support on i.MX95.
 - Configure the i.MX95 PCIe transmitter current reference to fix REFCLK
   rise-fall timing.

* tag 'clk-imx-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/abelvesa/linux:
  clk: imx95-blk-ctl: Fix REFCLK rise-fall mismatch on i.MX95
  clk: imx95-blk-ctl: Add func_out_en clock for i.MX9x PCIe
  clk: imx: imx8qxp: add missing MODULE_DEVICE_TABLE()
  clk: imx: imx8qxp-lpcg: add missing MODULE_DEVICE_TABLE()
  clk: imx: Add audio PLL debugfs for K-divider control
2026-08-11 22:44:52 -07:00
Bob Song
59a2cd69b4 ALSA: hda/ca0132: replace sprintf() with snprintf()
Replace six sprintf() calls that write to
SNDRV_CTL_ELEM_ID_NAME_MAXLEN-sized buffers with snprintf() to avoid
potential buffer overflows.

Signed-off-by: Bob Song <songxiebing@kylinos.cn>
Link: https://patch.msgid.link/20260812033030.635417-1-songxiebing@kylinos.cn
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-12 07:30:18 +02:00
Bob Song
3cd6cb2dc9 ALSA: hda/ca0132: set codec->spec to NULL after freeing
ca0132_free() and dbpro_free() call kfree(codec->spec) without
setting codec->spec to NULL afterward, leaving a dangling pointer.
Set it to NULL.

Signed-off-by: Bob Song <songxiebing@kylinos.cn>
Link: https://patch.msgid.link/20260812033019.635010-1-songxiebing@kylinos.cn
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-12 07:30:03 +02:00
Bob Song
67300656f6 ALSA: hda: simplify match functions and remove unreachable return
hda_bus_match() has an unreachable 'return 1' after an if/else that
covers both branches.  Remove the superfluous return and simplify the
control flow by dropping the else branch.

hdac_codec_match() uses a redundant if/else to return 1 or 0.
Simplify to a single return statement.

Signed-off-by: Bob Song <songxiebing@kylinos.cn>
Link: https://patch.msgid.link/20260812033007.633564-1-songxiebing@kylinos.cn
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-12 07:28:48 +02:00
Trevor Vorhees
21e958c4fd ALSA: usb-audio: Fix sample rates for PreSonus AudioBox USB
The fixed audio formats for the PreSonus AudioBox USB specify a discrete
rate mask but leave nr_rates at zero and rate_table unset.  find_format()
therefore rejects every requested rate, preventing the playback and
capture streams from being opened.

Add the advertised 44100 and 48000 Hz rates to both streams and report
their 24 significant bits.

Fixes: 34fe4a9df2 ("ALSA: usb-audio: Add quirk for PreSonus AudioBox USB")
Cc: stable@vger.kernel.org
Signed-off-by: Trevor Vorhees <vorhees-work@proton.me>
Link: https://patch.msgid.link/20260811-audiobox-usb-fix-v1-1-13c8b7f071ea@proton.me
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-08-12 07:27:57 +02:00
Stephen Boyd
166455473d RISC-V SpacemiT clock changes for 7.3
- Add clock for UFS controller
 - Add new I2S clock and fixes
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQKvBAABCgCZFiEEtbq4ycMbcRVnAiPcMarqR1lNu+0FAmpunFUbFIAAAAAABAAO
 bWFudTIsMi41KzEuMTIsMiwyXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25z
 Lm9wZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRCNUJBQjhDOUMzMUI3MTE1NjcwMjIz
 REMzMUFBRUE0NzU5NERCQkVEAAoJEDGq6kdZTbvtq1EQAJPWtqyQjQIcrF9ueZNm
 pj4sZ4v+bkLUas0YstOhHeEc8oeCHVB2OupJzd0m4NpzKviKJXf6f6AOs3P7Rnwi
 VwrWYdRVRCK4dk4BSJYaqEQ/gIhaKvy9WnfL+O+m95JeYwhPrZ8HyeU54Il5Cb3D
 aWdNAMyctR4kcRtAphB1J0+abuoGnTmWeGkYlMc6Y3j+sdMuvjSJcQ2dWidhVIse
 G+ztLGPm0tPBpHRYjAZDlny5vExzwyyUQ2vu4nmKCCAyAfMOxHmJRpW6iv+uRsQf
 bisMpaCm5wGBvTNiDZSzYlLDp1N3GBsucY0jxwm0ZBbNyHKmQ4UFHtqy2XmMEit6
 XJQXT85LRDurbRhzHDaMrirunXrZi5O6YqfJq19/bV2ChdGeWKhEkAj8Uvg94Zxu
 RhAX845rBQRaT8v0Unqw5oYeH8TKj32X5eBJaZx/TVaBthJ245fcTVTrgUgQNB+1
 EAApa3TOaqM9SVMWmDWAIZ5O7BppXCTJm+P6eaHzJRHJvIp25wfD/Cp1MKS1OLr6
 vl76AVzUn4dXAksLwsJEgl4XiDhW+lT7Hd/+NlwSwcaqzzhLdhjzEceCPt2QVUSZ
 Ru+N7ED6j24Etpmi5Vvpa9JnC/upHkkO3kmmPvWSaD/d/RtELzL573Gbx3r9ofHT
 RDl64jRLxgQL8ydIMaAIN7Bu
 =JXgV
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmp8AwYUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSX+QRAArcNSD/jlIH0f2r2Y0eEaCXkCGsi3
 cOToSvpVf8liHIuAIAsWpKRYcCVmsYyPNU7DQvtoc/cCDVIJ1P9hHVryPNF3qc22
 ei8C/fhkUc+oxTkPhVqAdZl1pCaxleIUB4S96iy9V7C2sOXOLOKdx6P8sJlUIo6z
 11dNAcZ7Ardkgj5BafENbMjqwmg449dHLb418Q2IKbn5xSBkXDUHKVvlkGzAjWFK
 M6K9m81mXN1uOgv1LsGLHDQK/mdddUotJrKCS94hCdKwymZpGKICGHsPHLSFW5Ar
 NAZXDfVKDvJj2N65L0t+Kh5fIBw8mmttcMD45mJXQ/AA7CPlgRax2x5OjC/x2kQh
 wKpxCMIS2PHIXaXWqZmoT+6TXIN5kJ0Y6hpwIOwwZ9l6hlVa3VPyy0PkEGH7WKh2
 uNhnVF7Ik/KjHdDS8G+A+8vrOEWMN/Pn3iQbe1N1X0GxKLzr5vxrzcFcsneQw87W
 fR6zjjtbFu/kYp73rXhiLdO7eFy6JAF/dS4a7kH3xtoSo37cWYXWabZPSrQQFGJd
 Y0kY2XXkdNM+HJGXVVkEIQhvxCcE39qBImYHwEZrYmq6hruSeorncJ/wuVN3NJzY
 /zAj7BMSlOg8V81J0PbiHdpN+UyBGHFvkk+v2NQPh812E0/YN0x5D9Sex9mYMb/M
 MHnvm14YYXW2CVU=
 =x8ty
 -----END PGP SIGNATURE-----

Merge tag 'spacemit-clk-for-7.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/spacemit/linux into clk-spacemit

Pull RISC-V SpacemiT clk driver updates from Yixun Lan:

 - Add clock for SpacemiT UFS controller
 - Add SpacemiT I2S clock and fixes

* tag 'spacemit-clk-for-7.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/spacemit/linux:
  clk: spacemit: k3: fix missing /2 factor in i2s sysclk dividers
  clk: spacemit: k3: fix i2s clock topology
  dt-bindings: soc: spacemit: k3: add i2s_sysclk, i2s_bclk_factor and i2s1_sysclk_src IDs
  clk: spacemit: k3: Add UFS refclk clock
  dt-bindings: soc: spacemit: k3: Add clock ID for UFS refclk
  clk: spacemit: k3: fix parent clock of UFS aclk
2026-08-11 22:21:40 -07:00
Stephen Boyd
3990334628 Amlogic clock changes for v7.3
* Fix the incorrect parent number of the 32k clock on GXBB
 * Add the AO and peripheral clock controllers for the new A9 chip
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE9OFZrhjz9W1fG7cb5vwPHDfy2oUFAmpspMEACgkQ5vwPHDfy
 2oUc2BAAr4p6ygDoxRof6N/NjNlJebaYWviWhwaKDdM9a8UaKKtYeqQP1ye/1Nzv
 qIUcLCMDqQP1UU4xsErIDcuOLBEZ9l9WWUvL8aMJwNWyZ+l1BFdxROhnHTqfUj+i
 j636C+7/t9/c7PVu5C+v7i7cAMPCQQx48p1KQskmWiEJBfOt8fgIbfpdIpy9HM4V
 FprCnyMZdqx9DjUB1n9LWFwAN2skEwplZp3Vg0UZCtKLxdW6RGJ9ALYlknrWTkKL
 hqWMMQFofNBlBlMaXKrNKAlZfaegn/0pNrAeIpX3rSk8a/bdjQ7FVPtFfSfIHcw+
 Z8uoxef3yuLI+c8x/SrRCPSLe83ZalOGtontmuWGT6prE7E89HqS1IqUbVoiMlDD
 EwbPUEGxLMMJUa3IP5WMGOCqTtnbiI/8gQVC4EgxPxWHiMr8qYHNRwVCfZhzZIic
 iinEU4UqehOoySapEZum/neBCbl9eJbr5bxxt2aKl60fQcXBJDEDUcju5JG56zuT
 m3OQAcAcKQoPcA4Fggdvyzc1eZMiEGjdYepT1WFNFq8aAA/qct0nse5GWyvZ9ZU8
 tWDFKGwBfI1BfvGnFV7r1CN+wwF77I8d0Yf/6tx64iLYG+OVoGT1764fq+xOp/wu
 33BNxGNfW6+tPrHrQp6QHPaC/lTAGVKimGe7usDSomLjDpyZBfU=
 =pzDk
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmp7/0AUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSU0QhAAhtpaF2R3Dnp2+rNaCBEnqmdEqU8f
 LgK48CXz/a97wJi1QIXfVihajkEBrxi1+j01TJNzEQcFuW2UkXoRbn97ZaPathd+
 GoOv+da5IU6e1FwctdHCWXff8Y6tkdkYTP7bAC6/n7m146muNt99MSO1Htkb3x5i
 0klXsu+fHQQ+EYcUo31secuMJbC1R94JhF1Oz+MOsSygNbe64e6aJJS3XkZ1x1py
 2TeP+/AF53AwYtUx1z0zdHP/xLsyIJnsPmt5Jfzbt3UtKTBOP/IAoyvDSjGRa9kb
 E7wWnJ7z5GRwZAk4L7kbtrs7nruNSQT8QbHERw87b1uFA2N+gl5k7M+j3pEXdQgo
 K63uzCoNPyoIsghgg0f5fXBz28eE2UsG9W4JkNfEGcjJK7cSAX7/68dsY4is/tJs
 Rjy+uLRcBCLtcHOgMZQNTSISAqWt1RBdU6AElKviFNR1nw05xCN9jDRB9xEwYNo/
 ZEW9hwjAVfjeD/Yrzs8vqBRYZqyD6lgZkGcM5cNUGTClPbrK+QmVQZXhuDH1HT4o
 aw1mwFX6FFUrfYKm5nHUWIelh6hETFt2T6L8L3edxRAzC/NYVcrx7KFzTq5387eV
 HXy/Y4xSimaaCR32tgkeUyv6ZRd8M/m7G4BW6q4ObJq/mKFYsv5VcQYgpAXHRxa8
 mW1136cLsgBTRpk=
 =Dxt8
 -----END PGP SIGNATURE-----

Merge tag 'clk-meson-v7.3-1' of ssh://github.com/BayLibre/clk-meson into clk-amlogic

Pull Amlogic clk driver updates from Jerome Brunet:

 - Fix the incorrect parent number of the 32k clock on Amlogic GXBB
 - Add the AO and peripheral clock controllers for the new Amlogic A9 chip

* tag 'clk-meson-v7.3-1' of ssh://github.com/BayLibre/clk-meson:
  clk: amlogic: Add A9 peripherals clock controller driver
  dt-bindings: clock: Add Amlogic A9 peripherals clock controller
  clk: amlogic: Add A9 AO clock controller driver
  dt-bindings: clock: Add Amlogic A9 AO clock controller
  clk: meson: align gxbb_32k_clk_sel number of parents with actual count
2026-08-11 22:05:41 -07:00
Stephen Boyd
cd72dbb2a7 clk-eyeq: Add support for Mobileye EyeQ7H
This patchset brings the support of the Other Logic Blocks (OLB)
 found in the first Mobileye SoC based on the RISC-V architecture, the
 EyeQ7H. Despite the change from MIPS to RISC-V, the Other Logic Blocks
 provide similar clock and reset functions to the controllers of the
 chip. This series introduces the device tree bindings of the SoC and
 the necessary changes to the clock and reset eyeq drivers.
 
 Signed-off-by: Benoît Monin <benoit.monin@bootlin.com>
 -----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCAA5FiEEy6c1E9KFcNpKUem2OLE8WZ9QiKgFAmpZ6HEbFIAAAAAABAAO
 bWFudTIsMi41KzEuMTIsMiwyAAoJEDixPFmfUIioZPEP/3m6axQcd5jsnpGnIsjf
 mR/5MbWEJFHjs4rxtWD9xeIqu2NEW1rz1lbw4wWr1Tp4KgrtOTFlkt7hRVzW7QV9
 BHOMM85Ssaolk50iMSSDhINkBQtWBd4Xg+fVE18ZrZbMW781lnOsp5wlQK81KUy1
 BST5QCIuEssJZkI2sDaI1DSf1hQkUPZmIgfA8i+QlQUq16u/e6mu9Y4eR4CWT0gr
 VBSiFACjPnucSSVu9vxYvcrrq5QqKsvtsfAUucmI23JmuA65OTUuJLwdHqQod+6n
 R99om1zc7z2CQITuTDrSQVO9yGmxpDaAu6jVl4SKTax+KJBVt05CWOle8kyO2Mew
 2k+yGb2PgW87HwompCU6y1R7BcuStjxs11dWs9XP75rhzxD8/wluOr1Mah7w7Z/P
 mkBoB0KLwtPZsfeEQwFTOWK6ox+joGGAN/7VoGSgQvzbK4rJbfVh+AEa81aV6MxV
 J9kMZLC+Y7b/QqM1KG5p57IyVVeY7XWRQe/VPK/Uqvm1B8QwhGRPVI4ihnB+MLkp
 WDli4KVlaWmXmS1jT29nVqWxjvCS0AnWe6hNgVIIFg+jwRtMhoQZx8xxRIEVcFai
 YvjgX+0eG49f2MKtLssaQ6DyttqSGFMT6OTrMfWw/xM4Y0ehic+1oTz9APUow1WX
 0RNW9PRZv9ylFpxAE8XfJ0FR
 =w3Sh
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmp782EUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSVoWxAAmsUHIZEsHi+O+oKY5WIxBWzKk4d3
 WarkDQcYYnL/YCK6N4luG35yVj52hAdrGT5sFERaNgq1dlfKrSvCOO3Tzwn8ZFzf
 LMawqnQ5hdPigHQTiU9rj+ET77s9w/dXZ5NRP28+oX3Zs8uNszgrJqDKVuYyC3zJ
 fzXJbhrL8W/JK1VSmX3IkEy9bAutX+Ct+CBF4dQfbwiEQZut6KZubPjWS78acu56
 VL4hC0I4X/b3z4W8D3yAGPdH9asiUuKyghQTYjUF5xi68V+hTlMxMI2W8daLbdAQ
 8chl96p5OARNzukNbM7rGf0SNywmHhWWaQYBNaVtj8gb1FjPv8lLyM1eEDaBrn8H
 U3eVobyLtPsy6oAioN+qWU4a8npKqQvHL9Dmn2XyRq3kcLxDy8/8z3tbeAiwVMa4
 v51PsPNnogfnefgrTKsPmOsLr+5Cg/d5mnTkqxIQYYYxliCERXquS3IoWB5iPHVD
 uMfxpCaFRKqMEEtMmrBFPSPCwdhhHGHQDkKDcfEpCFCjC27BXWorcERruedrVMrZ
 NM6TrYEYu69FFpWfpiGYy/ruuS6lRoqpBylH8aczyqNTwuIsUgq3FHhz3qLKD2iY
 8eN25pu4C2D3O9FRr1lDEVuwVaH9JRY3Eq7izEUCQWq8pQ4kUf+aJ/3W3RE82bIW
 BEdrCQp3pdv3EcU=
 =izC9
 -----END PGP SIGNATURE-----

Merge tag 'clk-eyeq7h-7.3' of ssh://github.com/benoitmonin/linux into clk-mobileye

Pull Mobileye clk driver updates from Benoît Monin:

 - Add support for Mobileye EyeQ7H

This patchset brings the support of the Other Logic Blocks (OLB)
found in the first Mobileye SoC based on the RISC-V architecture, the
EyeQ7H. Despite the change from MIPS to RISC-V, the Other Logic Blocks
provide similar clock and reset functions to the controllers of the
chip. This series introduces the device tree bindings of the SoC and
the necessary changes to the clock and reset eyeq drivers.

Signed-off-by: Benoît Monin <benoit.monin@bootlin.com>

* tag 'clk-eyeq7h-7.3' of ssh://github.com/benoitmonin/linux:
  clk: eyeq: Add EyeQ7H compatibles
  clk: eyeq: Drop PLL, dividers, and fixed factors structs
  clk: eyeq: Convert clocks declaration to eqc_clock
  clk: eyeq: Introduce a generic clock type
  clk: eyeq: Prefix the PLL registers with the PLL type
  clk: fixed-factor: Export __clk_hw_register_fixed_factor()
  clk: fixed-factor: Rework initialization with parent clocks
  reset: eyeq: Add EyeQ7H compatibles
  dt-bindings: soc: mobileye: Add EyeQ7H OLB
2026-08-11 21:14:53 -07:00
Stephen Boyd
aa7ebeb035 T-HEAD clock changes for v7.3
There is just one change for this cycle. It allows COMPILE_TEST to
 select the th1520 clk driver without having CONFIG_ARCH_THEAD enabled.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSy8G7QpEpV9aCf6Lbb7CzD2SixDAUCal/PFAAKCRDb7CzD2Six
 DEWNAQChPTMeMYPSOzrEmnFodEFynvQUTfGaUXJWUHFC8DViJAD+PUViDmeX2rCq
 mTcn6IONeO13d75VjZ8hFdDaZNoxZwI=
 =57RB
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmp78vIUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSWBVhAAiM6LDFrutqtNaUF12epX8OZWB8J9
 WS14AdTKBef25c4Ys2JN0FI62hXceD8kulh8mwpTjxBVtiRl686T4WbDrUWe7G4D
 V9qGP2Mt2w550TcxgSb3xZ94icK5/Ap6cPAozCoYtklQvdJ+rzKhYTBIAgjv4O1L
 FRK7hkscpHJZX2GRKUwCF2n1vDveLiTUh4fOilP+McEyHNrG4ByY8cQ0gosKhCAI
 rJA7m+JQWHHl+5kp+G3dpSP783TevNFc25/Oiltgt4uYmoc4lEXnmVkw1KTbzmFD
 IzvYzu3GQjzUNszyuQQCctwa96XN/xTLYZQhosO+6+e+Gt99kwhJuZw5CaE/MdmN
 jEJZXZZmR6w94ta9eaqkWGAG7MU1XNmxtFQ7TkLmZ7EPzRqH8BGgVxB1nTMymPuh
 qZHQVhAPOBm21ipehBy/37xF90QJcPMmyIlqQKjzFvMSiFCoEjIBMZQaA6eoFgs1
 KxvXkoywHtHFIKEpFFIIa1ka4kNbzQB+wtb7v5Gex/kcdUf8QjfUAcMX0CSuod0r
 lohcjsQZTvD8RdZfVngYueN7JAb4E6k/JRE5vOcy9aJ5giq/3blrJpDokcjLQUVx
 EJQeL26tJp+FkLZFMR+N817dtxYGu5e6T0qm56KGXT2ohJGmyRhFWon5Q55fDH7G
 lXTsjBuVWBTgb9w=
 =rH/5
 -----END PGP SIGNATURE-----

Merge tag 'thead-clk-for-v7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/fustini/linux into clk-thead

Pull one T-HEAD clk driver update from Drew Fustini:

There is just one change for this cycle. It allows COMPILE_TEST to
select the th1520 clk driver without having CONFIG_ARCH_THEAD enabled.

* tag 'thead-clk-for-v7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/fustini/linux:
  clk: thead: allow COMPILE_TEST builds
2026-08-11 21:13:23 -07:00
Stephen Boyd
9ff218b1b0 clk: renesas: Updates for v7.3 (take two)
- Add initial support for the R-Car X5H (R8A78000) SoC.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCanWRVQAKCRCKwlD9ZEnx
 cKNVAP9pKFeaM/jIm9mFbJuntzrbaEkpf/rEJLtqumBEvFZMJwEA6S3P2JMX7xiC
 Sp80LxpWLXoZd9qfS1P8QAbbCXw4RQ0=
 =xOgl
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmp78qsUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSW/Uw//YjD7RLFBUo3eySKpYpajh222EHEi
 Nso3DFu9ZjPQtzZUqiPrSf0lrtZ9iEIdxHd+ocTRVkyOlhxcmK8GejBbaNRHaucS
 eL/yCX01AmoVoRDDUuGTNxQfFE9KdmXa6QJXO+pnzzZ86/kSKdhID15VmbLhNx49
 r8qiejWVmooGKP2t0hnhOPqc9qbQr2U4KaU1MoWZPYPSDHTfivLyjepviqjTrpUp
 bUNVBB4eB2G7xmtyxziFM3tp2MqTnU/+cC9rSlMClCN4QuhJlLCD+tSVtMInKzQj
 /EReG6tShA+LnZ/nAv+wDQe4WrQ5cL5guLF8QnlIXGUus1utUibXVE6IqH24Ric8
 ONe01APSxJVDPtPD7jog+yZIU6yz8SUyMHBYoUh/9v6OkWMpVj1jbrc5h0/r/ell
 HAXvjNMvAl2l1TrlMWQAfjNM183m/hvFCVhRoPOmiUaSmNGinuMPJmq2aiOKLZPQ
 saa00wpbBQAxMhXewthMimTV1grHkOqM662V4fKvjXcjrkUUkQTsQPMAyOVCFlwo
 J4ohdrHeAKCam8S5/Ujvj5n9kMkNC17WG1pnNsqVgNC2J9hCJq+z9ezfHPvnyGGh
 2+W+Pz52FvCgdbKG+OuNlq7WY875mEMeUboReH5GcNoCTPzfZ/1sC0COA3aWoeH/
 88M2Uoe49trgq/s=
 =6IHW
 -----END PGP SIGNATURE-----

Merge tag 'renesas-clk-for-v7.3-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into clk-renesas

Pull more Renesas clk driver updates from Geert Uytterhoeven:

 - Add initial support for the R-Car X5H (R8A78000) SoC

* tag 'renesas-clk-for-v7.3-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers:
  clk: renesas: Add R-Car X5H CPG driver
  dt-bindings: clock: Document Renesas R-Car X5H Clock Pulse Generator
2026-08-11 21:12:05 -07:00
Stephen Boyd
9863548a66 clk: renesas: Updates for v7.3
- Add RTC and display clocks on RZ/T2H and RZ/N2H,
   - Add audio and display clocks and resets on RZ/G3E,
   - Add SDHI, GPU, and USB2.0 clocks and resets on RZ/G3L,
   - Update the maintainer for the VersaClock 7 driver,
   - Add CAN-FD clocks and resets for RZ/G3S.
   - Miscellaneous fixes and improvements.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCalijCgAKCRCKwlD9ZEnx
 cD2YAQCsAFz3d2r1UpHBCtvrWJd9RFlb4XNaC+yPKHTPpUVMtQD/eCW8T81CLwMN
 8ZIxfYm0xIrY9U6aYLu+jXVWG9XnxQs=
 =7PgU
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmp78jIUHHN3Ym95ZEBj
 aHJvbWl1bS5vcmcACgkQrQKIl8bklSUiyhAArODaLyJ/WGf6HYKzdkL1dTZfXOa7
 1GKUY8TPivI6omCmRd4GwD2MdhRwmpOiNC5AV/qrn0IEQ3Rb8EnRp7DnHHaqkhzO
 inJ4rZrB2GPqF/nzj10gWItvQDxhwsG2Ak1c34sKOyLoX6oRsiiPLq8Q0P9YfB5D
 80/6T28qtObEIjKpWvN49jRudTKgPS5sgl99NSNppTdfiF40DOTNbWlxuoBvT7dQ
 6LE259ZjWeqPRQghLQPPwJDj4Lss/wkc/Q2xm8rH8lBYhelXSMQMAcL20O1peBDs
 yar/15YzAb8dqxHaFCwOdsL7hzDlvRAGtUYudGSFdqx++ujGx4ikIU/FDqyBRL2B
 QPYRHV5guLGHaCHffL0/9JirZ2i++KL2sIbFkwWS0ia3n8Y0DNVvIhLABDXAgY7c
 +p5enrwYU2dLBAiqNoSst+wTfyx0AbyhumMEeVk4PZqF79tRKKcJgF17KBhimAMU
 hsfJ2LXoGE1Cx+4q0OH3kU5igy3id2LPp1k0c6VXYWnuIRAnU4xjnW9H2eKObon7
 BCoxCPWHNV7LD4LZs2avATq0WLHuQl9t0TMpafJ8n0BaV5Z8RMrcxFsipyM+qg9l
 zGSVxZ2Ik37v8DNajRqD9aP6bX+crKnuel0faQ7z89GaP/PZx8+Roxe9yqAXjFQ9
 iKNcpwodTeB7kcA=
 =KW+M
 -----END PGP SIGNATURE-----

Merge tag 'renesas-clk-for-v7.3-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into clk-renesas

Pull Renesas clk driver updates from Geert Uytterhoeven:

 - Add RTC and display clocks on RZ/T2H and RZ/N2H
 - Add audio and display clocks and resets on RZ/G3E
 - Add SDHI, GPU, and USB2.0 clocks and resets on RZ/G3L
 - Update the maintainer for the VersaClock 7 driver
 - Add CAN-FD clocks and resets for RZ/G3S

* tag 'renesas-clk-for-v7.3-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers:
  clk: r9a08g045: Add clocks and resets for CAN-FD
  dt-bindings: clock: renesas,versaclock7: Update maintainer
  clk: renesas: r9a09g047: Add LVDS clocks and resets
  clk: renesas: r9a09g077: Add LCDC and PLL3 clock support for RZ/T2H display pipeline
  clk: renesas: rzv2h-cpg: Extract PLL calculation helpers into shared library
  clk: renesas: rzv2h-cpg: Use per-SoC PLL reference frequency for calculations
  clk: renesas: r9a08g046: Add USB2.0 clock and reset entries
  clk: renesas: r9a09g077: Add RTC clocks
  clk: renesas: cpg-mssr: Implement dedicated MSTP delay logic for RZ/T2H LCDC and RTC
  clk: renesas: r9a08g046: Add clock and reset entries for GE3D
  clk: renesas: r9a08g046: Add clock and reset entries for SDHI
  clk: renesas: r9a09g047: Add audio clock and reset support
  dt-bindings: clock: renesas: Add audio clock inputs for RZ/V2H family
  dt-bindings: clock: renesas,r9a09g077/87: Add PCLKRTC clock ID
  dt-bindings: clock: renesas,r9a09g077/87: Add LCDC_CLKD clock ID
2026-08-11 21:10:06 -07:00
Krishna Chaitanya Chundru
75a3b50ad9 PCI/ASPM: Use pcie_capability_clear_and_set_word() for ASPM disable/restore
pcie_aspm_cap_init() disables ASPM L0s/L1 on both ends of the Link
before touching L1SS config, then later restores the LNKCTL state
that was in effect beforehand. Both steps use raw
pcie_capability_write_word() calls: the disable step computes the
new value by hand from a snapshot taken earlier in the function, and
the restore step writes that same snapshot straight back.

Switch both steps to pcie_capability_clear_and_set_word(), masked to
PCI_EXP_LNKCTL_ASPMC, matching the accessor pcie_config_aspm_dev()
already uses elsewhere in this file for the exact same register. This
does a live read-modify-write of just the ASPM Control bits instead of
relying on a stale snapshot for the rest of the word, and is
consistent with how the rest of the file already touches this
register. No functional change.

Fixes: 7447990137 ("PCI/ASPM: Disable L1 before disabling L1 PM Substates")
Closes: https://lore.kernel.org/all/20260721143945.86E7D1F000E9@smtp.kernel.org/
Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Link: https://patch.msgid.link/20260727-aspm-v6-1-2ebb3ee7ef71@oss.qualcomm.com
2026-08-11 21:36:49 -05:00
Shaojie Sun
44f57a2b1b cgroup/cpuset: Add test for partition root invalidation returning wrong CPUs
Add a test case to REMOTE_TEST_MATRIX covering the bug fixed by
commit 345f401666 ("cgroup/cpuset: Return only actually allocated
CPUs during partition invalidation"). The test verifies that when a
sibling partition root changes its cpuset.cpus to overlap with another
partition root, only actually allocated CPUs (effective_xcpus) are
returned to the parent, not all CPUs in cpus_allowed.

Signed-off-by: Shaojie Sun <sunshaojie@kylinos.cn>
Reviewed-by: Waiman Long <longman@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
2026-08-11 15:59:35 -10:00
Guopeng Zhang
6dd5d93f6c cgroup/cpuset: Remove obsolete PFA_SPREAD_SLAB task flag
Commit 16a1d96835 ("mm/slab: remove mm/slab.c and slab_def.h")
removed the SLAB allocator, the only allocator that implemented cpuset
slab spreading. Commit 61a182ab61 ("cgroup/cpuset: Remove
cpuset_do_slab_mem_spread()") then removed the last task_spread_slab()
caller. Commit 3ab67a9ce8 ("cgroup/cpuset: Mark memory_spread_slab as
obsolete") marked the legacy control obsolete.

cpuset still updates PFA_SPREAD_SLAB when tasks attach to a legacy
cpuset and walks all tasks in a cpuset when memory_spread_slab changes.
Remove the unused task flag and its helpers, and make spread task
updates depend only on memory_spread_page.

Keep the memory_spread_slab control and CS_SPREAD_SLAB state so legacy
users retain the existing write, readback and inheritance behavior.
Update the comments and documentation to describe only page-cache
spreading as functional.

Assisted-by: LLM
Signed-off-by: Guopeng Zhang <zhangguopeng@kylinos.cn>
Reviewed-by: Waiman Long <longman@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
2026-08-11 15:43:08 -10:00
Jakub Kicinski
ac155a2675 Merge branch 'mptcp-out-of-order-queue-pruning'
Matthieu Baerts says:

====================
mptcp: out-of-order queue pruning

Under memory pressure, a pruning of the MPTCP-level OoO queue might be
required as last resort, to avoid too long recoveries, or even stalls.
Geliang and Gang managed to reproduce this behaviour, and Paolo
improved the situation thanks to the following patches:

- Patches 1-3: improve the MPTCP-level retransmission schema to make
  recoveries from memory pressure/after MPTCP-level drop significantly
  faster.

- Patches 4-5: make the admission check way stricter for incoming
  packets exceeding the memory limits, with some exceptions for fallback
  sockets.

- Patches 6-7: implement OoO queue pruning for MPTCP.
====================

Link: https://patch.msgid.link/20260807-net-next-mptcp-oooq-pruning-v3-0-dbc1eb853cc3@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-11 18:35:41 -07:00
Paolo Abeni
e468d37118 mptcp: implemented OoO queue pruning
When moving incoming skbs in the msk receive queue and the latter
is above limits, prune it as needed quite alike what TCP is doing
at the subflow level. The main difference relies in the stop condition:
since MPTCP does not perform collapsing, it's better off dropping the
bare minimum to fit the (newer) incoming packet.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Tested-by: Gang Yan <yangang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260807-net-next-mptcp-oooq-pruning-v3-7-dbc1eb853cc3@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-11 18:35:38 -07:00
Paolo Abeni
996643574c mptcp: avoid code duplication in __mptcp_move_skb()
Alike TCP, MPTCP handles in-sequence packets and partially overlapping
ones in a very similar way: we can use the same path to handle both,
avoiding some code duplication.

This will also make the next patch simpler.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260807-net-next-mptcp-oooq-pruning-v3-6-dbc1eb853cc3@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-11 18:35:38 -07:00
Paolo Abeni
b1224c4b40 mptcp: enforce hard limit on backlog flushing
Currently a wild producer could keep the backlog flushing operation
spinning for an unbound time.

Since the previous patch, the amount of data present in the backlog is
hard-limited. Move the backlog len update at the end of the flush loop to
prevent it spinning forever.

Also, no need to splice back the remaining skbs list into the backlog, as
such list is always empty after each backlog processing loop.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260807-net-next-mptcp-oooq-pruning-v3-5-dbc1eb853cc3@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-11 18:35:37 -07:00
Paolo Abeni
e0e4d56b05 mptcp: explicitly drop over memory limits
Currently the enforcement of the rcvbuf constraint is implemented
when moving the skbs into the msk receive or OoO queue, keeping the
incoming skbs in the subflow queue when over limits.

Under significant memory pressure the above can cause permanent data
transfer stalls, as the skb needed to make forward progress can be
stuck in a subflow queue.

Over memory limits, drop the incoming skb, relying on MPTCP-level
retransmissions.

Note that fallback socket must perform the limit before the skb reaches
the subflow-level queue, as dropping an in-sequence already acked skb
would break the stream.

This is not a complete fix for the stall issue, as the drop strategy
needs refinements that will come in the next patches.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260807-net-next-mptcp-oooq-pruning-v3-4-dbc1eb853cc3@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-11 18:35:37 -07:00
Paolo Abeni
96d846e3e2 mptcp: let the retrans scheduler do its job
Currently the MPTCP core enforces that when MPTCP-level retrans timer
fires, at most a single dfrag is retransmitted. In some corner-cases, it
may be necessary to retransmit multiple dfrags, and the MPTCP socket
will need to wait multiple retrans timeout to accomplish that.

Remove the mentioned constraint, allowing to transmit multiple dfrags
per retrans period, as long as the scheduler keeps selecting subflows
for retransmissions and pending data is available in the rtx queue.
The default scheduler will transmit a dfrag per available subflow.

Tested-by: Gang Yan <yangang@kylinos.cn>
Tested-by: Geliang Tang <geliang@kernel.org>
Acked-by: Geliang Tang <geliang@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260807-net-next-mptcp-oooq-pruning-v3-3-dbc1eb853cc3@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-11 18:35:37 -07:00
Paolo Abeni
6cafe51e0f mptcp: move the stale logic out of retrans scheduler
This allow separating the stale logic invocation and the retrans
scheduler, and will simplify the next patch.

It's also a cleaner design as the retrans scheduler has currently
too many side effects. As a possible downside, the retrans work will
now traverse the subflows list additional times; that does not matter
much, as this is slowpath.

While at it, pick more accurate names for the involved helpers and
explicitly note that the per subflow stale data is under msk socket
lock protection.

The scheduler and the stale logic may observe different subflow
statues, as no subflow lock is acquired. This is intentional and not
harmful, worst case leading to slower retransmissions.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260807-net-next-mptcp-oooq-pruning-v3-2-dbc1eb853cc3@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-11 18:35:37 -07:00
Paolo Abeni
789e6a844b mptcp: move the retrans loop to a separate helper
This is a cleanup in order to make the next patch simpler.

No functional change intended.

Tested-by: Gang Yan <yangang@kylinos.cn>
Tested-by: Geliang Tang <geliang@kernel.org>
Acked-by: Geliang Tang <geliang@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260807-net-next-mptcp-oooq-pruning-v3-1-dbc1eb853cc3@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-11 18:35:37 -07:00
Tejun Heo
d954004205 sched_ext: Fix rq->core_pick corruption under core scheduling
Core scheduling's pick_next_task() picks what to run on every SMT sibling of
the core in a single pass under the shared core-wide rq lock. The selection
state is consistent only while the lock is held continuously, so
->pick_task() originally could not release it. However, since 4c95380701
("sched/ext: Fold balance_scx() into pick_task_scx()"), sched_ext runs
dispatch from inside the pick and dispatching can drop the rq lock. To
support this, pick_next_task() has been updated to restart the whole
selection when a pick returns RETRY_TASK after releasing the lock.

When selections on the same core interleave through the dropped lock, they
corrupt each other's state: one clears the other's rq->core_pick leading to
a NULL deref, or invalidates its keep-the-previous-task decision leaving a
dequeued task running, which deadlocks the next wakeup and matches the
reported hard hangs. A cookied ping-pong load on an SMT machine makes the
interleavings frequent and kills the kernel within seconds.

Fix it by making the pick return RETRY_TASK whenever dispatch released the
rq lock, so that a selection only ever commits picks made under a
continuously held lock. The previous patch's rq->scx.lock_drop_seq counts
the releases. A dispatch that touched nothing never releases the lock and
its verdict, including "nothing to run", stands: retries are bounded, each
following a dispatch that actually did something, and an idle CPU does not
loop.

If another dispatch is already in flight on the rq, skip dispatching and
pick from what is already queued locally - the in-flight dispatch has
released the lock, so its own selection will retry and re-pick this rq,
while returning RETRY_TASK here would only spin on the lock that dispatch
needs to finish.

Balance callbacks must run in the context that queued them, so they can only
be queued on the CPU's own rq. When dispatching for another rq, run the
deferred work directly instead - that rq may consume all its picks through
the core-sched fast path and never queue the callback itself.

The put_prev_task_scx() warning about a runnable task being left behind
assumed that dispatch ran as part of the very pick that is switching away.
That now only holds on the non-core path, so gate it and drop the
cookie-match test, which is always true without core scheduling, from its
condition.

Fixes: 4c95380701 ("sched/ext: Fold balance_scx() into pick_task_scx()")
Cc: stable@vger.kernel.org # v6.19+
Reported-by: ElXreno <elxreno@gmail.com>
Link: https://github.com/sched-ext/scx/issues/3715
Signed-off-by: Tejun Heo <tj@kernel.org>
2026-08-11 15:34:45 -10:00
Tejun Heo
f2da958711 sched_ext: Count rq lock releases in rq->scx.lock_drop_seq
Under core scheduling, pick_next_task() selects for all SMT siblings under
one continuous hold of the shared core-wide rq lock, and sched_ext's
dispatch can release that lock from inside the pick. In preparation for
making the core-sched pick detect the releases and retry, add
rq->scx.lock_drop_seq and bump it at every site that can release an rq lock
while a dispatch may be in flight. The counter is only maintained while core
scheduling is enabled. No functional changes.

Fixes: 4c95380701 ("sched/ext: Fold balance_scx() into pick_task_scx()")
Cc: stable@vger.kernel.org # v6.19+
Signed-off-by: Tejun Heo <tj@kernel.org>
2026-08-11 15:34:45 -10:00
Tejun Heo
3dd52416e4 sched_ext: Fix this_rq() assumptions in dispatch kfuncs
Under core scheduling, dispatch runs from within the core-wide pick and can
target a sibling rq, so ops.dispatch() may execute on a CPU different from
the dispatched rq's. Several kfunc paths assumed the two always coincide:

- scx_dsq_move() decided whether an rq lock is held by testing this_rq()'s
  rq flags and lock-danced accordingly. A dispatch for a sibling took the
  unlocked-context branch and acquired the source rq lock on top of the
  already held dispatched rq lock which could deadlock.

- scx_bpf_sub_dispatch() dispatched this_rq() with its stashed
  sub_dispatch_prev, which is NULL when dispatching for a sibling.

- finish_dispatch(), scx_bpf_dsq_reenq() and scx_bpf_dsq_nr_queued()
  resolved SCX_DSQ_LOCAL to this CPU's local DSQ rather than the dispatched
  rq's. The latter two are callable from other rq-locked operations too,
  where SCX_DSQ_LOCAL now likewise resolves to the op's rq. This changes
  behavior also without core scheduling, e.g. for ops.enqueue() running a
  remote wakeup on the waking CPU, and is intended: which CPU happens to
  execute an operation is incidental, the op's rq is what it is operating
  on, and the resolution now matches the insert side where SCX_DSQ_LOCAL
  dispatches land on the task's rq.

Use the rq tracked by scx_locked_rq(), which is set to the dispatched rq
around ops invocations and NULL in unlocked contexts.

Fixes: 4c95380701 ("sched/ext: Fold balance_scx() into pick_task_scx()")
Cc: stable@vger.kernel.org # v6.19+
Signed-off-by: Tejun Heo <tj@kernel.org>
2026-08-11 15:34:45 -10:00