summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-06-29arm64: dts: freescale: add LVDS overlays for TQMa8MPxSPaul Gerber
This adds overlays for the supported LVDS display tianma tm070jvhg33 for both LVDS channels. The display timings have to be specified explicitly. Using the typical pixel clock, the LDB clock can not be configured as the 7-fold of that. By setting pixel clock to 74.25 MHz, LDB can be configured to exactly 519.75 MHz. Signed-off-by: Paul Gerber <paul.gerber@tq-group.com> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: freescale: add initial device tree for TQMa8MPQS with i.MX8MPPaul Gerber
This adds support for TQMa8MPQS module on MB-SMARC-2 board. Signed-off-by: Paul Gerber <paul.gerber@tq-group.com> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29dt-bindings: arm: fsl: add TQMa8MPxS boardPaul Gerber
TQMa8MPxS is a SOM family using NXP i.MX8MP CPU family. MB-SMARC-2 is an evaluation mainbord for this SOM The SOM needs a mainboard, therefore we provide two compatibles here: "tq,imx8mp-<SOM>" for the module and "tq,imx8mp-<SOM>-<SBC>" Signed-off-by: Paul Gerber <paul.gerber@tq-group.com> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29ARM: imx: fix device_node refcount leaks in imx7_src_init()Weigang He
imx7_src_init() obtains two device_node references via of_find_compatible_node() - one for "fsl,imx7d-src" and one for "fsl,imx7d-gpc" - reusing the same np variable, but never calls of_node_put() on either. On every i.MX7D boot up to two device_node refcounts are leaked: - The "fsl,imx7d-src" node is leaked both when of_iomap() fails (the early return after the mapping) and when it succeeds, because np is then overwritten by the second of_find_compatible_node() call without releasing the prior reference. - The "fsl,imx7d-gpc" node is leaked on every path leaving the function after it is acquired. Release each reference immediately after of_iomap() consumes the node. of_iomap() maps the node's registers but does not retain a reference to the device_node, so it is safe to put the node once mapped; this also drops the first reference before np is reused for the second lookup. Found by static analysis tool CodeQL. Fixes: e34645f45805 ("ARM: imx: add smp support for imx7d") Signed-off-by: Weigang He <geoffreyhe2@gmail.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29ARM: imx: fix device_node refcount leak in imx_src_init()Weigang He
imx_src_init() obtains a device_node reference via of_find_compatible_node() matching "fsl,imx51-src" and uses it only to call of_iomap(). It never releases that reference: on the success path the function returns at the end without of_node_put(np), leaking one device_node refcount on every boot of an i.MX5/6 platform. Release the reference right after of_iomap(). of_iomap() maps the node's registers but does not retain a reference to the device_node, so the node can be put once the mapping is done. The early return on a NULL np needs no put. Found by static analysis tool CodeQL. Fixes: bd3d924d71a4 ("ARM i.MX5: Add System Reset Controller (SRC) support for i.MX51 and i.MX53") Signed-off-by: Weigang He <geoffreyhe2@gmail.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29clk: hisilicon: reset: Use devm_kzalloc to initialize hisi_reset_controllerMin zhang
Using devm_kmalloc() does not zero-initialize the allocated structure. Uninitialized members in struct hisi_reset_controller may contain garbage data, which can cause reset_controller_register() to fail unexpectedly. Replace devm_kmalloc() with devm_kzalloc() to ensure all structure fields are properly zero-initialized. Fixes: 97b7129cd2afb ("reset: hisilicon: change the definition of hisi_reset_init") Reviewed-by: Brian Masney <bmasney@redhat.com> Signed-off-by: Min zhang <zhangmin2026@yeah.net> Signed-off-by: Brian Masney <bmasney@redhat.com>
2026-06-29clk: add missing function short descriptions for kernel-docRandy Dunlap
Add short descriptions for 3 functions which are missing it. Modify the parameter name in comments to be @core instead of clk. Use corrected function names (with leading "__") in a few places. Warning: drivers/clk/clk.c:1899 missing initial short description on line: * __clk_recalc_accuracies Warning: drivers/clk/clk.c:1972 missing initial short description on line: * __clk_recalc_rates Warning: drivers/clk/clk.c:2244 missing initial short description on line: * __clk_speculate_rates This eliminates warnings in this file except for missing return value warnings, of which there are around 70. Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Reviewed-by: Brian Masney <bmasney@redhat.com> Signed-off-by: Brian Masney <bmasney@redhat.com>
2026-06-29ARM: dts: imx7d-pico: describe Bluetooth controllerLech Perczak
Ampak AP6335i Wi-Fi module atop i.MX7D Pico SoM also supports Bluetooth 4.1 via UART attached to "serial6" port. Describe it, so the controller can probe automatically on boot. This is based on "Pico i.MMX Development Kit for Android Things Hardware Manual" rev. B1 [1], Table 6 on page 12. Link: https://www.nxp.com/docs/en/user-guide/PICO-IMX7UL-USG.pdf [1] Signed-off-by: Lech Perczak <lech.perczak@gmail.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29clk: Use named initializers for arrays of i2c_device_dataUwe Kleine-König (The Capable Hub)
While being less compact, using named initializers allows to more easily see which members of the structs are assigned which value without having to lookup the declaration of the struct. And it's also more robust against changes to the struct definition. The mentioned robustness is relevant for a planned change to struct i2c_device_id that replaces .driver_data by an anonymous union. While touching all these arrays, unify usage of whitespace and commas. This patch doesn't modify the compiled arrays, only their representation in source form benefits. The former was confirmed with x86 and arm64 builds. Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com> Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> # clk-versaclock5 Reviewed-by: Brian Masney <bmasney@redhat.com> Signed-off-by: Brian Masney <bmasney@redhat.com>
2026-06-29clk: si5341: Drop unused i2c driver_dataUwe Kleine-König (The Capable Hub)
The driver doesn't make use of the value that was explicitly assigned to the .driver_data member. Drop the assignment. Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com> Reviewed-by: Brian Masney <bmasney@redhat.com> Signed-off-by: Brian Masney <bmasney@redhat.com>
2026-06-29vfio/pci: Latch all module parameters per deviceAlex Williamson
The vfio-pci module parameters of disable_idle_d3, nointxmask, and disable_vga latch vfio-pci policy into vfio-pci-core globals each time the vfio-pci module is initialized. The disable_idle_d3 parameter has already migrated to a per-device flag in order to provide consistency for refcounted PM operations for the lifetime of the device registration. Pull the remaining vfio-pci module-parameter policy out of vfio-pci-core into per-device flags set at device initialization. This also restores the mutable aspect of the disable_idle_d3 and nointxmask module parameters for vfio-pci, with the caveat that the parameters are latched into the device at probe. A notable change for variant drivers is that their devices are no longer affected by vfio-pci module parameters and those drivers may need to adopt similar module parameters if any devices have a hidden dependency on vfio-pci setting non-default policy. Assisted-by: Claude:claude-opus-4-8 Acked-by: Chengwen Feng <fengchengwen@huawei.com> Signed-off-by: Alex Williamson <alex.williamson@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Link: https://lore.kernel.org/r/20260615191241.688297-6-alex.williamson@nvidia.com Signed-off-by: Alex Williamson <alex@shazbot.org>
2026-06-29vfio/mlx5: Fix racy bitfields and tighten struct layoutAlex Williamson
Bitfield operations are not atomic, they use a read-modify-write pattern, therefore we should be careful not to pack bitfields that can be concurrently updated into the same storage unit. This split takes a binary approach: flags that are only modified pre/post open/close remain bitfields, flags modified from user action, including actions that reach across to another device (ex. reset) use dedicated storage units. Note mlx5_vhca_page_tracker.status is relocated to fill the alignment hole this split exposes. Bitfield justifications: migrate_cap: written only in mlx5vf_cmd_set_migratable() at probe chunk_mode: written only in mlx5vf_cmd_set_migratable() at probe mig_state_cap: written only in mlx5vf_cmd_set_migratable() at probe Dedicated storage units: mdev_detach: written in the VF attach/detach event notifier mlx5fv_vf_event() at runtime log_active: written in mlx5vf_start_page_tracker()/ mlx5vf_stop_page_tracker() during runtime dirty tracking deferred_reset: written in mlx5vf_state_mutex_unlock()/ mlx5vf_pci_aer_reset_done() during runtime reset handling is_err: set by tracker error handling and dirty-log polling at runtime object_changed: set by tracker event handling and cleared by dirty-log polling at runtime Fixes: 61a2f1460fd0 ("vfio/mlx5: Manage the VF attach/detach callback from the PF") Fixes: 79c3cf279926 ("vfio/mlx5: Init QP based resources for dirty tracking") Fixes: f886473071d6 ("vfio/mlx5: Add support for tracker object change event") Cc: Yishai Hadas <yishaih@nvidia.com> Cc: stable@vger.kernel.org Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Alex Williamson <alex.williamson@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Link: https://lore.kernel.org/r/20260615191241.688297-5-alex.williamson@nvidia.com Signed-off-by: Alex Williamson <alex@shazbot.org>
2026-06-29vfio/pci: Fix racy bitfields and tighten struct layoutAlex Williamson
Bitfield operations are not atomic, they use a read-modify-write pattern, therefore we should be careful not to pack bitfields that can be concurrently updated into the same storage unit. This split takes a binary approach: flags that are only modified pre/post open/close remain bitfields, flags modified from user action, including actions that reach across to another device (ex. reset) use dedicated storage units. Note that the virq_disabled and bardirty flags are relocated to fill an existing hole in the structure. Bitfield justifications: has_dyn_msix: written only in vfio_pci_core_enable() pci_2_3: written only in vfio_pci_core_enable() reset_works: written only in vfio_pci_core_enable() extended_caps: written only in vfio_cap_len() under vfio_config_init() has_vga: written only in vfio_pci_core_enable() nointx: written only in vfio_pci_core_enable() needs_pm_restore: written only in vfio_pci_probe_power_state() disable_idle_d3: written only at .init in vfio_pci_core_init_dev() Dedicated storage units: virq_disabled: written by guest INTx command writes in vfio_basic_config_write() while the device is open bardirty: written by guest BAR writes in vfio_basic_config_write() while the device is open pm_intx_masked: written in the runtime-PM suspend path. pm_runtime_engaged: written by low-power feature entry/exit paths needs_reset: set in vfio_pci_core_disable() and cleared for devices in the set by vfio_pci_dev_set_try_reset() sriov_active: written by vfio_pci_core_sriov_configure() via sysfs sriov_numvfs while bound. Fixes: 9cd0f6d5cbb6 ("vfio/pci: Use bitfield for struct vfio_pci_core_device flags") Cc: stable@vger.kernel.org Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Alex Williamson <alex.williamson@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Link: https://lore.kernel.org/r/20260615191241.688297-4-alex.williamson@nvidia.com Signed-off-by: Alex Williamson <alex@shazbot.org>
2026-06-29vfio/pci: Release the VGA arbiter client on register_device() failureAlex Williamson
The re-order in the Fixes commit below displaced vfio_pci_vga_init() as the last failure point of what is now vfio_pci_core_register_device() without introducing an unwind for the VGA arbiter registration. In current kernels this is mostly benign because vfio_pci_set_decode() only uses pci_dev state, but the original failure path could leave a callback with a freed vdev cookie. The stale registration also becomes unsafe again once the callback follows drvdata to the vfio device. Add the required VGA unwind callout. Fixes: 4aeec3984ddc ("vfio/pci: Re-order vfio_pci_probe()") Cc: stable@vger.kernel.org Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Alex Williamson <alex.williamson@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Link: https://lore.kernel.org/r/20260615191241.688297-3-alex.williamson@nvidia.com Signed-off-by: Alex Williamson <alex@shazbot.org>
2026-06-29vfio/pci: Latch disable_idle_d3 per deviceAlex Williamson
When disable_idle_d3 was introduced in vfio-pci, it directly manipulated the device power state with pci_set_power_state(). There were no refcounts to maintain or balanced operations, we could unconditionally bring the device to D0 and conditionally move it to D3hot. Therefore the module parameter was made writable. Later, in commit c61302aa48f7 ("vfio/pci: Move module parameters to vfio_pci.c"), as part of the vfio-pci-core split, the writable aspect of the module parameter was nullified. The parameter value could still be changed through sysfs, but the vfio-pci driver latched the values into vfio-pci-core globals at module init. Loading the vfio-pci module, or unloading and reloading, with non-default or different values could change the globals relative to existing devices bound to vfio-pci variant drivers. Runtime PM was introduced in commit 7ab5e10eda02 ("vfio/pci: Move the unused device into low power state with runtime PM"), which marks the point where power states became refcounted. PM get and put operations need to be balanced, but the same module operations noted above can change the global variables relative to those devices already bound to vfio-pci variant drivers. This introduces a window where PM operations can now become unbalanced. To resolve this with a narrow footprint for stable backports, the disable_idle_d3 flag is latched into the vfio_pci_core_device at the time of initialization, such that the device always operates with a consistent value. NB. vfio_pci_dev_set_try_reset() now unconditionally raises the runtime PM usage count around bus reset to account for disable_idle_d3 becoming a per-device rather than global flag. When this flag is set, the additional get/put pair is harmless and allows continued use of the shared vfio_pci_dev_set_pm_runtime_get() helper. Fixes: 7ab5e10eda02 ("vfio/pci: Move the unused device into low power state with runtime PM") Cc: stable@vger.kernel.org Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Alex Williamson <alex.williamson@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Link: https://lore.kernel.org/r/20260615191241.688297-2-alex.williamson@nvidia.com Signed-off-by: Alex Williamson <alex@shazbot.org>
2026-06-29arm64: dts: freescale: imx8mp-var-som: add I2C1 bus recovery GPIOsStefano Radaelli
Add the GPIO pinctrl state and GPIO descriptors required for I2C1 bus recovery on the VAR-SOM-MX8M-PLUS. This allows the I2C controller to recover the bus if SDA or SCL are held low by a device. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: add second Ethernet portStefano Radaelli
Add support for the second Ethernet interface available on the Symphony carrier board. Enable the FEC controller, add the MaxLinear MXL86110 Gigabit Ethernet PHY on the MDIO bus, describe its reset and power configuration, and add the required RGMII pinctrl settings. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: enable CANStefano Radaelli
Enable the FlexCAN2 controller on the Symphony carrier board and add the corresponding pinctrl configuration. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: enable PWM1Stefano Radaelli
Enable PWM1 on the Symphony carrier board and add the corresponding pinctrl configuration. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: keep RGB_SEL lowStefano Radaelli
Keep the RGB_SEL line driven low on the Symphony carrier board. This avoids leaving the line floating and ensures the board remains in the expected display configuration. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: enable ECSPI2Stefano Radaelli
Enable the ECSPI2 bus on the Symphony carrier board and add the pinctrl configuration for the SPI signals and chip select GPIO. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: add capacitive touchscreenStefano Radaelli
Add the FT5206 capacitive touchscreen controller on the Symphony carrier board. Describe the interrupt pin and touchscreen geometry. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: add HDMI supportStefano Radaelli
Enable the HDMI display pipeline and HDMI audio support on the Symphony carrier board. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: enable PCIeStefano Radaelli
Add the PCIe reference clock and enable the PCIe controller and PHY on the Symphony carrier board. Describe the PERST# reset GPIO and configure the PHY to use an external reference clock input. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mm-var-som-symphony: keep RGB_SEL lowStefano Radaelli
Keep the RGB_SEL line driven low on the Symphony carrier board. This avoids leaving the line floating and ensures the board remains in the expected display configuration. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mm-var-som-symphony: add wakeup sourcesStefano Radaelli
Mark the Symphony carrier board GPIO keys and capacitive touchscreen as wakeup sources. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mq-evk: add uart3 and bluetooth nodeSherry Sun
Add uart3 and bluetooth node. Signed-off-by: Sherry Sun <sherry.sun@nxp.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-frdm: Add missing HDMI DDC pinctrlPhilipp Zabel
Configure HDMI DDC SCL/SDA pins to support reading EDID. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Fixes: 95d7d7d2ad27 ("arm64: dts: imx8mp-frdm: add sd, ethernet, wifi, usb and hdmi support") Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx93-11x11-evk: Add DY1212W-4856 LVDS panelLiu Ying
DY1212W-4856 [1] is a 12.1" (WXGA) TFT LCD panel with LVDS interface. The panel's 40-pin connector allows it to be directly connected to i.MX93 11x11 EVK board. Link: https://www.nxp.com/design/design-center/development-boards-and-designs/dy1212w-4856-tft-lcd-panel-with-lvds-interface:DY1212W-4856 [1] Signed-off-by: Liu Ying <victor.liu@nxp.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx93: Add LVDS Display Bridge supportLiu Ying
Add LVDS Display Bridge(LDB) child node to mediamix blk-ctrl node so that video could be output through a LVDS interface. Signed-off-by: Liu Ying <victor.liu@nxp.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29dt-bindings: soc: imx: fsl,imx93-media-blk-ctrl: Allow LVDS Display Bridge ↵Liu Ying
child node i.MX93 SoC mediamix blk-ctrl contains one LDB_CTRL register and one LVDS register which control video output through a LVDS interface. Allow the LVDS Display Bridge(LDB) child node and add the child node to example. i.MX93 LDB child node(bridge@20) is an addressable node, while i.MX93 Parallel Display Format Configuration(PDFC) child node(dpi-bridge) is a non-addressable node. Mixing the addressable and non-addressable child nodes is allowed according to discussion [1]. Link: https://lore.kernel.org/all/n6akxiayi3g6gxcqhreb4iaohmeokoalnqup6h5r2fwdt4zijt@u2wyps55ayqm/ [1] Signed-off-by: Liu Ying <victor.liu@nxp.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: enable header UARTsStefano Radaelli
Enable UART1 and UART4 on the Symphony carrier board and add the corresponding pinctrl configurations. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: add external RTCStefano Radaelli
Add the DS1337 RTC on the Symphony carrier board and disable the internal SNVS RTC. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: add TPM supportStefano Radaelli
Add the ST33KTPM2XI2C TPM device on the Symphony carrier board. Enable the I2C4 bus, add the PCAL6408 GPIO expander used by the TPM and describe the TPM reset line. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: enable USB supportStefano Radaelli
Enable the USB controllers on the Symphony carrier board. Add the PTN5150 Type-C controller for USB role switching, enable the USB3 PHYs and controllers, configure the I2C bus used by the Type-C controller, and set the first USB port in OTG mode and the second port in host mode. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29arm64: dts: imx8mp-var-som-symphony: add input keysStefano Radaelli
Add the Back, Home and Menu keys connected through the GPIO expander on the Symphony carrier board. Also enable the SNVS power key. Signed-off-by: Stefano Radaelli <stefano.r@variscite.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
2026-06-29cgroup/cpu: document cpu.stat.local and clarify cpu.stat behaviorSun Shaojie
Add documentation for the cpu.stat.local interface file, which reports the throttled_usec stat -- the actual throttling time incurred by the cgroup's own runqueues, which may include throttling inherited from ancestor cgroup bandwidth limits. Unlike cpu.stat's throttled_usec which only accounts for throttling caused by the cgroup's own CFS bandwidth limit. When the controller is not enabled, the stat is not reported. Also clarify cpu.stat descriptions: note that the three base CPU usage stats (usage_usec, user_usec, system_usec) include descendant cgroups, and that the five CFS bandwidth stats are non-hierarchical -- they only account for throttling caused by the cgroup's own bandwidth limit. Signed-off-by: Sun Shaojie <sunshaojie@kylinos.cn> Acked-by: Michal Koutný <mkoutny@suse.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2026-06-29selftests/cgroup: Adjust cpu test duration based on HZJoe Simmons-Talbott
For lower HZ values a quota of 1000us is much lower than the amount of microseconds per tick which makes the tests test_cpucg_max and test_cpugc_max_nested fail. Increase the test duration to accommodate for lower HZ values. Link: https://lore.kernel.org/lkml/20260625203307.1114538-1-joest@redhat.com/ Signed-off-by: Joe Simmons-Talbott <joest@redhat.com> Acked-by: Michal Koutný <mkoutny@suse.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2026-06-29ASoC: meson: aiu: align I2S design to the AXG oneMark Brown
Valerio Setti <vsetti@baylibre.com> says: The goal of this series is to reshape Amlogic GX's AIU implementation for I2S to let it follow the same design as in AXG's TDM. Keeping the same design allows for unifying the two platform implementations in the future and it also allows for an easy addition of I2S input. The first commit introduces gx-formatter as the basic block which takes care of properly formatting audio data. Formatters are DAPM widgets (c.f. axg-tdm-formatter in AXG) which are dynamically attached/detached to the streams when the latters starts/stop, respectively. aiu-formatter-i2s is introduced as formatter implementation for the i2s output. By the end aiu-encoder-i2s will only need to handle interface clocks and enforce interface wide rate symmetry (c.f axg-tdm-interface on the AXG platform). Right now rate symmetry is not relevant because only i2s output is supported, but it will become useful when following patch series will introduce the i2s input part. This series was tested on an OdroidC2 board (Amlogic S905 SOC) both with HDMI output and with NXP SGTL5000 codec connected to the I2S pins. This series was also verified using "pcm-test" test tool and all tests are passing. [1]: https://sashiko.dev/#/patchset/20260515-reshape-aiu-as-axg-v1-0-53b457784ff3%40baylibre.com Link: https://patch.msgid.link/20260610-reshape-aiu-as-axg-v2-0-cac3663a8b51@baylibre.com
2026-06-29ASoC: meson: aiu: use aiu-formatter-i2s to format I2S output dataValerio Setti
Create a new DAPM widget for "I2S formatter" and place it on the path between FIFO and output DAI interface. Remove I2S output formatting code from aiu-encoder-i2s since it's now implemented from aiu-formatter-i2s. Signed-off-by: Valerio Setti <vsetti@baylibre.com> Reviewed-by: Jerome Brunet <jbrunet@baylibre.com> Link: https://patch.msgid.link/20260610-reshape-aiu-as-axg-v2-4-cac3663a8b51@baylibre.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-29ASoC: meson: aiu: introduce I2S output formatterValerio Setti
Introduce aiu-formatter-i2s, a gx_formatter implementation for the AIU I2S playback path. This is going to replace data formatting tasks that are currently being implemented in aiu-encoder-i2s. This should ideally follow the same design pattern used on the AXG platform (see axg-tdmout), where basically the widget/formatter corresponds to a single audio component. This is not possible in the GX platform though because all the features are currently implemented in the AIU audio component and changing that would require backward incompatible device-tree changes. Therefore aiu-formatter-i2s is kept very simple and it only implements the bare minimum functionalities to provide I2S playback formatting. It's not a standalone component though because this is still belongs to AIU. Signed-off-by: Valerio Setti <vsetti@baylibre.com> Reviewed-by: Jerome Brunet <jbrunet@baylibre.com> Link: https://patch.msgid.link/20260610-reshape-aiu-as-axg-v2-3-cac3663a8b51@baylibre.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-29ASoC: meson: aiu-encoder-i2s: prepare for multiple streamsValerio Setti
aiu-encoder-i2s is going to be the interface that handles both playback and capture, so this commit does all the required changes to prepare for that since so far it only handled playback: - probe/remove functions are added to allocate/free per stream data, respectively. - 'struc gx_iface' and 'struct gx_stream' are used to store interface or stream associated data, respecively. - interface wide rate symmetry is enforced. - quirks on bclk are also enforced if/when necessary. Clock-wise instead of bulk enabling all the clocks on startup and disabling them on shutdown, only the peripheral's internal ones are enabled/disabled in those functions, whereas MCLK and I2S clock divider are handled in prepare/hw_free. Finally a trigger() callback is also added to start/stop the associated I2S data formatter. Signed-off-by: Valerio Setti <vsetti@baylibre.com> Reviewed-by: Jerome Brunet <jbrunet@baylibre.com> Link: https://patch.msgid.link/20260610-reshape-aiu-as-axg-v2-2-cac3663a8b51@baylibre.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-29ASoC: meson: gx: add gx-formatter and gx-interfaceValerio Setti
These files are the basic block which allow to shape I2S in GX devices the same as the AXG ones: the DAI backend only controls the interface (i.e. clocks and pins) whereas a formatter takes care of properly formatting the data. gx-formatter and gx-interface are strongly inspired to axg-tdm-formatter and axg-tdm, respectively. The long term plan is to join the two platforms to use the same formatter solution. There is only a minor addition here compared to what has been done for AXG and it's "gx_formatter_create()" which is required in order to let already existing AIU code to make use of this formatter without making any devicetree change. Signed-off-by: Valerio Setti <vsetti@baylibre.com> Reviewed-by: Jerome Brunet <jbrunet@baylibre.com> Link: https://patch.msgid.link/20260610-reshape-aiu-as-axg-v2-1-cac3663a8b51@baylibre.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-29ASoC: rt5677: add GPIO get_direction and enable standalone compilationMark Brown
Diogo Ivo <diogo.ivo@bootlin.com> says: This small series fixes two issues in the RT5677 ASoC codec driver: - Patch 1 adds the missing GPIO .get_direction() callback, allowing the direction of GPIO pins to be queried. - Patch 2 makes the Kconfig option user-visible so the driver can be built standalone for example when using generic audio-graph-card bindings, which do not pull in specific codec drivers via select/imply. Link: https://patch.msgid.link/20260620-smaug-audio-v1-0-e318acdf5abd@bootlin.com
2026-06-29ASoC: rt5677: Enable standalone compilation for generic card useDiogo Ivo
Add a prompt string to make the RT5677 driver user-selectable, allowing it to be built independently for use with generic sound card bindings. Signed-off-by: Diogo Ivo <diogo.ivo@bootlin.com> Link: https://patch.msgid.link/20260620-smaug-audio-v1-2-e318acdf5abd@bootlin.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-29ASoC: rt5677: Add GPIO .get_direction() callbackDiogo Ivo
Implement the get_direction callback for the GPIO controller to allow consumers to query the direction of GPIO pins. Signed-off-by: Diogo Ivo <diogo.ivo@bootlin.com> Link: https://patch.msgid.link/20260620-smaug-audio-v1-1-e318acdf5abd@bootlin.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-29ASoC: rt1321: add support for rt1321 VA1/VA2Shuming Fan
This patch adds support for the RT1321 VA1 and VA2 amplifier. Signed-off-by: Shuming Fan <shumingf@realtek.com> Link: https://patch.msgid.link/20260622091149.2183334-1-shumingf@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-29ASoC: rt1321: move DSP status checking into a helper functionShuming Fan
This patch creates the rt1320_dspfw_status helper function to check DSP status. The new function can be reused by other functions and supports checking the DSP status across different amplifiers. Signed-off-by: Shuming Fan <shumingf@realtek.com> Link: https://patch.msgid.link/20260622091139.2183297-1-shumingf@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org>
2026-06-29ASoC: Intel: Convert locking to guard()/scoped_guard()Mark Brown
bui duc phuc <phucduc.bui@gmail.com> says: This series converts mutex and spinlock handling in Intel ASoC drivers to use guard()/scoped_guard() helpers. Most changes are straightforward conversions intended to simplify lock handling and cleanup paths, with no intended functional changes. The series has been compile-tested only. Link: https://patch.msgid.link/20260626082904.32344-1-phucduc.bui@gmail.com
2026-06-29ASoC: Intel: atom: Use scoped_guard() for scoped lockingbui duc phuc
Clean up the code using scoped_guard() for mutex locks. Merely code refactoring, and no behavior change. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://patch.msgid.link/20260626082904.32344-6-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>