]> git.ipfire.org Git - thirdparty/kernel/linux.git/log
thirdparty/kernel/linux.git
5 weeks agoMerge tag 'v6.17-rockchip-defconfig64-1' of https://git.kernel.org/pub/scm/linux...
Arnd Bergmann [Tue, 22 Jul 2025 20:58:01 +0000 (22:58 +0200)] 
Merge tag 'v6.17-rockchip-defconfig64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/defconfig

Enable Rockchip DFI + PM_DEVFREQ_EVENT and RGA modules.

* tag 'v6.17-rockchip-defconfig64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  arm64: defconfig: enable further Rockchip platform drivers

Link: https://lore.kernel.org/r/9025082.MhkbZ0Pkbq@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'qcom-arm64-defconfig-for-6.17' of https://git.kernel.org/pub/scm/linux...
Arnd Bergmann [Tue, 22 Jul 2025 20:56:46 +0000 (22:56 +0200)] 
Merge tag 'qcom-arm64-defconfig-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/defconfig

Qualcomm Arm64 defconfig updates for v6.17

Enable camera and video clock controllers for SM8450, SM8550, and SM8650
platforms.

* tag 'qcom-arm64-defconfig-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: defconfig: Enable camcc and videocc on Qualcomm SM8450+

Link: https://lore.kernel.org/r/20250720031134.286063-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'at91-defconfig-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git...
Arnd Bergmann [Tue, 22 Jul 2025 20:56:16 +0000 (22:56 +0200)] 
Merge tag 'at91-defconfig-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/defconfig

Microchip AT91 defconfig updates for v6.17

This update includes:
- the WILC1000 SDIO module

* tag 'at91-defconfig-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
  ARM: configs: sama5_defconfig: Select CONFIG_WILC1000_SDIO

Link: https://lore.kernel.org/r/20250721100904.568575-1-claudiu.beznea@tuxon.dev
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'qcom-drivers-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel...
Arnd Bergmann [Tue, 22 Jul 2025 20:47:47 +0000 (22:47 +0200)] 
Merge tag 'qcom-drivers-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers

Qualcomm driver updates for v6.17

Perform input validation in the MDT loader, as this was not properly
done in the non-remoteproc cases.

Fix endian issues in the QMI encoder/decoder.

Support reading DDR statistic using the Qualcomm stats driver.

Add support for reading TME firmware details to the socinfo driver.

Document the Kryo 470 CPU, and add SM7150 to the DCC to DeviceTree
bindings.

* tag 'qcom-drivers-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  soc: qcom: mdt_loader: Fix error return values in mdt_header_valid()
  dt-bindings: sram: qcom,imem: Add a number of missing compatibles
  dt-bindings: arm: cpus: Add Kryo 470 CPUs
  dt-bindings: sram: qcom,imem: Add the SM7150 compatible
  dt-bindings: soc: qcom: aoss-qmp: Add the SM7150 compatible
  dt-bindings: soc: qcom,dcc: Add the SM7150 compatible
  soc: qcom: socinfo: Add support to retrieve TME build details
  soc: qcom: fix endianness for QMI header
  soc: qcom: QMI encoding/decoding for big endian
  dt-bindings: soc: qcom: add qcom,qcs615-imem compatible
  soc: qcom: qcom_stats: Add QMP support for syncing ddr stats
  soc: qcom: qcom_stats: Add support to read DDR statistic
  soc: qcom: mdt_loader: Actually use the e_phoff
  soc: qcom: mdt_loader: Rename mdt_phdr_valid()
  soc: qcom: mdt_loader: Ensure we don't read past the ELF header

Link: https://lore.kernel.org/r/20250715021454.14516-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'memory-controller-drv-6.17' of https://git.kernel.org/pub/scm/linux/kernel...
Arnd Bergmann [Tue, 22 Jul 2025 20:46:59 +0000 (22:46 +0200)] 
Merge tag 'memory-controller-drv-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into soc/drivers

Memory controller drivers for v6.17

1. Several cleanups: Use dev_fwnode() in OMAP GPMX, convert
   arm,pl172.txt DT bindings to DT schema, use
   syscon_regmap_lookup_by_phandle_args() wrapper, correct kerneldoc.

2. Mediatek MT8186 SMI: Extend hardware bandwidth limits to fix VENC
   hardware during stress testing.

3. Broadcom brcmstb_memc: Add additional fallback compatible and
   simplify device driver matching.  The change comes from Broadcom
   SoC maintainer (Florian Fainelli), thus its ABI impact is
   acknowledged.

* tag 'memory-controller-drv-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl:
  dt-bindings: memory: renesas,rzg3e-xspi: Document RZ/V2H(P) and RZ/V2N support
  memory: brcmstb_memc: Simplify compatible matching
  dt-bindings: memory-controller: Define fallback compatible
  memory: omap-gpmx: Use dev_fwnode()
  memory: mtk-smi: Add ostd setting for mt8186
  dt-bindings: memory-controllers: convert arm,pl172.txt to yaml format
  memory: stm32_omm: Use syscon_regmap_lookup_by_phandle_args
  memory: emif: Add missing kerneldoc for lpmode

Link: https://lore.kernel.org/r/20250715095315.59299-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agodt-bindings: riscv: cpus: Add AMD MicroBlaze V 64bit compatible
Michal Simek [Tue, 22 Jul 2025 07:25:40 +0000 (09:25 +0200)] 
dt-bindings: riscv: cpus: Add AMD MicroBlaze V 64bit compatible

32bit version has been added by commit 4a6b93f56296 ("dt-bindings: riscv:
cpus: Add AMD MicroBlaze V compatible") but 64bit version also exists and
should be covered by binding too.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
5 weeks agoMerge tag 'imx-drivers-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawn...
Arnd Bergmann [Tue, 22 Jul 2025 20:45:32 +0000 (22:45 +0200)] 
Merge tag 'imx-drivers-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/drivers

i.MX drivers changes for 6.17:

- A couple of MAINTAINERS updates
- A new bus driver for i.MX AIPSTZ bridge and a follow-up fix from
  Laurentiu Mihalcea

* tag 'imx-drivers-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  bus: imx-aipstz: allow creating pdevs for child buses
  MAINTAINERS: Update i.MX entry
  bus: add driver for IMX AIPSTZ bridge
  MAINTAINERS: add NXP S32G RTC driver

Link: https://lore.kernel.org/r/20250713055441.221235-1-shawnguo2@yeah.net
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'tegra-for-6.17-memory' of https://git.kernel.org/pub/scm/linux/kernel...
Arnd Bergmann [Tue, 22 Jul 2025 20:44:35 +0000 (22:44 +0200)] 
Merge tag 'tegra-for-6.17-memory' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

memory: tegra: Updates for v6.17-rc1

Enable support for the memory and external memory controllers found on
Tegra264.

* tag 'tegra-for-6.17-memory' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  memory: tegra: Add Tegra264 MC and EMC support
  dt-bindings: memory: tegra: Add Tegra264 support

Link: https://lore.kernel.org/r/20250711220943.2389322-4-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'tegra-for-6.17-firmware' of https://git.kernel.org/pub/scm/linux/kernel...
Arnd Bergmann [Tue, 22 Jul 2025 20:43:50 +0000 (22:43 +0200)] 
Merge tag 'tegra-for-6.17-firmware' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

firmware: tegra: Updates for v6.17-rc1

Add Tegra264 support for the BPMP, fix some dependency issues and clean
up some code using new OF helpers.

* tag 'tegra-for-6.17-firmware' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  firmware: tegra: bpmp: Fix build failure for tegra264-only config
  firmware: tegra: bpmp: Use of_reserved_mem_region_to_resource() for "memory-region"
  firmware: tegra: bpmp: Add support on Tegra264
  firmware: tegra: Fix IVC dependency problems

Link: https://lore.kernel.org/r/20250711220943.2389322-2-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoarm64: dts: rockchip: Drop netdev led-triggers on NanoPi R5S
Diederik de Haas [Tue, 22 Jul 2025 12:35:33 +0000 (14:35 +0200)] 
arm64: dts: rockchip: Drop netdev led-triggers on NanoPi R5S

Sometimes the netdev triggers causes tasks to get blocked for more then
120 seconds, which in turn makes the (WAN) network port on the NanoPi
R5S fail to come up.
This results in the following (partial) trace:

  INFO: task kworker/0:1:11 blocked for more than 120 seconds.
        Not tainted 6.16-rc6+unreleased-arm64-cknow #1 Debian 6.16~rc6-1~exp1
  "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
  task:kworker/0:1     state:D stack:0     pid:11    tgid:11    ppid:2      task_flags:0x4208060 flags:0x00000010
  Workqueue: events_power_efficient reg_check_chans_work [cfg80211]
  Call trace:
   __switch_to+0xf8/0x168 (T)
   __schedule+0x3f8/0xda8
   schedule+0x3c/0x120
   schedule_preempt_disabled+0x2c/0x58
   __mutex_lock.constprop.0+0x4d0/0xab8
   __mutex_lock_slowpath+0x1c/0x30
   mutex_lock+0x50/0x68
   rtnl_lock+0x20/0x38
   reg_check_chans_work+0x40/0x478 [cfg80211]
   process_one_work+0x178/0x3e0
   worker_thread+0x260/0x390
   kthread+0x150/0x250
   ret_from_fork+0x10/0x20
  INFO: task kworker/0:1:11 is blocked on a mutex likely owned by task dhcpcd:615.
  task:dhcpcd          state:D stack:0     pid:615   tgid:615   ppid:614    task_flags:0x400140 flags:0x00000018
  Call trace:
   __switch_to+0xf8/0x168 (T)
   __schedule+0x3f8/0xda8
   schedule+0x3c/0x120
   schedule_preempt_disabled+0x2c/0x58
   rwsem_down_write_slowpath+0x1e4/0x750
   down_write+0x98/0xb0
   led_trigger_register+0x134/0x1c0
   phy_led_triggers_register+0xf4/0x258 [libphy]
   phy_attach_direct+0x30c/0x390 [libphy]
   phylink_fwnode_phy_connect+0xb0/0x138 [phylink]
   __stmmac_open+0xec/0x520 [stmmac]
   stmmac_open+0x4c/0xe8 [stmmac]
   __dev_open+0x130/0x2e0
   __dev_change_flags+0x1c4/0x248
   netif_change_flags+0x2c/0x80
   dev_change_flags+0x88/0xc8
   devinet_ioctl+0x35c/0x610
   inet_ioctl+0x204/0x260
   sock_do_ioctl+0x6c/0x140
   sock_ioctl+0x2e4/0x388
   __arm64_sys_ioctl+0xb4/0x120
   invoke_syscall+0x6c/0x100
   el0_svc_common.constprop.0+0x48/0xf0
   do_el0_svc+0x24/0x38
   el0_svc+0x3c/0x188
   el0t_64_sync_handler+0x10c/0x140
   el0t_64_sync+0x198/0x1a0

In order to not introduce a regression with kernel 6.16, drop the netdev
triggers for now while the problem is being investigated further.

Fixes: 1631cbdb8089 ("arm64: dts: rockchip: Improve LED config for NanoPi R5S")
Helped-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Diederik de Haas <didi.debian@cknow.org>
Link: https://lore.kernel.org/r/20250722123628.25660-1-didi.debian@cknow.org
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agocpu/hotplug: Remove unused cpuhp_state CPUHP_PCI_XGENE_DEAD
Marc Zyngier [Tue, 8 Jul 2025 17:34:04 +0000 (18:34 +0100)] 
cpu/hotplug: Remove unused cpuhp_state CPUHP_PCI_XGENE_DEAD

Now that the XGene MSI driver has been mostly rewritten and doesn't
use the CPU hotplug infrastructure, CPUHP_PCI_XGENE_DEAD is unused.

Remove it to reduce the size of cpuhp_hp_states[].

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-14-maz@kernel.org
5 weeks agoPCI: xgene-msi: Restructure handler setup/teardown
Marc Zyngier [Tue, 8 Jul 2025 17:34:03 +0000 (18:34 +0100)] 
PCI: xgene-msi: Restructure handler setup/teardown

Another utterly pointless aspect of the xgene-msi driver is that
it is built around CPU hotplug. Which is quite amusing since this
is one of the few arm64 platforms that, by construction, cannot
do CPU hotplug in a supported way (no EL3, no PSCI, no luck).

Drop the CPU hotplug nonsense and just setup the IRQs and handlers
in a less overdesigned way, grouping things more logically in the
process.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-13-maz@kernel.org
5 weeks agoPCI: xgene-msi: Probe as a standard platform driver
Marc Zyngier [Tue, 8 Jul 2025 17:34:02 +0000 (18:34 +0100)] 
PCI: xgene-msi: Probe as a standard platform driver

Now that we have made the dependency between the PCI driver and
the MSI driver explicit, there is no need to use subsys_initcall()
as a probing hook, and we can rely on builtin_platform_driver()
instead.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-12-maz@kernel.org
5 weeks agoPCI: xgene-msi: Resend an MSI racing with itself on a different CPU
Marc Zyngier [Tue, 8 Jul 2025 17:34:01 +0000 (18:34 +0100)] 
PCI: xgene-msi: Resend an MSI racing with itself on a different CPU

Since changing the affinity of an MSI really is about changing
the target address and that it isn't possible to mask an individual
MSI, it is completely possible for an interrupt to race with itself,
usually resulting in a lost interrupt.

Paper over the design blunder by informing the core code of this
sad state of affairs.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-11-maz@kernel.org
5 weeks agoPCI: xgene-msi: Sanitise MSI allocation and affinity setting
Marc Zyngier [Tue, 8 Jul 2025 17:34:00 +0000 (18:34 +0100)] 
PCI: xgene-msi: Sanitise MSI allocation and affinity setting

Plugging a device that doesn't use managed affinity on an XGene-1
machine results in messages such as:

  genirq: irq_chip PCI-MSIX-0000:01:00.0 did not update eff. affinity mask of irq 39

As it turns out, the driver was never updated to populate the effective
affinity on irq_set_affinity() call, and the core code is prickly about
that.

But upon further investigation, it appears that the driver keeps repainting
the hwirq field of the irq_data structure as a way to track the affinity
of the MSI, something that is very much frowned upon as it breaks the
fundamentals of an IRQ domain (an array indexed by hwirq).

Fixing this results more or less in a rewrite of the driver:

- Define how a hwirq and a CPU affinity map onto the MSI termination
  registers

- Allocate a single entry in the bitmap per MSI instead of *8*

- Correctly track CPU affinity

- Fix the documentation so that it actually means something (to me)

- Use standard bitmap iterators

- and plenty of other cleanups

With this, the driver behaves correctly on my vintage Mustang board.

Signed-off-by: Marc Zyngier <maz@kernel.org>
[lpieralisi: replaced open coded GENMASK(6, 4) with MSInRx_HWIRQ_MASK]
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-10-maz@kernel.org
5 weeks agoPCI: xgene-msi: Get rid of intermediate tracking structure
Marc Zyngier [Tue, 8 Jul 2025 17:33:59 +0000 (18:33 +0100)] 
PCI: xgene-msi: Get rid of intermediate tracking structure

The xgene-msi driver uses an odd construct in the form of an
intermediate tracking structure, evidently designed to deal with
multiple instances of the MSI widget. However, the existing HW
only has one set, and it is obvious that there won't be new HW
coming down that particular line.

Simplify the driver by using a bit of pointer arithmetic instead,
directly tracking the interrupt and avoiding extra memory allocation.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-9-maz@kernel.org
5 weeks agoPCI: xgene-msi: Use device-managed memory allocations
Marc Zyngier [Tue, 8 Jul 2025 17:33:58 +0000 (18:33 +0100)] 
PCI: xgene-msi: Use device-managed memory allocations

Since the MSI driver is probed as a platform device, there is no
reason to not use device-managed allocations. That's including
the top-level bookkeeping structure, which is better dynamically
allocated than being static.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-8-maz@kernel.org
5 weeks agoPCI: xgene-msi: Drop superfluous fields from xgene_msi structure
Marc Zyngier [Tue, 8 Jul 2025 17:33:57 +0000 (18:33 +0100)] 
PCI: xgene-msi: Drop superfluous fields from xgene_msi structure

The xgene_msi structure remembers both the of_node of the device
and the number of CPUs. All of which are perfectly useless.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-7-maz@kernel.org
5 weeks agoPCI: xgene-msi: Make per-CPU interrupt setup robust
Marc Zyngier [Tue, 8 Jul 2025 17:33:56 +0000 (18:33 +0100)] 
PCI: xgene-msi: Make per-CPU interrupt setup robust

The way the per-CPU interrupts are dealt with in the XGene MSI
driver isn't great:

- the affinity is set after the interrupt is enabled

- nothing prevents userspace from moving the interrupt around

- the affinity setting code pointlessly allocates memory

- the driver checks for conditions that cannot possibly happen

Address all of this in one go, resulting in slightly simpler setup
code.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-6-maz@kernel.org
5 weeks agoPCI: xgene: Drop XGENE_PCIE_IP_VER_UNKN
Marc Zyngier [Tue, 8 Jul 2025 17:33:55 +0000 (18:33 +0100)] 
PCI: xgene: Drop XGENE_PCIE_IP_VER_UNKN

XGENE_PCIE_IP_VER_UNKN is only refered to when probing for the
original XGene PCIe implementation, and get immediately overridden
if the device has the "apm,xgene-pcie" compatible string.

Given that the only way to get there is by finding this very string in
the DT, it is obvious that we will always overwrite the version with
XGENE_PCIE_IP_VER_1.

Drop the whole thing.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-5-maz@kernel.org
5 weeks agoPCI: xgene: Drop useless conditional compilation
Marc Zyngier [Tue, 8 Jul 2025 17:33:54 +0000 (18:33 +0100)] 
PCI: xgene: Drop useless conditional compilation

pci-xgene.c only gets compiled if CONFIG_PCI_XGENE is selected.
It is therefore pointless to check for CONFIG_PCI_XGENE inside
the driver.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-4-maz@kernel.org
5 weeks agoPCI: xgene: Defer probing if the MSI widget driver hasn't probed yet
Marc Zyngier [Tue, 8 Jul 2025 17:33:53 +0000 (18:33 +0100)] 
PCI: xgene: Defer probing if the MSI widget driver hasn't probed yet

As a preparatory work to make the XGene MSI driver probe less of
a sorry hack, make the PCI driver check for the availability of
the MSI parent domain, and defer the probing otherwise.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20250708173404.1278635-3-maz@kernel.org
5 weeks agogenirq: Teach handle_simple_irq() to resend an in-progress interrupt
Marc Zyngier [Tue, 8 Jul 2025 17:33:52 +0000 (18:33 +0100)] 
genirq: Teach handle_simple_irq() to resend an in-progress interrupt

It appears that the defect outlined in 9c15eeb5362c4 ("genirq: Allow
fasteoi handler to resend interrupts on concurrent handling") also
affects some other less stellar MSI controllers, this time using
the handle_simple_irq() flow.

Teach this flow about irqd_needs_resend_when_in_progress(). Given
the invasive nature of this workaround, only this flow is updated.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20250708173404.1278635-2-maz@kernel.org
5 weeks agoMerge branch 'newsoc/axiado' into soc/newsoc
Arnd Bergmann [Tue, 22 Jul 2025 20:30:38 +0000 (22:30 +0200)] 
Merge branch 'newsoc/axiado' into soc/newsoc

Support for the AX3000 SoC, from Harshit Shah <hshah@axiado.com>:

The AX3000 is a multi-core system-on-chip featuring four ARM Cortex-A53
cores, secure vault, hardware firewall, and AI acceleration engines. This
initial support enables basic bring-up of the SoC and evaluation platform
with CPU, timer, UART, and I3C functionality.

The series begins by adding the "axiado" vendor prefix and compatible
strings for the SoC and board. It then introduces the device tree files
and minimal ARCH_AXIADO platform support in arm64.

* newsoc/axiado:
  MAINTAINERS: Add entry for Axiado
  arm64: defconfig: enable the Axiado family
  arm64: dts: axiado: Add initial support for AX3000 SoC and eval board
  arm64: add Axiado SoC family
  dt-bindings: i3c: cdns: add Axiado AX3000 I3C controller
  dt-bindings: serial: cdns: add Axiado AX3000 UART controller
  dt-bindings: gpio: cdns: add Axiado AX3000 GPIO variant
  dt-bindings: gpio: cdns: convert to YAML
  dt-bindings: arm: axiado: add AX3000 EVK compatible strings
  dt-bindings: vendor-prefixes: Add Axiado Corporation

5 weeks agoMAINTAINERS: Add entry for Axiado
Harshit Shah [Tue, 22 Jul 2025 20:15:38 +0000 (13:15 -0700)] 
MAINTAINERS: Add entry for Axiado

Add entry for Axiado maintainer and related files

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoarm64: defconfig: enable the Axiado family
Harshit Shah [Tue, 22 Jul 2025 20:15:37 +0000 (13:15 -0700)] 
arm64: defconfig: enable the Axiado family

Enable the Axiado SoC family in the arm64 defconfig.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoarm64: dts: axiado: Add initial support for AX3000 SoC and eval board
Harshit Shah [Tue, 22 Jul 2025 20:15:36 +0000 (13:15 -0700)] 
arm64: dts: axiado: Add initial support for AX3000 SoC and eval board

Add initial device tree support for the AX3000 SoC and its evaluation
platform. The AX3000 is a multi-core SoC featuring 4 Cortex-A53 cores,
Secure Vault, AI Engine and Firewall.

It adds support for Cortex-A53 CPUs, timer, UARTs, and I3C
controllers on the AX3000 evaluation board.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoarm64: add Axiado SoC family
Harshit Shah [Tue, 22 Jul 2025 20:15:35 +0000 (13:15 -0700)] 
arm64: add Axiado SoC family

Add ARCH_AXIADO for the support of the Axiado SoC for arm64 architecture.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agodt-bindings: i3c: cdns: add Axiado AX3000 I3C controller
Harshit Shah [Tue, 22 Jul 2025 20:15:34 +0000 (13:15 -0700)] 
dt-bindings: i3c: cdns: add Axiado AX3000 I3C controller

Add binding for AX3000 I3C controller. So far, no changes known,
so it can fallback to default compatible.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agodt-bindings: serial: cdns: add Axiado AX3000 UART controller
Harshit Shah [Tue, 22 Jul 2025 20:15:33 +0000 (13:15 -0700)] 
dt-bindings: serial: cdns: add Axiado AX3000 UART controller

Add binding for AX3000 UART controller. So far, no changes known,
so it can fallback to default compatible.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agodt-bindings: gpio: cdns: add Axiado AX3000 GPIO variant
Harshit Shah [Tue, 22 Jul 2025 20:15:32 +0000 (13:15 -0700)] 
dt-bindings: gpio: cdns: add Axiado AX3000 GPIO variant

Add binding for Axiado AX3000 GPIO controller. So far, no changes
are known, so it can fallback to default compatible.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agodt-bindings: gpio: cdns: convert to YAML
Harshit Shah [Tue, 22 Jul 2025 20:15:31 +0000 (13:15 -0700)] 
dt-bindings: gpio: cdns: convert to YAML

Convert Cadence family GPIO controller bindings to DT schema.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agodt-bindings: arm: axiado: add AX3000 EVK compatible strings
Harshit Shah [Tue, 22 Jul 2025 20:15:30 +0000 (13:15 -0700)] 
dt-bindings: arm: axiado: add AX3000 EVK compatible strings

Add device tree binding schema for Axiado platforms, specifically the
AX3000 SoC and its associated evaluation board. This binding will be
used for the board-level DTS files that support the AX3000 platforms.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agodt-bindings: vendor-prefixes: Add Axiado Corporation
Harshit Shah [Tue, 22 Jul 2025 20:15:29 +0000 (13:15 -0700)] 
dt-bindings: vendor-prefixes: Add Axiado Corporation

Link: https://axiado.com
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Harshit Shah <hshah@axiado.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'riscv-config-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel...
Arnd Bergmann [Tue, 22 Jul 2025 20:27:44 +0000 (22:27 +0200)] 
Merge tag 'riscv-config-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/defconfig

RISC-V soc defconfig for v6.17

spacemit:
Enable sdhci and pwm drivers for the k1 soc in defconfig, the former as
a builtin and the latter a module.

starfive:
Remove a no-longer required config for the starfive sound driver.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
* tag 'riscv-config-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux:
  riscv: defconfig: spacemit: enable sdhci driver for K1 SoC
  riscv: defconfig: Enable PWM support for SpacemiT K1 SoC
  riscv: defconfig: Remove CONFIG_SND_SOC_STARFIVE=m

Link: https://lore.kernel.org/r/20250716-defrost-regime-20a55ed925ad@spud
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'imx-defconfig-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git...
Arnd Bergmann [Tue, 22 Jul 2025 20:26:11 +0000 (22:26 +0200)] 
Merge tag 'imx-defconfig-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/defconfig

i.MX defconfig changes for 6.17:

- Enable S32G RTC driver as module in arm64 defconfig
- Enable drivers used by imx28-amarula-rmm board in mxs_defconfig
- Enable INPUT_PWM_BEEPER, USB_HSIC_USB3503 and BT_HCIUART_BCM in
  imx_v6_v7_defconfig

* tag 'imx-defconfig-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  ARM: imx_v6_v7_defconfig: select CONFIG_USB_HSIC_USB3503
  ARM: imx_v6_v7_defconfig: select CONFIG_INPUT_PWM_BEEPER
  ARM: imx_v6_v7_defconfig: cleanup with savedefconfig
  ARM: mxs_defconfig: select new drivers used by imx28-amarula-rmm
  ARM: mxs_defconfig: Cleanup mxs_defconfig
  arm64: defconfig: add S32G RTC module support
  ARM: imx_v6_v7_defconfig: Select BT_HCIUART_BCM

Link: https://lore.kernel.org/r/20250713055441.221235-5-shawnguo2@yeah.net
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'tegra-for-6.17-arm64-defconfig' of https://git.kernel.org/pub/scm/linux...
Arnd Bergmann [Tue, 22 Jul 2025 20:23:35 +0000 (22:23 +0200)] 
Merge tag 'tegra-for-6.17-arm64-defconfig' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/defconfig

arm64: tegra: Default configuration updates for v6.17-rc1

Enable the HSP and BPMP via the configuration instead of selecting them,
which can lead to problems. Also enable support for Tegra241, which was
never done after support for it was added, and Tegra264.

* tag 'tegra-for-6.17-arm64-defconfig' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  arm64: defconfig: Enable Tegra241 and Tegra264
  arm64: defconfig: Enable Tegra HSP and BPMP

Link: https://lore.kernel.org/r/20250711220943.2389322-8-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agobus: del unnecessary init var
Li Jun [Wed, 4 Jun 2025 08:17:12 +0000 (16:17 +0800)] 
bus: del unnecessary init var

The compiler generates initialization instructions,
which consume additional CPU cycles. the
sysc_clockdomain_init should assign a value
to 'error' before it is read.so the var don't need init
to 0.

Signed-off-by: Li Jun <lijun01@kylinos.cn>
Link: https://lore.kernel.org/r/20250604081712.119523-1-lijun01@kylinos.cn
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoarm: multi_v7_defconfig: Enable TPS65219 regulator
Kory Maincent [Fri, 20 Jun 2025 08:15:56 +0000 (10:15 +0200)] 
arm: multi_v7_defconfig: Enable TPS65219 regulator

Enable the TPS65219 regulator in the defconfig, as the TPS65214
variant is used by the newly introduced BeagleBoard Green Eco board.

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
Reviewed-by: Andreas Kemnade <andreas@kemnade.info>
Tested-by: Judith Mendez <jm@ti.com>
Link: https://lore.kernel.org/r/20250620-bbg-v5-5-84f9b9a2e3a8@bootlin.com
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoarm: omap2plus_defconfig: Enable TPS65219 regulator
Kory Maincent [Fri, 20 Jun 2025 08:15:55 +0000 (10:15 +0200)] 
arm: omap2plus_defconfig: Enable TPS65219 regulator

Enable the TPS65219 regulator in the defconfig, as the TPS65214
variant is used by the newly introduced BeagleBoard Green Eco board.

Reviewed-by: Andreas Kemnade <andreas@kemnade.info>
Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
Tested-by: Judith Mendez <jm@ti.com>
Link: https://lore.kernel.org/r/20250620-bbg-v5-4-84f9b9a2e3a8@bootlin.com
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'mvebu-dt-6.17-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gcleme...
Arnd Bergmann [Tue, 22 Jul 2025 20:20:16 +0000 (22:20 +0200)] 
Merge tag 'mvebu-dt-6.17-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt

mvebu dt for 6.17 (part 1)

Use recent scl/sda gpio bindings on kirkwood boards (Keymile ones)

* tag 'mvebu-dt-6.17-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  ARM: dts: marvell: kirkwood: use recent scl/sda gpio bindings

Link: https://lore.kernel.org/r/87ms94xzr8.fsf@BLaptop.bootlin.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'amlogic-arm64-dt-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel...
Arnd Bergmann [Tue, 22 Jul 2025 20:19:54 +0000 (22:19 +0200)] 
Merge tag 'amlogic-arm64-dt-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt

Amlogic ARM64 DT for v6.17:
- Align wifi node name with bindings
- Add pinctrl nodes for Amlogic S7/S7D/S6 nodes
- Enable the NPU nodes on Alta & VIM3
- New boards:
  - Ugoos AM3

* tag 'amlogic-arm64-dt-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux:
  arm64: dts: amlogic: Enable the npu node for Alta and VIM3
  dts: arm64: amlogic: add S6 pinctrl node
  dts: arm64: amlogic: add S7D pinctrl node
  dts: arm64: amlogic: add S7 pinctrl node
  arm64: dts: amlogic: Add Ugoos AM3
  dt-bindings: arm: amlogic: Add Ugoos AM3
  arm64: dts: amlogic: Align wifi node name with bindings

Link: https://lore.kernel.org/r/3d93b621-9544-4a68-85db-6f87a9e8fa5c@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'qcom-arm64-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git...
Arnd Bergmann [Tue, 22 Jul 2025 20:19:30 +0000 (22:19 +0200)] 
Merge tag 'qcom-arm64-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt

Qualcomm Arm64 DeviceTree updates for v6.17

79b896e7da7e arm64: dts: qcom: msm8976-longcheer-l9360: Add initial device tree
6516961352a1 arm64: dts: qcom: Add support for X1-based Asus Zenbook A14

The DB410c D3 camera mezzanine is converted to an overlay.

On MSM8976 SDC2 pinctrl definitions are introduced and BLSP DMA
controller is marked to be managed by another entity.

Add camera subsystem on the QCM2290 platform.

Add and enable remoteproc and related devices on QCS615.

Add and enable Video encoder/decoder on QCS8300 and SA8775P.
Also on SA8775P add CPU OPP tables for scaling DDR/L3 bandwidth based on
CPU frequency, add L3 interconnect definitions, DSI and video
encoder/decoder support.

Enable the SLPI remoteproc on SDM850-based Lenovo Yoga C630.

On SM6350, add the video clock controller, APR and some audio related
services.

Describe the camera subsystem on SM8550 and add Iris video
encoder/decoder node for SM8650.

On SM8750 introduce UFS and Soundwire support, enable these and describe
the sound hardware on MTP and QRD.

Add camera clock controller on SC8180X.

On X Elite, for the Dell XPS13, add WiFi and Bluetooth pwrseq and enable
the fingerprint sensor. For HP Omnibook X14  USB1 SS1 SBU mux and do
some misc cleanup.

Replace the thermal zones inherited from X Elite with X Plus-specific
ones.

Add missing interrupts and clean up unrelated clocks for PCIe
controllers across a variety of platforms.

* tag 'qcom-arm64-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (67 commits)
  arm64: dts: qcom: sm8150: Drop unrelated clocks from PCIe hosts
  arm64: dts: qcom: sc8180x: Drop unrelated clocks from PCIe hosts
  arm64: dts: qcom: x1-asus-zenbook: support sound
  arm64: dts: qcom: x1-asus-zenbook: fixup GPU nodes
  arm64: dts: qcom: sm6115: add debug UART pins
  arm64: dts: qcom: sm8650: add iris DT node
  arm64: dts: qcom: msm8976-longcheer-l9360: Add initial device tree
  arm64: dts: qcom: msm8976: Add sdc2 GPIOs
  dt-bindings: arm: qcom: Add MSM8976 BQ Aquaris X5 Plus
  arm64: dts: qcom: msm8976: Make blsp_dma controlled-remotely
  arm64: dts: qcom: sa8775p: Correct the interrupt for remoteproc
  arm64: dts: qcom: sm8550: Add support for camss
  arm64: dts: qcom: qcs615: disable the CTI device of the camera block
  arm64: dts: qcom: qcs615-ride: enable remoteprocs
  arm64: dts: qcom: qcs615: add ADSP and CDSP nodes
  arm64: dts: qcom: qcs615: Add IMEM and PIL info region
  arm64: dts: qcom: qcs615: Add mproc node for SEMP2P
  arm64: dts: qcom: Add support for X1-based Asus Zenbook A14
  arm64: dts: qcom: sc7180: Expand IMEM region
  arm64: dts: qcom: sdm845: Expand IMEM region
  ...

Link: https://lore.kernel.org/r/20250716031059.76348-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'sunxi-dt-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git...
Arnd Bergmann [Tue, 22 Jul 2025 19:54:29 +0000 (21:54 +0200)] 
Merge tag 'sunxi-dt-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt

Allwinner device tree changes for 6.17

This branch includes a change shared with the clk tree for adding
the missing PPU0 reset on the A523.

The PM domain DT binding immutable branch is also included, which
brings in v6.16-rc2, as well as PM domain bindings for other platforms.

Other changes include:
- RGB666 LCD pin definitions for the V3s PE pins and V3 PD pins
- node order fixes for the A523 dtsi
- UART1 pin definitions for A523
- Allwinner board DT binding cleanup
- EMAC support on A100/A133
  - Enabled on the Liontron H-A133L board
- SID efuse, power controllers and GPU added for A523
- A523 GPU enabled on all existing boards

New boards:
- Xunlong OrangePi 4A with the Allwinner T527 SoC.

* tag 'sunxi-dt-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (21 commits)
  arm64: dts: allwinner: a523: enable Mali GPU for all boards
  arm64: dts: allwinner: a523: add Mali GPU node
  arm64: dts: allwinner: a523: Add power controller device nodes
  dt-bindings: power: Add A523 PPU and PCK600 power controllers
  arm64: dts: allwinner: A523: Add SID controller node
  arm64: dts: allwinner: a133-liontron-h-a133l: Add Ethernet support
  arm64: dts: allwinner: a100: Add EMAC support
  arm64: dts: allwinner: a100: Add pin definitions for RGMII/RMII
  dt-bindings: arm: sunxi: Combine board variants into enums
  dt-bindings: power: qcom,rpmpd: document the Milos RPMh Power Domains
  arm64: dts: allwinner: t527: Add OrangePi 4A board
  arm64: dts: allwinner: a523: Add UART1 pins
  arm64: dts: allwinner: a523: Move rgmii0 pins to correct location
  arm64: dts: allwinner: a523: Move mmc nodes to correct position
  dt-bindings: arm: sunxi: Add Xunlong OrangePi 4A board
  ARM: dts: sun8i: v3: Add RGB666 LCD PD pins definition
  ARM: dts: sun8i: v3s: Add RGB666 LCD PE pins definition
  dt-bindings: reset: sun55i-a523-r-ccu: Add missing PPU0 reset
  dt-bindings: firmware: thead,th1520: Add resets for GPU clkgen
  dt-bindings: rockchip: pmu: Add compatible for RK3528
  ...

Link: https://lore.kernel.org/r/aHaQFe3Lr8Qzyb1M@wens.tw
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'ti-k3-dt-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git...
Arnd Bergmann [Tue, 22 Jul 2025 19:52:46 +0000 (21:52 +0200)] 
Merge tag 'ti-k3-dt-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt

TI K3 device tree updates for v6.17

Generic fixes and cleanups:
* Enable overlays for all DTB files
* Enable Schmitt Trigger by default in K3 pinctrl

SoC specific changes:
AM62D
* Add new SoC support and pinctrl entries

AM62
* Remove eMMC High Speed DDR support
* Move eMMC pinmux to top level board file

J784S4/J742S2
* Add Power on BIST (PBSIT) nodes
* Add ACSPCIE1 node

J721S2
* Add McASP support

J722S
* Add alernate audio-refclk0 node

Board changes:
Multiple boards
* Bootphase tags for Ethernet boot support

AM62D2-EVM
* Add new board support

AM62A7-SK
* Fix pinmux for main_uart1
* Add SPI NAND support

AM62P
* Fix PWM_3_DSI GPIO direction, SD pull up, I2C ups on AM62P-Verdin
* Add bootph-all property for Ethernet boot

AM62-Verdin
* Enable pull-ups on I2C buses

AM654-base-board
* Add boot phase tags for various bootmodes

AM64
* Add boot phase tag PCIe EP boot
* Fix PRU-ICSSG Ethernet ports on AM642-PhyBoard-Electra

AM69-SK
* Add idle-states for remaining SERDES instances

J722S-EVM
* Fix USB gpio-hog level for Type-C

* tag 'ti-k3-dt-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux: (33 commits)
  arm64: dts: ti: k3-am69-sk: Add idle-states for remaining SERDES instances
  arm64: dts: ti: k3-am62a7-sk: add boot phase tags
  arm64: dts: ti: k3-am654-base-board: add boot phase tags
  arm64: dts: ti: k3-am65: add boot phase tags
  arm64: dts: ti: k3-am69-sk: Add bootph-all property to enable Ethernet boot
  arm64: dts: ti: k3-j722s-evm: Add bootph-all property to enable Ethernet boot
  arm64: dts: ti: k3-am62p5-sk: Add bootph-all property to enable Ethernet boot
  arm64: dts: ti: k3-am68-sk-base-board: Add bootph-all property to enable Ethernet boot
  arm64: dts: ti: Add support for AM62D2-EVM
  arm64: dts: ti: Add pinctrl entries for AM62D2 family of SoCs
  dt-bindings: arm: ti: Add AM62D2 SoC and Boards
  arm64: dts: ti: Add bootph property to nodes at source for am62a
  arm64: dts: ti: k3-am62p-verdin: Adjust temperature trip points
  arm64: dts: ti: k3-am62p-j722s: Enable freq throttling on thermal alert
  arm64: dts: ti: k3-j784s4-j742s2-main-common: Add PBIST_14 node
  dt-bindings: soc: ti: bist: Add BIST for K3 devices
  arm64: dts: ti: k3-am62-main: Remove eMMC High Speed DDR support
  arm64: dts: ti: k3-am62*: Move eMMC pinmux to top level board file
  arm64: dts: ti: k3-am62a7-sk: fix pinmux for main_uart1
  arm64: dts: ti: Enable overlays for all DTB files
  ...

Link: https://lore.kernel.org/r/a0401460-8c67-4c29-a6cf-fa4bdf33bc7d@ti.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'qcom-arm32-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git...
Arnd Bergmann [Tue, 22 Jul 2025 19:46:27 +0000 (21:46 +0200)] 
Merge tag 'qcom-arm32-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt

Qualcomm Arm32 DeviceTree updates for v6.17

Add aliases for MMC controllers on MSM8974, enable USB charging on the
Sony Xperia Rhine platform and add new DeviceTree for the Sony Xperia Z
Ultra device.

Tidy up interrupts specifiers on MSM8960, by using macro constants.

* tag 'qcom-arm32-for-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  ARM: dts: qcom: msm8974-sony-xperia-rhine: Add alias for mmc0 & mmc1
  ARM: dts: qcom: msm8974-hammerhead: Add alias for mmc0
  ARM: dts: qcom: msm8974-oneplus-bacon: Add alias for mmc0
  ARM: dts: qcom: Add initial support for Sony Xperia Z Ultra (togari)
  dt-bindings: arm: qcom: Add Sony Xperia Z Ultra (togari)
  ARM: dts: qcom: msm8974-sony-xperia-rhine: Move camera buttons to amami & honami
  ARM: dts: qcom: msm8974-sony-xperia-rhine: Enable USB charging
  ARM: dts: qcom: msm8960: use macros for interrupts
  ARM: dts: qcom: Align wifi node name with bindings

Link: https://lore.kernel.org/r/20250715021838.14751-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'spacemit-dt-for-6.17-1' of https://github.com/spacemit-com/linux into...
Arnd Bergmann [Tue, 22 Jul 2025 19:45:11 +0000 (21:45 +0200)] 
Merge tag 'spacemit-dt-for-6.17-1' of https://github.com/spacemit-com/linux into soc/dt

RISC-V SpacemiT DT changes for 6.17

- Add DMA translation buses
- Add PWM support
- Add Reset support
- Add eMMC node

* tag 'spacemit-dt-for-6.17-1' of https://github.com/spacemit-com/linux:
  riscv: dts: spacemit: Move eMMC under storage-bus for K1
  riscv: dts: spacemit: Move UARTs under dma-bus for K1
  riscv: dts: spacemit: Add DMA translation buses for K1
  riscv: dts: spacemit: add pwm14_1 pinctrl setting
  riscv: dts: spacemit: add PWM support for K1 SoC
  riscv: dts: spacemit: add reset support for the K1 SoC
  dt-bindings: soc: spacemit: define spacemit,k1-ccu resets
  riscv: dts: spacemit: enable eMMC for K1 SoC

Link: https://lore.kernel.org/r/20250715014214-GYA540030@gentoo
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'imx-bindings-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git...
Arnd Bergmann [Tue, 22 Jul 2025 19:43:39 +0000 (21:43 +0200)] 
Merge tag 'imx-bindings-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt

i.MX dt-bindings changes for 6.17:

- New board compatibles for i.MX28 Amarula, Engicam MicroGEA, GOcontroll
  and phyCORE-i.MX 95 Plus FPSC SoM
- A couple of i.MX AIPSTZ bridge related bindings updates from
  Laurentiu Mihalcea

* tag 'imx-bindings-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  dt-bindings: add imx95-libra-rdk-fpsc
  dt-bindings: arm: fsl: support Engicam MicroGEA GTW board
  dt-bindings: arm: fsl: support Engicam MicroGEA RMM board
  dt-bindings: arm: fsl: support Engicam MicroGEA BMM board
  dt-bindings: dsp: fsl,dsp: document 'access-controllers' property
  dt-bindings: bus: document the IMX AIPSTZ bridge
  dt-bindings: arm: fsl: add i.MX28 Amarula rmm board
  dt-bindings: arm: fsl: Add GOcontroll Moduline Display

Link: https://lore.kernel.org/r/20250713055441.221235-2-shawnguo2@yeah.net
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'imx-dt-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo...
Arnd Bergmann [Tue, 22 Jul 2025 19:42:23 +0000 (21:42 +0200)] 
Merge tag 'imx-dt-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt

i.MX ARM device tree changes for 6.17:

- New device trees for Engicam MicroGEA-MX6UL and i.MX28 Amarula board
- A couple of changes from Bence Csókás to replace license text comment
  with SPDX identifier for Karo and Gateworks boards
- A couple of imx7s-warp updates from Fabio Estevam to improve Bluetooth
  and Wifi description
- A set of dt-schema fixes for VF610 based boards from Frank Li
- A couple of imx6ul-kontron-sl-common changes to add SPI NOR partitions
  and correct QSPI NAND node name
- A few other random improvements

* tag 'imx-dt-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (21 commits)
  ARM: dts: imx6-gw: Replace license text comment with SPDX identifier
  ARM: dts: imx6ul-kontron-sl-common: Fix QSPI NAND node name
  ARM: dts: imx6ul-kontron-sl-common: Add SPI NOR partitions
  ARM: dts: imx6ul-kontron-bl-common: Fix RTS polarity for RS485 interface
  ARM: dts: imx6-karo: Replace license text comment with SPDX identifier
  ARM: dts: imx6ul: support Engicam MicroGEA GTW board
  ARM: dts: imx6ul: support Engicam MicroGEA RMM board
  ARM: dts: imx6ul: support Engicam MicroGEA BMM board
  ARM: dts: imx6ul: support Engicam MicroGEA-MX6UL SoM
  ARM: dts: mxs: support i.MX28 Amarula rmm board
  ARM: dts: imx28: add pwm7 muxing options
  ARM: dts: vf: vf610-zii-cfu1: rename node name *-gpio to *-gpios
  ARM: dts: vf: vf-colibri-eval-v3: add power-supply for edt,et057090dhu
  ARM: dts: vf: rename io-expander@20 to pinctrl@20
  ARM: dts: vf: remove redundant layer under iomux
  ARM: dts: vf: remove redundant pinctrl-names
  ARM: dts: vf: remove reg property for arm pmu
  ARM: dts: vfxxx: Correctly use two tuples for timer address
  ARM: dts: add ngpios for vf610 compatible gpio controllers
  ARM: dts: imx7s-warp: Improve the Wifi description
  ...

Link: https://lore.kernel.org/r/20250713055441.221235-3-shawnguo2@yeah.net
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'imx-dt64-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo...
Arnd Bergmann [Tue, 22 Jul 2025 19:40:16 +0000 (21:40 +0200)] 
Merge tag 'imx-dt64-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt

i.MX arm64 device tree changes for 6.17:

- New board support: GOcontroll Moduline based devices, phyCORE-i.MX 95
  Plus FPSC SoM and base boards, i.MX93 phycore overlays
- A few i.MX8M changes from Adam Ford to add DMA configuration for
  UART2, set up VPU clocks for nominal and overdrive mode, improve
  HS400 USDHC clock speed
- Several sets of changes from Alexander Stein to add EASRC support for
  tqma8mnql and tqma8mpql board, add missing DMA entries for I2C & LPUART
  on ls1043a and ls1046a, enable SFP interface for tqmls1043a and
  tqmls1046a, etc.
- A series from Clark Wang to improve Ethernet support for i.MX93,
  removing eee-broken-1000t for eqos node, reducing the driving strength
  of net RXC/TXC, etc.
- A few i.MX95 and i.MX8Q changes from Frank Li to add missing devices
  for EVK board and enable camera support
- A couple of changes from Laurentiu Mihalcea to support WM8962 audio
  codec for imx8qxp-mek and imx8qm-mek board
- A number of changes from Shengjiu Wang to improve various audio
  support for imx943-evk and imx8mp-evk
- A series from Tim Harvey to increase HS400 USDHC clock speed for
  Gateworks i.MX8M Venice devices
- Many other random improvements and cleanups on various boards

* tag 'imx-dt64-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (85 commits)
  arm64: dts: imx8q: add camera ov5640 support for imx8qm-mek and imx8qxp-mek
  arm64: dts: freescale: imx8mp-toradex-smarc: remove gpio hog
  arm64: dts: freescale: imx8mp-toradex-smarc: fix lvds dsi mux gpio
  arm64: dts: imx8mm-venice-gw7904: Increase HS400 USDHC clock speed
  arm64: dts: imx8mm-venice-gw7903: Increase HS400 USDHC clock speed
  arm64: dts: imx8mn-venice-gw7902: Increase HS400 USDHC clock speed
  arm64: dts: imx8mm-venice-gw7902: Increase HS400 USDHC clock speed
  arm64: dts: imx8mm-venice-gw7901: Increase HS400 USDHC clock speed
  arm64: dts: imx8mp-venice-gw702x: Increase HS400 USDHC clock speed
  arm64: dts: imx8mm-venice-gw700x: Increase HS400 USDHC clock speed
  arm64: dts: lx2160a-qds: add the two on-board RGMII PHYs
  arm64: dts: add imx95-libra-rdk-fpsc board
  arm64: dts: imx8q: add linux,cma node for imx8qm-mek and imx8qxp-mek
  arm64: dts: imx8: add capture controller for i.MX8's img subsystem
  arm64: dts: imx95: add jpeg encode and decode nodes
  arm64: dts: imx93-phyboard-nash: Add PEB-WLBT-07 overlay
  arm64: dts: imx93-phyboard-segin: Add PEB-WLBT-05 overlay
  arm64: dts: imx93-phyboard-segin: Add PEB-EVAL-01 overlay
  arm64: dts: imx93-phycore-som: Add RPMsg overlay
  arm64: dts: freescale: tqmls10xx: Add vdd-supply for spi-nor flash
  ...

Link: https://lore.kernel.org/r/20250713055441.221235-4-shawnguo2@yeah.net
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'socfpga_dts_updates_for_v6.17' of https://git.kernel.org/pub/scm/linux...
Arnd Bergmann [Tue, 22 Jul 2025 19:39:34 +0000 (21:39 +0200)] 
Merge tag 'socfpga_dts_updates_for_v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into soc/dt

SoCFPGA DTS updates for v6.17
- Fix dt_binding_check warnings
- agilex - f2s-free-clk
- stratix10 - rstmgr
- swvp - remove phy-addr, cpu1-start-addr and altr,modrst-offset

* tag 'socfpga_dts_updates_for_v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  arm64: dts: altera: socfpga_stratix10: update internal oscillators
  arm64: dts: socfpga: swvp: remove phy-addr in the GMAC node
  arm64: dts: socfpga: swvp: remove cpu1-start-addr
  arm64: dts: socfpga: swvp: remove altr,modrst-offset
  arm64: dts: socfpga: stratix10: fix dtbs_check for rstmgr
  arm64: dts: socfpga: agilex: fix dtbs_check warning for f2s-free-clk

Link: https://lore.kernel.org/r/20250712123248.16981-1-dinguyen@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'tegra-for-6.17-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel...
Arnd Bergmann [Tue, 22 Jul 2025 19:38:44 +0000 (21:38 +0200)] 
Merge tag 'tegra-for-6.17-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt

arm64: tegra: Changes for v6.17-rc1

Add support for the Tegra264 SoC and the corresponding engineering
reference hardware (P3971-0089+P3834-0008).

* tag 'tegra-for-6.17-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  arm64: tegra: Add p3971-0089+p3834-0008 support
  arm64: tegra: Add memory controller on Tegra264
  arm64: tegra: Add Tegra264 support

Link: https://lore.kernel.org/r/20250711220943.2389322-7-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'tegra-for-6.17-arm-dt' of https://git.kernel.org/pub/scm/linux/kernel...
Arnd Bergmann [Tue, 22 Jul 2025 19:37:39 +0000 (21:37 +0200)] 
Merge tag 'tegra-for-6.17-arm-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt

ARM: tegra: Device tree changes for v6.17-rc1

Add support for two Tegra30 ASUS devices and enable the embedded
controller on Pegatron Chagall.

* tag 'tegra-for-6.17-arm-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  ARM: tegra: chagall: Add embedded controller node
  ARM: tegra: Add device-tree for Asus Portable AiO P1801-T
  ARM: tegra: Add device-tree for ASUS VivoTab RT TF600T

Link: https://lore.kernel.org/r/20250711220943.2389322-6-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'tegra-for-6.17-dt-bindings' of https://git.kernel.org/pub/scm/linux/kernel...
Arnd Bergmann [Tue, 22 Jul 2025 19:36:28 +0000 (21:36 +0200)] 
Merge tag 'tegra-for-6.17-dt-bindings' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt

dt-bindings: Updates for v6.17-rc1

Add Tegra264 compatible strings for some core components and extend
bindings where necessary to accomodate the new hardware generation. Also
document some new platforms, for both old and new chips.

* tag 'tegra-for-6.17-dt-bindings' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  dt-bindings: arm: tegra: Add Asus Portable AiO P1801-T
  dt-bindings: arm: tegra: Add Asus VivoTab RT TF600T
  dt-bindings: Add Tegra264 clock and reset definitions
  dt-bindings: tegra: Document P3971-0089+P3834-0008 Platform
  dt-bindings: rtc: tegra: Document Tegra264 RTC
  dt-bindings: dma: Add Tegra264 compatible string
  dt-bindings: misc: Document Tegra264 APBMISC compatible
  dt-bindings: firmware: Document Tegra264 BPMP
  dt-bindings: mailbox: tegra-hsp: Properly sort compatible string list
  dt-bindings: mailbox: tegra-hsp: Bump number of shared interrupts
  dt-bindings: tegra: pmc: Add Tegra264 compatible
  dt-bindings: memory: tegra: Add Tegra264 support

Link: https://lore.kernel.org/r/20250711220943.2389322-3-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'mvebu-arm-6.17-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclem...
Arnd Bergmann [Tue, 22 Jul 2025 19:35:08 +0000 (21:35 +0200)] 
Merge tag 'mvebu-arm-6.17-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/arm

mvebu arm for 6.17 (part 1)

Use string choices helper in GPIO support code for legacy Orion based
platforms.

* tag 'mvebu-arm-6.17-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  arm: orion: use string choices helper

Link: https://lore.kernel.org/r/87jz48xzpz.fsf@BLaptop.bootlin.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'ti-k3-config-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel...
Arnd Bergmann [Tue, 22 Jul 2025 19:34:06 +0000 (21:34 +0200)] 
Merge tag 'ti-k3-config-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/arm

TI K3 defconfig updates for v6.17

Cleanup select clauses for ARCH_K3 allow more modular builds

* tag 'ti-k3-config-for-v6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
  arm64: Kconfig.platforms: remove useless select for ARCH_K3

Link: https://lore.kernel.org/r/5488ccd5-c999-4b72-bfc0-ba94bb9a360d@ti.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoMerge tag 'tegra-for-6.17-arm-core' of https://git.kernel.org/pub/scm/linux/kernel...
Arnd Bergmann [Tue, 22 Jul 2025 19:33:23 +0000 (21:33 +0200)] 
Merge tag 'tegra-for-6.17-arm-core' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/arm

ARM: tegra: Core changes for v6.17-rc1

Fixes an issue when copying data to IRAM using memcpy() and use the
memcpy_toio() function instead.

* tag 'tegra-for-6.17-arm-core' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  ARM: tegra: Use I/O memcpy to write to IRAM

Link: https://lore.kernel.org/r/20250711220943.2389322-5-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
5 weeks agoPCI/pwrctrl: Create pwrctrl devices only when CONFIG_PCI_PWRCTRL is enabled
Manivannan Sadhasivam [Tue, 1 Jul 2025 06:47:31 +0000 (12:17 +0530)] 
PCI/pwrctrl: Create pwrctrl devices only when CONFIG_PCI_PWRCTRL is enabled

If devicetree describes power supplies related to a PCI device, we
unnecessarily created a pwrctrl device even if CONFIG_PCI_PWRCTL was not
enabled.

We only need pci_pwrctrl_create_device() when CONFIG_PCI_PWRCTRL is
enabled.  Compile it out when CONFIG_PCI_PWRCTRL is not enabled.

When pci_pwrctrl_create_device() creates and returns a pwrctrl device,
pci_scan_device() doesn't enumerate the PCI device. It assumes the pwrctrl
core will rescan the bus after turning on the power. However, if
CONFIG_PCI_PWRCTRL is not enabled, the rescan never happens, which breaks
PCI enumeration on any system that describes power supplies in devicetree
but does not use pwrctrl.

Jim reported that some brcmstb platforms break this way.  The brcmstb
driver is still broken if CONFIG_PCI_PWRCTRL is enabled, but this commit at
least allows brcmstb to work when it's NOT enabled.

Fixes: 957f40d039a9 ("PCI/pwrctrl: Move creation of pwrctrl devices to pci_scan_device()")
Reported-by: Jim Quinlan <james.quinlan@broadcom.com>
Link: https://lore.kernel.org/r/CA+-6iNwgaByXEYD3j=-+H_PKAxXRU78svPMRHDKKci8AGXAUPg@mail.gmail.com
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
[bhelgaas: commit log]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Lukas Wunner <lukas@wunner.de>
Cc: stable@vger.kernel.org # v6.15
Link: https://patch.msgid.link/20250701064731.52901-1-manivannan.sadhasivam@linaro.org
5 weeks agoMerge branch 'for-linus' into for-next
Takashi Iwai [Tue, 22 Jul 2025 18:02:13 +0000 (20:02 +0200)] 
Merge branch 'for-linus' into for-next

Signed-off-by: Takashi Iwai <tiwai@suse.de>
5 weeks agoALSA: hda/realtek: Fix mute LED mask on HP OMEN 16 laptop
SHARAN KUMAR M [Tue, 22 Jul 2025 17:22:24 +0000 (22:52 +0530)] 
ALSA: hda/realtek: Fix mute LED mask on HP OMEN 16 laptop

this patch is to fix my previous Commit <e5182305a519> i have fixed mute
led but for by This patch corrects the coefficient mask value introduced
in commit <e5182305a519>, which was intended to enable the mute LED
functionality. During testing, multiple values were evaluated, and
an incorrect value was mistakenly included in the final commit.
This update fixes that error by applying the correct mask value for
proper mute LED behavior.

Tested on 6.15.5-arch1-1

Fixes: e5182305a519 ("ALSA: hda/realtek: Enable Mute LED on HP OMEN 16 Laptop xd000xx")
Signed-off-by: SHARAN KUMAR M <sharweshraajan@gmail.com>
Link: https://patch.msgid.link/20250722172224.15359-1-sharweshraajan@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
5 weeks agovt: defkeymap: Map keycodes above 127 to K_HOLE
Myrrh Periwinkle [Wed, 2 Jul 2025 14:17:58 +0000 (21:17 +0700)] 
vt: defkeymap: Map keycodes above 127 to K_HOLE

The maximum number of keycodes got bumped to 256 a very long time ago,
but the default keymaps were never adjusted to match. This is causing
the kernel to interpret keycodes above 127 as U+0000 if the shipped
generated keymap is used.

Fix this by mapping all keycodes above 127 to K_HOLE so the kernel
ignores them.

The contents of this patche were generated by rerunning `loadkeys
--mktable --unicode` and only including the changes to map keycodes
above 127 to K_HOLE.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Myrrh Periwinkle <myrrhperiwinkle@qtmlabs.xyz>
Cc: stable <stable@kernel.org>
Reviewed-by: Jiri Slaby <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20250702-vt-misc-unicode-fixes-v1-2-c27e143cc2eb@qtmlabs.xyz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agovt: keyboard: Don't process Unicode characters in K_OFF mode
Myrrh Periwinkle [Wed, 2 Jul 2025 14:17:57 +0000 (21:17 +0700)] 
vt: keyboard: Don't process Unicode characters in K_OFF mode

We don't process Unicode characters if the virtual terminal is in raw
mode, so there's no reason why we shouldn't do the same for K_OFF
(especially since people would expect K_OFF to actually turn off all VT
key processing).

Fixes: 9fc3de9c8356 ("vt: Add virtual console keyboard mode OFF")
Signed-off-by: Myrrh Periwinkle <myrrhperiwinkle@qtmlabs.xyz>
Cc: stable <stable@kernel.org>
Reviewed-by: Jiri Slaby <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20250702-vt-misc-unicode-fixes-v1-1-c27e143cc2eb@qtmlabs.xyz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agoserial: qcom-geni: Enable Serial on SA8255p Qualcomm platforms
Praveen Talari [Mon, 21 Jul 2025 17:45:32 +0000 (23:15 +0530)] 
serial: qcom-geni: Enable Serial on SA8255p Qualcomm platforms

The Qualcomm automotive SA8255p SoC relies on firmware to configure
platform resources, including clocks, interconnects and TLMM.
The driver requests resources operations over SCMI using power
and performance protocols.

The SCMI power protocol enables or disables resources like clocks,
interconnect paths, and TLMM (GPIOs) using runtime PM framework APIs,
such as resume/suspend, to control power states(on/off).

The SCMI performance protocol manages UART baud rates, with each baud
rate represented by a performance level. The driver uses the
dev_pm_opp_set_level() API to request the desired baud rate by
specifying the performance level.

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Praveen Talari <quic_ptalari@quicinc.com>
Link: https://lore.kernel.org/r/20250721174532.14022-9-quic_ptalari@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agoserial: qcom-geni: Enable PM runtime for serial driver
Praveen Talari [Mon, 21 Jul 2025 17:45:31 +0000 (23:15 +0530)] 
serial: qcom-geni: Enable PM runtime for serial driver

The GENI serial driver currently handles power resource management
through calls to the statically defined geni_serial_resources_on() and
geni_serial_resources_off() functions. This approach reduces modularity
and limits support for platforms with diverse power management
mechanisms, including resource managed by firmware.

Improve modularity and enable better integration with platform-specific
power management, introduce support for runtime PM. Use
pm_runtime_resume_and_get() and pm_runtime_put_sync() within the
qcom_geni_serial_pm() callback to control resource power state
transitions based on UART power state changes.

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Praveen Talari <quic_ptalari@quicinc.com>
Link: https://lore.kernel.org/r/20250721174532.14022-8-quic_ptalari@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agoserial: qcom-geni: move clock-rate logic to separate function
Praveen Talari [Mon, 21 Jul 2025 17:45:30 +0000 (23:15 +0530)] 
serial: qcom-geni: move clock-rate logic to separate function

Facilitates future modifications within the new function,
leading to better readability and maintainability of the code.

Move the code that handles the actual logic of clock-rate
calculations to a separate function geni_serial_set_rate()
which enhances code readability.

Signed-off-by: Praveen Talari <quic_ptalari@quicinc.com>
Link: https://lore.kernel.org/r/20250721174532.14022-7-quic_ptalari@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agoserial: qcom-geni: move resource control logic to separate functions
Praveen Talari [Mon, 21 Jul 2025 17:45:29 +0000 (23:15 +0530)] 
serial: qcom-geni: move resource control logic to separate functions

Supports use in PM system/runtime frameworks, helping to distinguish new
resource control mechanisms and facilitate future modifications within
the new API.

The code that handles the actual enable or disable of resources like clock
and ICC paths to a separate function (geni_serial_resources_on() and
geni_serial_resources_off()) which enhances code readability.

Introduced minor return checks in newly added function APIs to enhance
error detection and prevent silent failures.

Signed-off-by: Praveen Talari <quic_ptalari@quicinc.com>
Link: https://lore.kernel.org/r/20250721174532.14022-6-quic_ptalari@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agoserial: qcom-geni: move resource initialization to separate function
Praveen Talari [Mon, 21 Jul 2025 17:45:28 +0000 (23:15 +0530)] 
serial: qcom-geni: move resource initialization to separate function

Enhances code readability and future modifications within the new API.

Move the code that handles the actual initialization of resources
like clock and ICC paths to a separate function, making the
probe function cleaner.

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Praveen Talari <quic_ptalari@quicinc.com>
Link: https://lore.kernel.org/r/20250721174532.14022-5-quic_ptalari@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agosoc: qcom: geni-se: Enable QUPs on SA8255p Qualcomm platforms
Praveen Talari [Mon, 21 Jul 2025 17:45:27 +0000 (23:15 +0530)] 
soc: qcom: geni-se: Enable QUPs on SA8255p Qualcomm platforms

On the sa8255p platform, resources such as clocks,interconnects
and TLMM (GPIO) configurations are managed by firmware.

Use the `num_clks` field in platform data to distinguish whether
resource control is performed by firmware or directly by the driver
in linux.

Signed-off-by: Praveen Talari <quic_ptalari@quicinc.com>
Link: https://lore.kernel.org/r/20250721174532.14022-4-quic_ptalari@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agodt-bindings: qcom: geni-se: describe SA8255p
Nikunj Kela [Mon, 21 Jul 2025 17:45:26 +0000 (23:15 +0530)] 
dt-bindings: qcom: geni-se: describe SA8255p

SA8255p platform abstracts resources such as clocks, interconnect
configuration in Firmware.

Add DT bindings for the QUP Wrapper on sa8255p platform.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Nikunj Kela <quic_nkela@quicinc.com>
Co-developed-by: Praveen Talari <quic_ptalari@quicinc.com>
Signed-off-by: Praveen Talari <quic_ptalari@quicinc.com>
Link: https://lore.kernel.org/r/20250721174532.14022-3-quic_ptalari@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agodt-bindings: serial: describe SA8255p
Nikunj Kela [Mon, 21 Jul 2025 17:45:25 +0000 (23:15 +0530)] 
dt-bindings: serial: describe SA8255p

SA8255p platform abstracts resources such as clocks, interconnect and
GPIO pins configuration in Firmware. SCMI power and perf protocols are
used to send request for resource configurations.

Add DT bindings for the QUP GENI UART controller on sa8255p platform.

The wakeup interrupt (IRQ) is treated as optional, as not all UART
instances have a wakeup-capable interrupt routed via the PDC.

Signed-off-by: Nikunj Kela <quic_nkela@quicinc.com>
Co-developed-by: Praveen Talari <quic_ptalari@quicinc.com>
Signed-off-by: Praveen Talari <quic_ptalari@quicinc.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20250721174532.14022-2-quic_ptalari@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agoserial: 8250_dw: Fix typo "notifer"
WangYuli [Tue, 22 Jul 2025 07:34:29 +0000 (15:34 +0800)] 
serial: 8250_dw: Fix typo "notifer"

There is a spelling mistake of 'notifer' in the comment which
should be 'notifier'.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: WangYuli <wangyuli@uniontech.com>
Link: https://lore.kernel.org/r/BD4804BF4FBA1648+20250722073431.21983-6-wangyuli@uniontech.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agocomedi: fix race between polling and detaching
Ian Abbott [Tue, 22 Jul 2025 15:53:16 +0000 (16:53 +0100)] 
comedi: fix race between polling and detaching

syzbot reports a use-after-free in comedi in the below link, which is
due to comedi gladly removing the allocated async area even though poll
requests are still active on the wait_queue_head inside of it. This can
cause a use-after-free when the poll entries are later triggered or
removed, as the memory for the wait_queue_head has been freed.  We need
to check there are no tasks queued on any of the subdevices' wait queues
before allowing the device to be detached by the `COMEDI_DEVCONFIG`
ioctl.

Tasks will read-lock `dev->attach_lock` before adding themselves to the
subdevice wait queue, so fix the problem in the `COMEDI_DEVCONFIG` ioctl
handler by write-locking `dev->attach_lock` before checking that all of
the subdevices are safe to be deleted.  This includes testing for any
sleepers on the subdevices' wait queues.  It remains locked until the
device has been detached.  This requires the `comedi_device_detach()`
function to be refactored slightly, moving the bulk of it into new
function `comedi_device_detach_locked()`.

Note that the refactor of `comedi_device_detach()` results in
`comedi_device_cancel_all()` now being called while `dev->attach_lock`
is write-locked, which wasn't the case previously, but that does not
matter.

Thanks to Jens Axboe for diagnosing the problem and co-developing this
patch.

Cc: stable <stable@kernel.org>
Fixes: 2f3fdcd7ce93 ("staging: comedi: add rw_semaphore to protect against device detachment")
Link: https://lore.kernel.org/all/687bd5fe.a70a0220.693ce.0091.GAE@google.com/
Reported-by: syzbot+01523a0ae5600aef5895@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=01523a0ae5600aef5895
Co-developed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Tested-by: Jens Axboe <axboe@kernel.dk>
Link: https://lore.kernel.org/r/20250722155316.27432-1-abbotti@mev.co.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5 weeks agofs/orangefs: Allow 2 more characters in do_c_string()
Dan Carpenter [Sat, 19 Jul 2025 14:19:10 +0000 (09:19 -0500)] 
fs/orangefs: Allow 2 more characters in do_c_string()

The do_k_string() and do_c_string() functions do essentially the same
thing which is they add a string and a comma onto the end of an existing
string.  At the end, the caller will overwrite the last comma with a
newline.  Later, in orangefs_kernel_debug_init(), we add a newline to
the string.

The change to do_k_string() is just cosmetic.  I moved the "- 1" to
the other side of the comparison and made it "+ 1".  This has no
effect on runtime, I just wanted the functions to match each other
and the rest of the file.

However in do_c_string(), I removed the "- 2" which allows us to print
two extra characters.  I noticed this issue while reviewing the code
and I doubt affects anything in real life.  My guess is that this was
double counting the comma and the newline.  The "+ 1" accounts for
the newline, and the caller will delete the final comma which ensures
there is enough space for the newline.

Removing the "- 2" lets us print 2 more characters, but mainly it makes
the code more consistent and understandable for reviewers.

Fixes: 44f4641073f1 ("orangefs: clean up debugfs globals")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
5 weeks agoMerge branches 'pm-misc' and 'pm-tools'
Rafael J. Wysocki [Tue, 22 Jul 2025 16:07:11 +0000 (18:07 +0200)] 
Merge branches 'pm-misc' and 'pm-tools'

Merge miscellaneous power management updates and cpupower utility
updates for 6.17-rc1:

 - Update contact information in the PM ABI docs and maintainer
   information in the power domains DT binding (Rafael Wysocki)

 - Update PM header inclusions to follow the IWYU (Include What You Use)
   principle (Andy Shevchenko)

 - Add flags to specify power on attach/detach for PM domains, make the
   driver core detach PM domains in device_unbind_cleanup(), and drop
   the dev_pm_domain_detach() call from the platform bus type (Claudiu
   Beznea)

 - Improve Python binding's Makefile for cpupower (John B. Wyatt IV)

 - Fix printing of CORE, CPU fields in cpupower-monitor (Gautham Shenoy)

* pm-misc:
  PM: docs: Use my kernel.org address in ABI docs and DT bindings
  driver core: platform: Drop dev_pm_domain_detach() call
  PM: domains: Detach on device_unbind_cleanup()
  PM: domains: Add flags to specify power on attach/detach
  PM: Don't use "proxy" headers

* pm-tools:
  cpupower: Improve Python binding's Makefile
  pm: cpupower: Fix printing of CORE, CPU fields in cpupower-monitor
  pm: cpupower: Fix the snapshot-order of tsc,mperf, clock in mperf_stop()

5 weeks agosunvdc: Balance device refcount in vdc_port_mpgroup_check
Ma Ke [Sat, 19 Jul 2025 07:58:56 +0000 (15:58 +0800)] 
sunvdc: Balance device refcount in vdc_port_mpgroup_check

Using device_find_child() to locate a probed virtual-device-port node
causes a device refcount imbalance, as device_find_child() internally
calls get_device() to increment the device’s reference count before
returning its pointer. vdc_port_mpgroup_check() directly returns true
upon finding a matching device without releasing the reference via
put_device(). We should call put_device() to decrement refcount.

As comment of device_find_child() says, 'NOTE: you will need to drop
the reference with put_device() after use'.

Found by code review.

Cc: stable@vger.kernel.org
Fixes: 3ee70591d6c4 ("sunvdc: prevent sunvdc panic when mpgroup disk added to guest domain")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
Link: https://lore.kernel.org/r/20250719075856.3447953-1-make24@iscas.ac.cn
Signed-off-by: Jens Axboe <axboe@kernel.dk>
5 weeks agoMerge branches 'pm-runtime' and 'pm-powercap'
Rafael J. Wysocki [Tue, 22 Jul 2025 16:01:15 +0000 (18:01 +0200)] 
Merge branches 'pm-runtime' and 'pm-powercap'

Merge runtime PM updates and power capping updates for 6.17-rc1:

 - Document return values of suspend-related API functions in the
   runtime PM framework (Sakari Ailus)

 - Mark last busy stamp in multiple autosuspend-related functions in the
   runtime PM framework and update its documentation (Sakari Ailus)

 - Take active children into account in pm_runtime_get_if_in_use() for
   consistency (Rafael Wysocki)

 - Fix NULL pointer dereference in get_pd_power_uw() in the dtpm_cpu
   power capping driver (Sivan Zohar-Kotzer)

 - Add support for the Bartlett Lake platform to the Intel RAPL power
   capping driver (Qiao Wei)

 - Add PL4 support for Panther Lake to the intel_rapl_msr power capping
   driver (Zhang Rui)

* pm-runtime:
  PM: runtime: Take active children into account in pm_runtime_get_if_in_use()
  Documentation: PM: *_autosuspend() functions update last busy time
  PM: runtime: Mark last busy stamp in pm_request_autosuspend()
  PM: runtime: Mark last busy stamp in pm_runtime_autosuspend()
  PM: runtime: Mark last busy stamp in pm_runtime_put_sync_autosuspend()
  PM: runtime: Mark last busy stamp in pm_runtime_put_autosuspend()
  PM: runtime: Document return values of suspend-related API functions

* pm-powercap:
  powercap: dtpm_cpu: Fix NULL pointer dereference in get_pd_power_uw()
  powercap: intel_rapl: Add support for Bartlett Lake platform
  powercap: intel_rapl_msr: Add PL4 support for Panther Lake

5 weeks agof2fs: fix to avoid out-of-boundary access in dnode page
Chao Yu [Thu, 17 Jul 2025 13:26:33 +0000 (21:26 +0800)] 
f2fs: fix to avoid out-of-boundary access in dnode page

As Jiaming Zhang reported:

 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x1c1/0x2a0 lib/dump_stack.c:120
 print_address_description mm/kasan/report.c:378 [inline]
 print_report+0x17e/0x800 mm/kasan/report.c:480
 kasan_report+0x147/0x180 mm/kasan/report.c:593
 data_blkaddr fs/f2fs/f2fs.h:3053 [inline]
 f2fs_data_blkaddr fs/f2fs/f2fs.h:3058 [inline]
 f2fs_get_dnode_of_data+0x1a09/0x1c40 fs/f2fs/node.c:855
 f2fs_reserve_block+0x53/0x310 fs/f2fs/data.c:1195
 prepare_write_begin fs/f2fs/data.c:3395 [inline]
 f2fs_write_begin+0xf39/0x2190 fs/f2fs/data.c:3594
 generic_perform_write+0x2c7/0x910 mm/filemap.c:4112
 f2fs_buffered_write_iter fs/f2fs/file.c:4988 [inline]
 f2fs_file_write_iter+0x1ec8/0x2410 fs/f2fs/file.c:5216
 new_sync_write fs/read_write.c:593 [inline]
 vfs_write+0x546/0xa90 fs/read_write.c:686
 ksys_write+0x149/0x250 fs/read_write.c:738
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xf3/0x3d0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

The root cause is in the corrupted image, there is a dnode has the same
node id w/ its inode, so during f2fs_get_dnode_of_data(), it tries to
access block address in dnode at offset 934, however it parses the dnode
as inode node, so that get_dnode_addr() returns 360, then it tries to
access page address from 360 + 934 * 4 = 4096 w/ 4 bytes.

To fix this issue, let's add sanity check for node id of all direct nodes
during f2fs_get_dnode_of_data().

Cc: stable@kernel.org
Reported-by: Jiaming Zhang <r772577952@gmail.com>
Closes: https://groups.google.com/g/syzkaller/c/-ZnaaOOfO3M
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: switch to the new mount api
Hongbo Li [Thu, 10 Jul 2025 12:14:15 +0000 (12:14 +0000)] 
f2fs: switch to the new mount api

The new mount api will execute .parse_param, .init_fs_context, .get_tree
and will call .remount if remount happened. So we add the necessary
functions for the fs_context_operations. If .init_fs_context is added,
the old .mount should remove.

See Documentation/filesystems/mount_api.rst for more information.

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
[sandeen: forward port]
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
[hongbo: context modified]
Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: introduce fs_context_operation structure
Hongbo Li [Thu, 10 Jul 2025 12:14:14 +0000 (12:14 +0000)] 
f2fs: introduce fs_context_operation structure

The handle_mount_opt() helper is used to parse mount parameters,
and so we can rename this function to f2fs_parse_param() and set
it as .param_param in fs_context_operations.

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
[sandeen: forward port]
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: separate the options parsing and options checking
Hongbo Li [Thu, 10 Jul 2025 12:14:13 +0000 (12:14 +0000)] 
f2fs: separate the options parsing and options checking

The new mount api separates option parsing and super block setup
into two distinct steps and so we need to separate the options
parsing out of the parse_options().

In order to achieve this, here we handle the mount options with
three steps:
  - Firstly, we move sb/sbi out of handle_mount_opt.
    As the former patch introduced f2fs_fs_context, so we record
    the changed mount options in this context. In handle_mount_opt,
    sb/sbi is null, so we should move all relative code out of
    handle_mount_opt (thus, some check case which use sb/sbi should
    move out).
  - Secondly, we introduce the some check helpers to keep the option
    consistent.
    During filling superblock period, sb/sbi are ready. So we check
    the f2fs_fs_context which holds the mount options base on sb/sbi.
  - Thirdly, we apply the new mount options to sb/sbi.
    After checking the f2fs_fs_context, all changed on mount options
    are valid. So we can apply them to sb/sbi directly.

After do these, option parsing and super block setting have been
decoupled. Also it should have retained the original execution
flow.

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
[sandeen: forward port, minor fixes and updates]
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
[hongbo: minor fixes]
Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Add f2fs_fs_context to record the mount options
Hongbo Li [Thu, 10 Jul 2025 12:14:12 +0000 (12:14 +0000)] 
f2fs: Add f2fs_fs_context to record the mount options

At the parsing phase of mouont in the new mount api, options
value will be recorded with the context, and then it will be
used in fill_super and other helpers.

Note that, this is a temporary status, we want remove the sb
and sbi usages in handle_mount_opt. So here the f2fs_fs_context
only records the mount options, it will be copied in sb/sbi in
later process. (At this point in the series, mount options are
temporarily not set during mount.)

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
[sandeen: forward port, minor fixes and updates]
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
[hongbo: minor cleanup]
Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Allow sbi to be NULL in f2fs_printk
Hongbo Li [Thu, 10 Jul 2025 12:14:11 +0000 (12:14 +0000)] 
f2fs: Allow sbi to be NULL in f2fs_printk

At the parsing phase of the new mount api, sbi will not be
available. So here allows sbi to be NULL in f2fs log helpers
and use that in handle_mount_opt().

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
[sandeen: forward port]
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: move the option parser into handle_mount_opt
Hongbo Li [Thu, 10 Jul 2025 12:14:10 +0000 (12:14 +0000)] 
f2fs: move the option parser into handle_mount_opt

In handle_mount_opt, we use fs_parameter to parse each option.
However we're still using the old API to get the options string.
Using fsparams parse_options allows us to remove many of the Opt_
enums, so remove them.

The checkpoint disable cap (or percent) involves rather complex
parsing; we retain the old match_table mechanism for this, which
handles it well.

There are some changes about parsing options:
  1. For `active_logs`, `inline_xattr_size` and `fault_injection`,
     we use s32 type according the internal structure to record the
     option's value.

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
[sandeen: forward port, minor fixes and updates]
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
[hongbo: minor cleanup]
Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Add fs parameter specifications for mount options
Hongbo Li [Thu, 10 Jul 2025 12:14:09 +0000 (12:14 +0000)] 
f2fs: Add fs parameter specifications for mount options

Use an array of `fs_parameter_spec` called f2fs_param_specs to
hold the mount option specifications for the new mount api.

Add constant_table structures for several options to facilitate
parsing.

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
[sandeen: forward port, minor fixes and updates, more fsparam_enum]
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: fix to avoid out-of-boundary access in devs.path
Chao Yu [Fri, 11 Jul 2025 07:14:50 +0000 (15:14 +0800)] 
f2fs: fix to avoid out-of-boundary access in devs.path

- touch /mnt/f2fs/012345678901234567890123456789012345678901234567890123
- truncate -s $((1024*1024*1024)) \
  /mnt/f2fs/012345678901234567890123456789012345678901234567890123
- touch /mnt/f2fs/file
- truncate -s $((1024*1024*1024)) /mnt/f2fs/file
- mkfs.f2fs /mnt/f2fs/012345678901234567890123456789012345678901234567890123 \
  -c /mnt/f2fs/file
- mount /mnt/f2fs/012345678901234567890123456789012345678901234567890123 \
  /mnt/f2fs/loop

[16937.192225] F2FS-fs (loop0): Mount Device [ 0]: /mnt/f2fs/012345678901234567890123456789012345678901234567890123\xff\x01,      511,        0 -    3ffff
[16937.192268] F2FS-fs (loop0): Failed to find devices

If device path length equals to MAX_PATH_LEN, sbi->devs.path[] may
not end up w/ null character due to path array is fully filled, So
accidently, fields locate after path[] may be treated as part of
device path, result in parsing wrong device path.

struct f2fs_dev_info {
...
char path[MAX_PATH_LEN];
...
};

Let's add one byte space for sbi->devs.path[] to store null
character of device path string.

Fixes: 3c62be17d4f5 ("f2fs: support multiple devices")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Remove F2FS_P_SB()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:57 +0000 (18:03 +0100)] 
f2fs: Remove F2FS_P_SB()

All callers have been converted to F2FS_F_SB() so delete this wrapper.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Pass a folio to __has_merged_page()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:56 +0000 (18:03 +0100)] 
f2fs: Pass a folio to __has_merged_page()

All three callers have a folio so pass it in.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Pass a folio to f2fs_submit_merged_write_cond()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:55 +0000 (18:03 +0100)] 
f2fs: Pass a folio to f2fs_submit_merged_write_cond()

Most callers pass NULL, and the one that passes a page already has a
folio.  Also convert __submit_merged_write_cond() to take a folio.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Remove use of page from f2fs_write_single_data_page()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:54 +0000 (18:03 +0100)] 
f2fs: Remove use of page from f2fs_write_single_data_page()

Both remaining uses of page now have a folio equivalent.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Remove clear_page_private_all()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:53 +0000 (18:03 +0100)] 
f2fs: Remove clear_page_private_all()

All callers can simply call folio_detach_private().  This was the
only way that clear_page_private_data() could be called, so remove
that too.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Use F2FS_F_SB() in f2fs_read_end_io()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:52 +0000 (18:03 +0100)] 
f2fs: Use F2FS_F_SB() in f2fs_read_end_io()

Get the folio from the bio instead of the page.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Use a folio in f2fs_encrypted_get_link()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:51 +0000 (18:03 +0100)] 
f2fs: Use a folio in f2fs_encrypted_get_link()

Use a folio instead of a page when dealing with the page cache.  Removes
a hidden call to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Pass a folio to f2fs_cache_compressed_page()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:50 +0000 (18:03 +0100)] 
f2fs: Pass a folio to f2fs_cache_compressed_page()

The only caller already has a folio so pass it in.
f2fs_cache_compressed_page() is not used outside compress.c so
make it static.  This requires a forward declaration (or would require
rearranging this file, but I've chosen not to do that for readability of
the diff).

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Pass a folio to F2FS_NODE()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:49 +0000 (18:03 +0100)] 
f2fs: Pass a folio to F2FS_NODE()

All callers now have a folio so pass it in

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Pass the nat_blk to __update_nat_bits()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:48 +0000 (18:03 +0100)] 
f2fs: Pass the nat_blk to __update_nat_bits()

The page argument is only used to look up the address of the nat_blk.
Since the caller already has it, pass it in instead.  Also mark it const
as the nat_blk isn't modified by this function.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Convert get_next_nat_page() to get_next_nat_folio()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:47 +0000 (18:03 +0100)] 
f2fs: Convert get_next_nat_page() to get_next_nat_folio()

Return a folio from this function and convert its one caller.
Removes a call to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Pass a folio to f2fs_is_compressed_page()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:46 +0000 (18:03 +0100)] 
f2fs: Pass a folio to f2fs_is_compressed_page()

All callers now have a folio so pass it in.  Also remove the test for
the private flag; it is redundant with checking folio->private for being
NULL.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Use a folio iterator in f2fs_verify_bio()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:45 +0000 (18:03 +0100)] 
f2fs: Use a folio iterator in f2fs_verify_bio()

Change from bio_for_each_segment_all() to bio_for_each_folio_all()
to iterate over each folio instead of each page.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Pass a folio to f2fs_end_read_compressed_page()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:44 +0000 (18:03 +0100)] 
f2fs: Pass a folio to f2fs_end_read_compressed_page()

Both callers now have a folio so pass it in.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
5 weeks agof2fs: Use a folio iterator in f2fs_handle_step_decompress()
Matthew Wilcox (Oracle) [Tue, 8 Jul 2025 17:03:43 +0000 (18:03 +0100)] 
f2fs: Use a folio iterator in f2fs_handle_step_decompress()

Change from bio_for_each_segment_all() to bio_for_each_folio_all()
to iterate over each folio instead of each page.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>