Commit graph

1,482,218 commits

Author SHA1 Message Date
Sascha Bischoff
d3a1b28ea2 KVM: arm64: vgic: Free gic_kvm_info on initialization failure
vgic_set_kvm_info() allocates gic_kvm_info for use by
kvm_vgic_hyp_init(). When a maintenance interrupt is mandatory but not
provided, kvm_vgic_hyp_init() returns -ENXIO before reaching the
common cleanup path, leaking said allocation.

Route this error through that cleanup path so that gic_kvm_info is
freed and the global pointer is cleared.

Fixes: 0e5cb77706 ("irqchip/gic: Split vGIC probing information from the GIC code")
Link: https://sashiko.dev/#/patchset/20260724104819.1296803-1-sascha.bischoff@arm.com?part=1
Signed-off-by: Sascha Bischoff <sascha.bischoff@arm.com>
Reviewed-by: Joey Gouly <joey.gouly@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://patch.msgid.link/20260811150941.941295-2-sascha.bischoff@arm.com
Signed-off-by: Oliver Upton <oupton@kernel.org>
2026-08-19 12:23:01 -07:00
Will Deacon
028d8df0a1 KVM: arm64: Avoid mismatched accesses to 'struct kvm_nvhe_init_params'
When running with hVHE enabled, ___kvm_hyp_init() calls
__kvm_init_el2_state() on the CPU initialisation path during onlining
and resume from suspend.

In order to avoid clobbering the link register across this call, it is
stashed away in the 'tmp' member of 'struct kvm_nvhe_init_params',
however this save/restore operation is performed with the stage-1 MMU
disabled at EL2 and therefore gives rise to coherency problems because
the field is not aligned or padded to the CWG. For example, a cacheable
write to a physically-adjacent structure sharing the same cacheline
could lead to an eviction and subsequent write-back, overwriting the
saved LR while the incoming CPU is executing __kvm_init_el2_state().

Save the lr in far_el2 and remove the 'tmp' member from
'struct kvm_nvhe_init_params' altogether.

Cc: Oliver Upton <oupton@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Fixes: afa9b48f32 ("KVM: arm64: Shave a few bytes from the EL2 idmap code")
Signed-off-by: Will Deacon <will@kernel.org>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://patch.msgid.link/20260813131717.5885-1-will@kernel.org
Signed-off-by: Oliver Upton <oupton@kernel.org>
2026-08-19 12:22:24 -07:00
Taimuraz Kaitmazov
dc14753664 accel/amdxdna: return early from a zero-length flush
SYNC_BO does not constrain its size, so a request for zero bytes reaches
drm_clflush_virt_range(), which ends with an unconditional
clflushopt(end - 1). For an empty range that is the byte before the
mapping, and abo->mem.kva comes from vmap(), so the access lands in the
guard page below the vmalloc area and faults:

  BUG: unable to handle page fault for address: ffffd16fbbc70fff
  #PF: supervisor read access in kernel mode
  Oops: Oops: 0000 [#1] SMP NOPTI
  CPU: 7 UID: 1000 Comm: sync_bo_probe
  RIP: 0010:drm_clflush_virt_range+0x3c/0x70
  Call Trace:
   amdxdna_drm_sync_bo_ioctl+0x124/0x430 [amdxdna]
   drm_ioctl+0x301/0x4c0
   __x64_sys_ioctl+0x115/0x2f0
   do_syscall_64+0xa6/0x3d0

Any process that can open the render node can do this. Reproduced 3 of 3
times on a Strix Point NPU (1022:17f0), by calling SYNC_BO with size 0 on
an AMDXDNA_BO_SHARE object. The import arm takes the same request but
flushes the whole scatterlist, so it survives it.

Nothing needs flushing for an empty range, so answer before choosing a
path.

Fixes: e252e3f348 ("accel/amdxdna: Revise device bo creation and free")
Cc: stable@vger.kernel.org
Signed-off-by: Taimuraz Kaitmazov <taimuraz@kaitmazov.com>
Reviewed-by: Lizhi Hou <lizhi.hou@amd.com>
Signed-off-by: Lizhi Hou <lizhi.hou@amd.com>
Link: https://patch.msgid.link/20260817230655.356785-1-taimuraz@kaitmazov.com
2026-08-19 11:33:15 -07:00
Linus Torvalds
59e6295fac Driver core changes for 7.3-rc1
- container_of:
 
   - Apply typeof_member(), remove the local __mptr variable to eliminate
     variable shadowing warnings on nested container_of() calls, and remove
     unnecessary parentheses.
 
 - core:
 
   - Add driver name to probe debug print for initcall_debug.
 
   - Avoid repeatedly printing the same 'Fixed dependency cycle' log.
 
   - Unwind device_add() on attribute creation failure in
     attribute_container_add_class_device().
 
   - Remove statistics group if encryption group creation fails in
     transport_add_class_device().
 
 - debugfs:
 
   - Fix lockdown check for mmap_prepare().
 
   - Warn if file creation failed due to uninitialized debugfs.
 
 - device property:
 
   - Implement fw_devlink support for software nodes by adding
     software_node_add_links(), which creates fwnode links from DEV_PROP_REF
     properties to enable automatic probe ordering. Add kunit-managed fwnode
     helpers and test coverage.
 
   - Fix infinite loop in fwnode_for_each_child_node() when the secondary fwnode
     has more than one child. Add test cases.
 
   - Fix out-of-bounds access in software_node_get_reference_args() when called
     with index -1 (UINT_MAX).
 
   - Refactor to use RAII approach with __free().
 
   - Add Bartosz Golaszewski as software node reviewer.
 
 - firmware loader:
 
   - Fix race where a sysfs fallback request can complete before being queued as
     pending, leading to a use-after-free on the next fallback request.
 
   - Reject 0-size built-in firmware and fail the build on empty firmware files
     in CONFIG_EXTRA_FIRMWARE.
 
 - kobject:
 
   - Provide __KOBJ_ATTR() and __KOBJ_ATTR_RO/WO() initialization macros and
     allow the constification of kobject attributes, enabling them to reside in
     read-only memory.
 
 - platform:
 
   - Provide platform_device_set_of_node(), platform_device_set_fwnode(), and
     platform_device_set_of_node_from_dev() helpers that encapsulate firmware
     node reference counting for dynamically allocated platform devices. Convert
     all in-tree users that manually assigned dev.of_node or dev.fwnode, fixing a
     pre-existing refcount bug in powermac.  Switch to counting references of all
     firmware node types, not only OF nodes.
 
   - Unify the release path for dynamically allocated platform devices by
     removing platform_device_release_full(). Amend the fwnode setter API
     contract to warn if a primary software node is overwritten. Add KUnit tests
     for correct software node removal on device unregistration.
 
 - Rust:
 
   - Auxiliary:
 
     - Add registration_data_with() closure-based API for invariant ForLt types.
 
   - Debugfs:
 
     - Migrate BinaryWriter and BinaryReaderMut trait requirements from
       kernel::transmute traits to zerocopy traits.
 
   - Device:
 
     - Add BoundInternal device context and InternalBoundContext trait for bus
       abstractions that need internal access to a bound device.
 
     - Make the lifetime on Core and CoreInternal invariant to prevent coercion
       to shorter lifetimes.
 
   - Devres:
 
     - Fix race between concurrent revokers where the losing revoker could return
       before the winning revoker finished dropping the inner data, causing
       use-after-free.
 
     - Ensure revocation is complete before the device finishes unbinding by
       making the synchronization bidirectional.
 
     - Add DevresLt<F: ForLt>, a wrapper around Devres that shortens 'static back
       to the caller's borrow scope. Implement ForLt and CovariantForLt for Bar,
       IoMem, and ExclusiveIoMem.
 
   - Driver:
 
     - Switch from index-based to pointer-based device ID info lookup, storing
       static references in driver_data. Centralize device ID handling in
       device_id.rs, removing the open-coded ACPI/OF matching logic and duplicate
       ID table from driver.rs.
 
   - I/O:
 
     - Make I/O regions typed (with a dynamically-sized Region type for the
       existing untyped case), create view types representing subregions of a
       mapped I/O region, and add io_project!() for safely creating subviews.
 
     - Split Io into a base trait (IoBase) and an extension trait (Io) with a
       blanket implementation, preventing implementers from overriding provided
       methods that unsafe code relies on.
 
     - Add a SysMem backend for shared system memory with volatile access, and
       make Coherent implement Io via an I/O view type.  Add IoSysMap as sum type
       of Mmio and SysMem. Add copying methods (memcpy_{from,to}io()) and
       read_val()/write_val() for typed access.
 
     - Replace dma_read!()/dma_write!() with io_read!()/io_write!() for
       primitives and copying methods for aggregates; drop the old macros.
       Convert nova-core to use I/O projection.
 
     - Fix internal shortcut rule dispatch in the register!() macro, remove
       unused rule arguments, and use path fragments for alias destinations.
 
   - IRQ:
 
     - Make irq::Registration compatible with lifetime-bound drivers by
       removing the 'static bound on Handler/ThreadedHandler and
       replacing Devres<RegistrationInner> with direct
       request_irq()/free_irq() calls.  Handlers can now directly own
       lifetime-bound device resources.
 
   - PCI:
 
     - Convert IrqVectorRegistration to a lifetime-annotated owning type,
       giving drivers explicit control over the allocation lifetime.
       IrqVector embeds a resolved IrqRequest, making the conversion
       infallible. Remove the redundant
       request_irq()/request_threaded_irq() wrappers from pci::Device.
 
     - Add pci_irq_type() C helper and expose it via irq_type() on
       IrqVectorRegistration and IrqVector, returning PCI_IRQ_MSIX, PCI_IRQ_MSI,
       or PCI_IRQ_INTX.
 
     - Mark pci::Device refcount methods inline.
 
   - Serdev:
 
     - Add Rust abstractions for the serial device bus, including serdev::Driver
       trait, serdev::Device wrapping struct serdev_device, and serdev::Adapter
       implementing RegistrationOps.  Includes a sample driver. Markus Probst
       takes over as serdev maintainer for both C and Rust code.
 
   - Misc:
 
     - Split ForLt into a base trait (providing the Of<'a> GAT) and an unsafe
       CovariantForLt subtrait guaranteeing covariance, enabling invariant types
       (e.g. those containing Mutex<&'bound T>) to participate in the ForLt
       abstraction.
 
     - Fix Coherent read past EOF returning -ERANGE instead of zero.
 
     - Fix firmware example UB by avoiding null-pointer ARef.
 
 - misc:
 
   - Avoid iattr allocation in kernfs listxattr by using kernfs_iattrs_noalloc().
   - Unregister SoC bus on early device registration failure.
   - Remove unused DMA_FENCE_TRACE Kconfig symbol.
   - Fix /sys/module path in comment.
   - Refactor ISA bus init to remove nested blocks.
   - Remove redundant nodemask clears in numa_init().
   - Add kernel-doc for fwnode_operations and sys_soc.h, mark internal property
     data as private for kernel-doc, and add property.h/fwnode.h to driver-api
     infrastructure docs.
   - Add MAINTAINERS entry for sys_soc.h.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS2q/xV6QjXAdC7k+1FlHeO1qrKLgUCaoSPugAKCRBFlHeO1qrK
 LlBrAP958EaYZVyfAsqq0EyHv86ahXKWoDDvkwbRUZA5CfV9tAD/bMWVtPLRYaaq
 eNEZT7p5w3Haezh61H3c5zpuwFNMTA0=
 =VRIa
 -----END PGP SIGNATURE-----

Merge tag 'driver-core-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core

Pull driver core updates from Danilo Krummrich:
 "container_of:

   - Apply typeof_member(), remove the local __mptr variable to
     eliminate variable shadowing warnings on nested container_of()
     calls, and remove unnecessary parentheses

  core:

   - Add driver name to probe debug print for initcall_debug

   - Avoid repeatedly printing the same 'Fixed dependency cycle' log

   - Unwind device_add() on attribute creation failure in
     attribute_container_add_class_device()

   - Remove statistics group if encryption group creation fails in
     transport_add_class_device()

  debugfs:

   - Fix lockdown check for mmap_prepare()

   - Warn if file creation failed due to uninitialized debugfs

  device property:

   - Implement fw_devlink support for software nodes by adding
     software_node_add_links(), which creates fwnode links from
     DEV_PROP_REF properties to enable automatic probe ordering. Add
     kunit-managed fwnode helpers and test coverage

   - Fix infinite loop in fwnode_for_each_child_node() when the
     secondary fwnode has more than one child. Add test cases

   - Fix out-of-bounds access in software_node_get_reference_args() when
     called with index -1 (UINT_MAX)

   - Refactor to use RAII approach with __free()

   - Add Bartosz Golaszewski as software node reviewer

  firmware loader:

   - Fix race where a sysfs fallback request can complete before being
     queued as pending, leading to a use-after-free on the next fallback
     request

   - Reject 0-size built-in firmware and fail the build on empty
     firmware files in CONFIG_EXTRA_FIRMWARE

  kobject:

   - Provide __KOBJ_ATTR() and __KOBJ_ATTR_RO/WO() initialization macros
     and allow the constification of kobject attributes, enabling them
     to reside in read-only memory

  platform:

   - Provide platform_device_set_of_node(), platform_device_set_fwnode(),
     and platform_device_set_of_node_from_dev() helpers that encapsulate
     firmware node reference counting for dynamically allocated platform
     devices

     Convert all in-tree users that manually assigned dev.of_node or
     dev.fwnode, fixing a pre-existing refcount bug in powermac. Switch
     to counting references of all firmware node types, not only OF
     nodes

   - Unify the release path for dynamically allocated platform devices
     by removing platform_device_release_full(). Amend the fwnode setter
     API contract to warn if a primary software node is overwritten. Add
     KUnit tests for correct software node removal on device
     unregistration

  Rust:

   - Auxiliary:
       - Add registration_data_with() closure-based API for invariant
         ForLt types

   - Debugfs:
       - Migrate BinaryWriter and BinaryReaderMut trait requirements
         from kernel::transmute traits to zerocopy traits

   - Device:
       - Add BoundInternal device context and InternalBoundContext trait
         for bus abstractions that need internal access to a bound
         device.
       - Make the lifetime on Core and CoreInternal invariant to prevent
         coercion to shorter lifetimes

   - Devres:
       - Fix race between concurrent revokers where the losing revoker
         could return before the winning revoker finished dropping the
         inner data, causing use-after-free.
       - Ensure revocation is complete before the device finishes
         unbinding by making the synchronization bidirectional.
       - Add DevresLt<F: ForLt>, a wrapper around Devres that shortens
         'static back to the caller's borrow scope. Implement ForLt and
         CovariantForLt for Bar, IoMem, and ExclusiveIoMem

   - Driver:
       - Switch from index-based to pointer-based device ID info lookup,
         storing static references in driver_data. Centralize device ID
         handling in device_id.rs, removing the open-coded ACPI/OF
         matching logic and duplicate ID table from driver.rs

   - I/O:
       - Make I/O regions typed (with a dynamically-sized Region type
         for the existing untyped case), create view types representing
         subregions of a mapped I/O region, and add io_project!() for
         safely creating subviews.
       - Split Io into a base trait (IoBase) and an extension trait (Io)
         with a blanket implementation, preventing implementers from
         overriding provided methods that unsafe code relies on.
       - Add a SysMem backend for shared system memory with volatile
         access, and make Coherent implement Io via an I/O view type.
         Add IoSysMap as sum type of Mmio and SysMem. Add copying
         methods (memcpy_{from,to}io()) and read_val()/write_val() for
         typed access.
       - Replace dma_read!()/dma_write!() with io_read!()/io_write!()
         for primitives and copying methods for aggregates; drop the old
         macros. Convert nova-core to use I/O projection.
       - Fix internal shortcut rule dispatch in the register!() macro,
         remove unused rule arguments, and use path fragments for alias
         destinations

   - IRQ:
       - Make irq::Registration compatible with lifetime-bound drivers
         by removing the 'static bound on Handler/ThreadedHandler and
         replacing Devres<RegistrationInner> with direct
         request_irq()/free_irq() calls. Handlers can now directly own
         lifetime-bound device resources

   - PCI:
       - Convert IrqVectorRegistration to a lifetime-annotated owning
         type, giving drivers explicit control over the allocation
         lifetime. IrqVector embeds a resolved IrqRequest, making the
         conversion infallible. Remove the redundant
         request_irq()/request_threaded_irq() wrappers from pci::Device.
       - Add pci_irq_type() C helper and expose it via irq_type() on
         IrqVectorRegistration and IrqVector, returning PCI_IRQ_MSIX,
         PCI_IRQ_MSI, or PCI_IRQ_INTX.
       - Mark pci::Device refcount methods inline

   - Serdev:
       - Add Rust abstractions for the serial device bus, including
         serdev::Driver trait, serdev::Device wrapping struct
         serdev_device, and serdev::Adapter implementing
         RegistrationOps. Includes a sample driver. Markus Probst takes
         over as serdev maintainer for both C and Rust code

   - Misc:
       - Split ForLt into a base trait (providing the Of<'a> GAT) and an
         unsafe CovariantForLt subtrait guaranteeing covariance,
         enabling invariant types (e.g. those containing Mutex<&'bound T>)
         to participate in the ForLt abstraction.
       - Fix Coherent read past EOF returning -ERANGE instead of zero.
       - Fix firmware example UB by avoiding null-pointer ARef

  misc:
   - Avoid iattr allocation in kernfs listxattr by using
     kernfs_iattrs_noalloc().
   - Unregister SoC bus on early device registration failure.
   - Remove unused DMA_FENCE_TRACE Kconfig symbol.
   - Fix /sys/module path in comment.
   - Refactor ISA bus init to remove nested blocks.
   - Remove redundant nodemask clears in numa_init().
   - Add kernel-doc for fwnode_operations and sys_soc.h, mark
     internal property data as private for kernel-doc, and add
     property.h/fwnode.h to driver-api infrastructure docs.
   - Add MAINTAINERS entry for sys_soc.h"

* tag 'driver-core-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core: (129 commits)
  rust: pci: expose the allocated interrupt type
  PCI: Add pci_irq_type() to query the allocated interrupt type
  rust: pci: remove request_irq() and request_threaded_irq() from Device
  rust: pci: resolve IRQ in index() and embed IrqRequest in IrqVector
  rust: pci: convert IrqVectorRegistration to a lifetime-managed owning type
  kernfs: avoid iattr allocation in listxattr
  rust: serdev: use ThisModule::as_ptr() instead of field access
  ACPI/IORT: use platform_device_set_fwnode()
  ACPI/APMT: use platform_device_set_fwnode()
  firmware_loader: do not queue completed sysfs fallback requests
  rust: pci: Mark Device refcount methods inline
  rust: irq: make Registration compatible with lifetime-bound drivers
  rust: net/phy: remove expansion from doc
  rust: dma: return zero for Coherent reads past EOF
  rust: io: register: use path fragment for alias destination
  rust: io: register: remove unused rule arguments
  rust: io: register: dispatch shortcut rules internally
  MAINTAINERS: add sys_soc.h to DRIVER CORE
  rust: debugfs: remove unsafe blocks from traits impl for Vec
  rust: debugfs: migrate debugfs traits requirements to zerocopy
  ...
2026-08-19 10:42:18 -07:00
Szymon Durawa
55aa45154f PCI: vmd: Add Nova Lake (NVL) and Dunlow (DNL) Device IDs
Add VMD Device ID Support for Intel NVL/DNL processors.

Suggested-by: Nirmal Patel <nirmal.patel@linux.intel.com>
Signed-off-by: Szymon Durawa <szymon.durawa@linux.intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Nirmal Patel <nirmal.patel@linux.intel.com>
Cc: Jonathan Derrick <jonathan.derrick@linux.dev>
Link: https://patch.msgid.link/20260819130523.398493-1-szymon.durawa@linux.intel.com
2026-08-19 12:39:01 -05:00
Linus Torvalds
c6cf4441a3 Devicetree updates for v7.3:
- Add a DT maintainer profile document
 
 - Various dt-check-style improvements
 
 - Add a devres managed reserved memory region init function
 
 - Print node name on any skipped reserved memory regions
 
 - Correctly handle optional argument in of_parse_phandle_with_args_map()
 
 - Convert ti,keystone-reset, ti,da850-vpif, TI L4 interconnect, TI
   SmartReflex, microchip,pic32mzda-dmt, microchip,pic32mzda-wdt, TI
   DA8XX MSTPRI bus, and Xen VM bindings to DT schema format
 
 - Add bindings for StarFive JHB100 plic, Allwinner A733 NMI controller,
   MediaTek MT8173 GPU, QCom Shikra, Eliza, and Maili cpu-bwmon, and QCom
   Shikra SCM firmware
 
 - A couple of syntax fixes found using PoC Rust implementation of
   dtschema tools
 
 - Clean-ups for typos, brackets, incorrect "::" usages, and
   white-space style
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEktVUI4SxYhzZyEuo+vtdtY28YcMFAmqA0pYACgkQ+vtdtY28
 YcOGLRAAsSVfV1r7n9SmPQ246dRQeVkNo3ZAEFuqqeBzJjMNyVyYn4iCcwkYDhaY
 rRlRpanmhbooUJfRRpxpgIv8XwWOiha8eq9mojnbGfgq00/8BEnD16A7bwNDaxsf
 /IUVKYQs8x7AK3nGLXvJ2BXQZzAZCnwylnsW6Pbkhns3xuc3lED4BGRRRsPH4T77
 lMh2cA8JjeaY9sC/6aosTg1342nj+QpC2qJOfd2ONsWCKKD3zYAWWVFpj17J4o3d
 XDpLIjR1X6aOKoWOMDqmjnC/vwQ3Zzmz84zfArb4bl0O9A/ENQ1XYuNJ5tohxWd0
 LfWMOD6dUIaquuoRUSvWrnafgSqumjTYzLZeK5KLDT2xqAnBO3sfizjFq9c4AHO8
 TkU74DZiIGH2VCGCQtm7v5gZGbGKJ0g2TndCbQhEa/OyvaNfZpItGJWCHY3kg5xd
 Wn60sk1L/HnwItwGH47xxeksc1TiuhqH3zfr4ztj9fenUnuLtmkjdhu8wZGjpYFq
 2Jf2KIUJov4WLN6cyP51vf5L1+OoaSfZ/6nuaO+9bAa/j+GQiZpRQI95yEOcXBd/
 QbAL1tA8w9IRpN/bZ5l+Hw9ZO9Q1hpLTV92xqOPvVDXvDR7xi/7R4dvRm86m9IcT
 FTtNLLkz76V0DTqgHWfNtwxulYa69NrZjtD+VooVw1BWMo8ExmQ=
 =54fa
 -----END PGP SIGNATURE-----

Merge tag 'devicetree-for-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux

Pull devicetree updates from Rob Herring:

 - Add a DT maintainer profile document

 - Various dt-check-style improvements

 - Add a devres managed reserved memory region init function

 - Print node name on any skipped reserved memory regions

 - Correctly handle optional argument in
   of_parse_phandle_with_args_map()

 - Convert ti,keystone-reset, ti,da850-vpif, TI L4 interconnect, TI
   SmartReflex, microchip,pic32mzda-dmt, microchip,pic32mzda-wdt, TI
   DA8XX MSTPRI bus, and Xen VM bindings to DT schema format

 - Add bindings for StarFive JHB100 plic, Allwinner A733 NMI controller,
   MediaTek MT8173 GPU, QCom Shikra, Eliza, and Maili cpu-bwmon, and
   QCom Shikra SCM firmware

 - A couple of syntax fixes found using PoC Rust implementation of
   dtschema tools

 - Clean-ups for typos, brackets, incorrect "::" usages, and
   white-space style

* tag 'devicetree-for-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (40 commits)
  dt-bindings: interconnect: qcom-bwmon: Add Maili cpu-bwmon compatible
  dtc: dt-check-style: Simplify setting depth of DtsLine
  dtc: dt-check-style: Add missing /dts-v1/ to few test cases
  dt-bindings: power: reset: ti,keystone-reset: Convert to DT schema
  media: dt-bindings: ti,da850-vpif: Convert to dt-schema
  dt-bindings: devfreq: samsung,exynos-ppmu: Use standard regex syntax
  dt-bindings: interrupt-controller: mediatek,mt6577-sysirq: Drop invalid JSON pointer
  dt-bindings: arm: omap: Convert L4 interconnect to DT schema
  dt-bindings: power: Convert TI SmartReflex to DT schema
  of: reserved_mem: Introduce devres-managed initialization function
  dt-bindings: interrupt-controller: Add StarFive JHB100 plic
  dt-bindings: irq: sun7i-nmi: Document the Allwinner A733 NMI controller
  dt-bindings: Correct white-space style
  dt-bindings: fix typos and brackets
  docs: dt: submitting-patches: Mention expectation about dt-check-style
  docs: dt: maintainer: Add Devicetree and OF maintainer profile document
  docs: dt: writing-schema: Extend expectations about example part of binding
  dt-bindings: gpu: powervr-rogue: Add MediaTek MT8173 GPU
  of: base: Handle optional argument in of_parse_phandle_with_args_map()
  dt-bindings: update Sudeep Holla's email address
  ...
2026-08-19 10:32:34 -07:00
Thierry Reding
01c3c27a0e PCI: tegra264: Add Tegra264 support
Add a driver for the PCIe controller found on NVIDIA Tegra264 SoCs. The
driver is very basic, with its main purpose being to set up the address
translation registers and then registering a standard PCIe Host Bridge
making use of ECAM.

Co-developed-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
Signed-off-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
[mani: tweaked MAINTAINERS entry to support this new driver and binding]
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260814-tegra264-pcie-v10-3-05d08c592b05@nvidia.com
2026-08-19 12:13:16 -05:00
Linus Torvalds
f4cdf7ca9a [GIT PULL for v7.3] media updates
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+QmuaPwR3wnBdVwACF8+vY7k4RUFAmqFXqYACgkQCF8+vY7k
 4RWNtw//T8GAlfl1BDlqxcWQHPFLkGqogsZQUx8aITayUBXpOzWHK4neGM7QF2Za
 9kmBi3OzWgW3hIfbW4/vQCBSdDmTLSjoYHjYsc2Y3Cr0RvxIoEFw0GILYzygE3gp
 y9sUFHs2S43Xh1n3LuTcu0woL8YcY/3SaMrvEA6uoSGmOETiIUIuNkLpUAOEWhrl
 hkpRHt160yFiADSr8Ve9435xnkf5GvC0rmf/jF/KSUuNXrQuEx+5LIWzmadQRhph
 2o+LuOJClKenglguU+yMA/DNEJuxxT1LOUgEiw05U2I03N8DqpiCO8Mpp2/l0iXH
 fgYFpObz6LdkusUSePamR2XaA3+ViNM48ddg1xmo+1gYQ/ggipsVVWifZpGFs2hq
 lbHEPV2Va/hlVj5EZJh4E6PHzH3UkGii2zgiHw0W3XWtTXS/qVlRjQwlo4aZTKok
 KPlOCNY69XADqOCmSB+kEmuCULfqoiJChk0qeRJX+kETc7gT+Qx4Ej0WT9LdF+NV
 7+gxMOgUJFuTr1HkhO5ZXWezikBsJUvLUFud8mV+4iAJldby23I4UEXUEPK7od+W
 8RXyWvf9/0owE2E3dOqkoM2sz2WW17nWZe8bPV+NTX39qw5WBOpaPpZGxVzOWinS
 KUTHJkp/O/1ymWtMz4+B+8QTO7n6KUnVDdL4qkO8cOrJGZizxoU=
 =8fcn
 -----END PGP SIGNATURE-----

Merge tag 'media/v7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull media updates from Mauro Carvalho Chehab:

 - v4l2-core: added ISP statistics support and per-block validation

 - v4l2-core: Allow unknown HDR10 white point and luminance

 - New camera sensors: Sony IMX678 and IMX471m, Himax HM1092 IR sensor

 - New codec: Milos: VPU v2.0 codec support

 - isp driver: gained support for Dreamchip RPPX1 ISP framework

 - vsp1 driver: gained support for RZ/T2H and RZ/N2H

 - Novalake driver: gained CVS support for new NVL hardware

 - dvb-core: fix feed leak on failed DMX_ADD_PID

 - several driver fixes, cleanups and minor improvements

* tag 'media/v7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (308 commits)
  media: ipu-bridge: check all DMI entries when overriding sensor rotation
  media: v4l2-async: avoid deleting unlinked ASC entry on link error
  media: rzg2l-cru: Align bytesperline to hardware DMA stride requirement
  media: intel/ipu6: fix async notifier cleanup leak on parse error
  media: staging/ipu7: fix async notifier UAF on probe error path
  media: amd: isp4: fix self-deadlock in isp4sd_pwron_and_init() error path
  media: amd: isp4: release partial allocations in isp4if_alloc_fw_gpumem()
  media: rcar-isp: Fix VSPX reference leaks
  media: rcar-isp: Release ISPCORE resources
  media: i2c: imx415: Release runtime PM reference on VBLANK error
  media: i2c: imx415: Return test pattern write errors
  media: renesas: vsp1: Declare index variables in for loop statement
  media: renesas: vsp1: Make reset control optional to support platforms without a reset line
  media: dt-bindings: media: renesas,vsp1: Document RZ/T2H and RZ/N2H SoCs
  media: dt-bindings: media: renesas,fcp: Document RZ/T2H and RZ/N2H SoCs
  media: nxp: imx8-isi: Add additional 32-bit RGB format support
  media: nxp: imx8-isi: Add 16-bit raw Bayer format support
  media: nxp: imx8-isi: Implement per-stream reference counting for multiplexed streams
  media: nxp: imx8-isi: Use BIT_ULL() for 64-bit stream masks
  media: nxp: imx8-isi: Correct color map between V4L2 and ISI
  ...
2026-08-19 10:09:22 -07:00
Thierry Reding
0771da4fb5 dt-bindings: PCI: tegra264: Switch to PCIe Root Port bindings
Switch to using the PCIe Root Port bindings in preparation for using the
standard WAKE# handling.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20260814-tegra264-pcie-v10-2-05d08c592b05@nvidia.com
2026-08-19 12:08:40 -05:00
Thierry Reding
d86c91afe2 dt-bindings: PCI: tegra264: Strictly distinguish C0 from C1-C5
Instead of using the ECAM registers as the first entry, strictly make a
distinction between C0 and C1-C5. This is needed because otherwise the
unit address doesn't match the first "reg" entry. The ordering of these
nodes cannot be changed to follow the ECAM addresses because that would
put them outside of their "control bus" hierarchy since the ECAM address
space is a global one outside of any of the control busses.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20260814-tegra264-pcie-v10-1-05d08c592b05@nvidia.com
2026-08-19 12:08:15 -05:00
Linus Torvalds
e5c91aac49 sound updates for 7.3-rc1
It was a fairly busy development cycle -- the changes spread over from
 the core side to leaf drivers, with lots of cleanups and enhancements.
 Here we go, some highlights:
 
 * ALSA core:
 - Extension of ALSA control component list ABI
 - Locking optimization and RCU conversion of ALSA sequencer core
 - A few hardening fixes for UMP and sequencer core
 - Drop __bitwise and __force prefix from UAPI definitions
 
 * ASoC:
 - Automatic DAI format selection code deployment across many drivers
 - Sorting of register default tables to prevent ordering issues in
   many drivers
 - Lots of code cleanups and refactoring
 - Updates in Qualcomm driver stack
 - New platforms: AMD ACP7.B/F, Cirrus Logic CS35L62, Loongson 2K0300,
   Meson GX, Qualcomm LPI MI2S, SM8475, WSA855X, Realtek RT1321 VA1/2
   and RT766/7
 
 * HD-audio:
 - Support for AW88399 HD-audio side codec for Lenovo Legion laptops
 - Support for Hygon and Lisuan HDMI controllers
 - Robustness fixes for wild device binding
 - Lots of quirks/fixups: Realtek and Conexant codecs for ASUS, Lenovo,
   Acer, etc
 
 * USB-audio:
 - Support for Pioneer DJ DJM-S11
 - Scarlett2/FCP private URB notification fixes
 - Extended quirk_flags to 64bit
 - Hardening fixes for 6fire, bcd2000, usx2y
 - Device-specific quirks for Mackie, Valeton, SPACETOUCH
 
 * General:
 - Auto-cleanup for put_device() and firmware loading across multiple
   platforms
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCAAsFiEEIXTw5fNLNI7mMiVaLtJE4w1nLE8FAmqEXisOHHRpd2FpQHN1
 c2UuZGUACgkQLtJE4w1nLE9H7g/7B1MuyObFnvkddyRlUP7tpXoHdMrRGP/1H9gD
 f5eczeXovv4X4tkw/nsZcaWAH+9hQrswP/2CbK3ZxjkZomq8kc4llCZCt7pCfU52
 FMLMRs+3/Rf0BLN+HJkjCRM1WPKaFcuo5ZFOCfkHrUTb0Wqs141Tl11891KGzUjg
 jSuDr9dfrEJdSYHBDTlpn/2+pau8sNapHkiKrOqU/B9Ky49ngb+R6NjcphP6q1l4
 bS8eoTsXi/XrKEK7eenq+0NX1FwYP1q8DXYSxE/zV2u6SAJDqmw4qEs1vziVUEtV
 APVX+4HhMEFCHByvDIGc5HqsFsa05Uvwyfb90wQQcic7d9xuAbNK1NyrtNiDoPna
 e/K6N3SddZSukXWNcTtbNGN1a7TMc0Y7cs+jOCqR6uw+SC3RdPF46LVmfpy5sFf+
 PT3YCrWcArGrgvkt6frOUI3XEl00d7dns8J8uwsSWXwm7X/aSwC1Fy0v+JJSJPvR
 taOOw2/zSXVR05G11YDdUcf9qDTkExM35j0AFrLViNj87m/U03oHRvQgAxGNgEPN
 /q8lqt/R2XUULYNrR/4cWMrFGl32/+lmMO52a5uFIuqPgnG3S7WrjPqxibmZmgrl
 k4hEPpU5jqstoByNHV4f8DbYBRwt906skgGGcVnku38XEaFilGZF4x5BkT7vvnxX
 7o0MEfE=
 =kp17
 -----END PGP SIGNATURE-----

Merge tag 'sound-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound updates from Takashi Iwai:
 "It was a fairly busy development cycle - the changes spread over from
  the core side to leaf drivers, with lots of cleanups and enhancements.
  Here we go, some highlights:

  ALSA core:
   - Extension of ALSA control component list ABI
   - Locking optimization and RCU conversion of ALSA sequencer core
   - A few hardening fixes for UMP and sequencer core
   - Drop __bitwise and __force prefix from UAPI definitions

  ASoC:
   - Automatic DAI format selection code deployment across many drivers
   - Sorting of register default tables to prevent ordering issues in
     many drivers
   - Lots of code cleanups and refactoring
   - Updates in Qualcomm driver stack
   - New platforms: AMD ACP7.B/F, Cirrus Logic CS35L62, Loongson
     2K0300, Meson GX, Qualcomm LPI MI2S, SM8475, WSA855X, Realtek
     RT1321 VA1/2 and RT766/7

  HD-audio:
   - Support for AW88399 HD-audio side codec for Lenovo Legion laptops
   - Support for Hygon and Lisuan HDMI controllers
   - Robustness fixes for wild device binding
   - Lots of quirks/fixups: Realtek and Conexant codecs for ASUS,
     Lenovo, Acer, etc

  USB-audio:
   - Support for Pioneer DJ DJM-S11
   - Scarlett2/FCP private URB notification fixes
   - Extended quirk_flags to 64bit
   - Hardening fixes for 6fire, bcd2000, usx2y
   - Device-specific quirks for Mackie, Valeton, SPACETOUCH

  General:
   - Auto-cleanup for put_device() and firmware loading across multiple
     platforms"

* tag 'sound-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (791 commits)
  ALSA: hda: Fix connection list comparison in proc output
  ALSA: docs: fix dead link to Intel HD-audio spec
  ALSA: usb-audio: Add delay quirk for SPACETOUCH USB Audio
  ALSA: hda: Add Lisuan HDMI controller and codec support
  ALSA: hda/realtek: Fix Lenovo Yoga Slim 7 14AKP10 quirk ordering
  ALSA: hda/tas2781: Add hardware stabilization delay during firmware load retries
  ALSA: hda/realtek: Fix mute LED for HP Victus 15-fa1xxx (MB 8C3F)
  ALSA: hda/realtek: Add micmute LED quirk for Acer Aspire A515-57
  ASoC: tas2783-sdw: do not treat read-only Controls as writable
  ASoC: SOF: validate topology volume range before allocation
  ASoC: cs35l56: Use IRQ provided by the SoundWire core
  soundwire: bus_type: Create IRQ mapping before calling driver probe()
  ASoC: cs35l56: Move cs35l56_irq_request() after cs35l56_irq()
  ASoC: cs35l56: Request IRQ in cs35l56_common_probe()
  ALSA: core: Fix use-after-free in snd_card_do_free()
  ALSA: hda/realtek: Drop duplicate quirk for Lenovo 0x17aa:0x38df
  ALSA: usb-audio: Rename the Audient iD14 monitor mix volume control
  ASoC: tas2781: Refactor calibration start kcontrol creation to separate helper
  ASoC: dt-bindings: es8316: Fix supply property constraints
  ALSA: seq: midi: Serialize input teardown with event_input
  ...
2026-08-19 10:04:59 -07:00
Linus Torvalds
a93f3bf4e1 hid-for-linus-2026081901
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEL65usyKPHcrRDEicpmLzj2vtYEkFAmqFXCEACgkQpmLzj2vt
 YEkTbw//QD2eA9n18g/iDkUk6SAZ6h3YZxhOTQIlHe4sv6auuW64epL/Nz0XKnD7
 5odcrnukMIGXRtUmcu0bO8FP85+bvsPUERz82IWtKSaP1vdYtkTNxeBin6HlAHOR
 A0TfOOMJjfWuVGUVZ1G3AbBq3GGR80Q8c8YyhPnAnTzdh0cjw6+++1iP4NiGfalX
 yAgHmQh++Fo/Ar4c2QyvyEdSqMiAeocVU3qqeNUm7tRImtcsbmFa4cBOMupLSiKR
 YMkQD8A2QqS3M3b9BbXo4HdtB8JLiskkClm8ytUadIsUYSUaRah7aj8C3RaDSc4C
 mHCLZWjNGKEW+My1Q+lNjELRGLWKPkjw0tv+ZK3Ci0rsCTo7/lnopyufBe9XCptQ
 acLvnaCt2RYNRNFPPFhnIBOAuYrIwnWFnhYnNlyGVl9mcgeZfiiRjtk1Lp80YgTo
 WCD7i6/zIm2OobrIpRoEbk3ffNXkZ6wcMkp42p0oNLnI191Gspt6SOmLCnQ2GqHd
 efJAIFPPfbdWbydZW8qPBdRG/lzlaPHoyOL94fTIwqvpznX/Mp5FPQE9RD8APU2Z
 iAhrD6Jxk+5Z27BHCcVUU2jrdeBUGisD6zNdJ+st9Xdp6qLYbU8pl3NLdhCwc6NA
 Avt0IwhrboQZSGu8nZkFcYMc/pGe4I8dcf3+MRqIIjWwXLvUHUY=
 =7+OR
 -----END PGP SIGNATURE-----

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

Pull HID updates from Jiri Kosina:
 "Core:
   - fix long-standing force-feedback initialization race across the
     subsystem (Dmitry Torokhov)
   - switch to system_dfl_wq (Marco Crivellari)

  AMD-SFH:
   - support for tablet-mode switch for AMD SFH-based systems (Basavaraj
     Natikar)

  HyperX:
   - support for HyperX QuadCast 2 (Benjamin Blume)

  I2C-HID:
   - support for devices that provide HID descriptor solely through
     the ACPI _DSM method (XIE Zhibang)

  Intel-THC-HID:
   - support for full I2C bus config parameters (Even Xu)

  Logitech:
   - HID++ 2.0 repogrammable button support (Elliot Douglas)
   - Bolt receiver support for HID++ devices (Erik Håkansson)

  MSI:
   - support for MSI Claw (Derek J. Clark)

  Steam:
   - initial support for 2026 Steam Controller (Vicki Pfau)
   - support for sensor events on the 2025 Steam Controller (Vicki Pfau)

  And many, many other fixes for various long standing issues that were
  found by new modern tools, and quite a few device ID additions"

* tag 'hid-for-linus-2026081901' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (146 commits)
  HID: tmff: Use 64-bit arithmetic for force feedback scaling
  HID: multitouch: reclassify HTIX5288 to WIN_8_FORCE_MULTI_INPUT_NSMU
  HID: sensor: custom: Fix field sysfs group cleanup on failure
  HID: sensor: custom: Fix use-after-free in enable_sensor
  HID: intel-thc-hid: intel-quickspi: bound GET_REPORT response to the caller buffer
  HID: haptic: don't write an uninitialized value to unhandled usages
  HID: intel-thc-hid: intel-quickspi: fix autosuspend cleanup during teardown
  HID: intel-thc-hid: intel-quicki2c: fix autosuspend cleanup during teardown
  HID: steam: Zero out inputs when disabling gamepad mode
  HID: steam: Clean up locking
  HID: steam: Don't set feature reports when disconnecting
  HID: steam: Fix wording of connect/disconnect logs
  HID: steam: Initial 2026 Steam Controller support
  HID: steam: Refactor registration
  HID: logitech: add Bolt receiver support for Logitech HID++ devices
  HID: sensor-hub: Fix out-of-bounds write in sensor_hub_get_feature
  HID: universal-pidff: stop the device when force-feedback init fails
  HID: haptic: move FF initialization into .input_configured()
  HID: logitech-hidpp: move FF initialization to .input_configured()
  HID: megaworld: move FF initialization to .input_configured()
  ...
2026-08-19 10:00:31 -07:00
Linus Torvalds
7acf90feab hwmon updates for v7.3
* New drivers
 
   - Driver for Kandou KB9002 retimer
 
   - Driver for the temp/voltage sensor on PolarFire SoC
 
   - Driver for Eswin EIC7700 PVT sensor
 
   - PMBus:
 
     - Driver for Analog Devices MAX16545/MAX16550 and Volterra VT7505
 
     - Drivers for Monolithic MPQ82D00 and MPQ8646
 
     - Driver for Silergy SQ24860
 
 * Added support to existing drivers
 
   - asus-ec-sensors: Support for ROG STRIX Z390-E GAMING,
     ProArt Z690-CREATOR WIFI, ROG STRIX X870E-E GAMING WIFI7 R2,
     ROG CROSSHAIR X870E HERO, and ROG Maximus Z790 Hero
 
   - asus_rog_ryujin: Siupport for ROG Ryujin III
 
   - ina2xx: Support for INA232
 
   - k10temp: Per-CCD temperature monitoring for Zen5 Turin
 
   - nct6775: List NCT5585D as supported chip
 
   - nzxt-kraken3: Support for NZXT Kraken 2024 Elite
 
   - sht3x: Support for GXCAS GXHT30
 
   - tmp102: Add device IDs for TMP110 and TMP113
 
   - yogafan: Support for LOQ 15IAX9, XiaoXin Pro 13ARE 2020,
     IdeaPad 3 15ALC6, Legion Pro 7 16AFR10H, Yoga Pro 7 14IAH10,
     Yoga 7 16ARP8, and Lenovo LOQ 15IAX9
 
   - PMBus:
 
     - max20830: Support for max20830c and max20840c
 
     - max34440: Support for MAX34452, and support for newer version
       of max34451
 
     - adm1275: Support for ROHM BD12780 and BD12790
 
 * Other notable changes
 
   - Constify various device attributes
 
   - Remove redundant dev_err() and dev_err_probe() from various drivers
 
   - applesmc: Convert to hwmon_device_register_with_info
 
   - adt7470: Add thermal zone sensor support
 
   - coretemp: Fix core_data leak on CPUs without PTS
 
   - emc1403: Drop hysteresis for low limit temperature
 
   - max6621: Fix various over- and underflow problems
 
   - PMBus:
 
     - Introduce pmbus_read_smbus_i2c_block_data() and use it in
       various drivers
 
     - Export and use pmbus_check_and_notify_faults()
 
     - Let PMBus drivers report the supported PMBus revision
 
 * Various other minor fixes and improvements
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEiHPvMQj9QTOCiqgVyx8mb86fmYEFAmqDzlYACgkQyx8mb86f
 mYGbYxAAgI83CFBSrCZAl269MC8GUqbGKbTMcWJlR8EhQx81TluR97AJvYpPH+eg
 zWyJoSpvXsTYorPKdm+JtEtTyb57CRs0jgNVNzIoCOKE0pxgQ++6vCZj3e7EN/Mc
 lNSrAj5CYNAhEKT/1Cik0O7DLYW3qgdqk6zyIErIAHSrtJH4hVqp/vSRrIz5J9xT
 dDgbsAOMPOQTcstu0VddiewUlWhfl75+oAONUpG7mtkhieN5zp81pFaZICd8aLYH
 AylWylvQf2lmDB6Jqtg4tRXZ7HNieFms3KSV9KGRbw6GZ8xf/1pDlqf9zyqUbs+y
 s2mkIy/mjzulpDxYsozSCsfsMDy5pAUykPWPuL4yP8wmjdnPvJLjfDURKwTEKFZG
 6dCI1eE1y/7amFxA7gTUVAi+sinMxeI/9N9RwVyfQ/cwLvUzc6ObcUkR3GVRDiIY
 6RtsptgiTWOsVvvoa3IgWAP/Tx6HBfwhSuI2uzF+WtpusDRagCIevRC/bImW60IG
 2/PQusB0mc8XwJOl3adhNLjw/CzTuPwYMa0tJwCCn9QR+zEvjVSCj8wDmibIunm3
 6P3iWr/T4qnFi1ASKsEB1j8oDXJuUsp2xX2YzYvYU+F/xQ5fj3q+gJ33qMv5SjGB
 ccb0PpA8i3f83fBcwXj28CFvYwiDKD0u+T0LXa0+rR0zQju6M4Q=
 =GFfF
 -----END PGP SIGNATURE-----

Merge tag 'hwmon-for-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

Pull hwmon updates from Guenter Roeck:
 "New drivers:
   - Kandou KB9002 retimer
   - PolarFire SoC temp/voltage sensor
   - Eswin EIC7700 PVT sensor
   - PMBus:
      - Analog Devices MAX16545/MAX16550 and Volterra VT7505
      - Monolithic MPQ82D00 and MPQ8646
      - Silergy SQ24860

  Added support to existing drivers:
   - asus-ec-sensors: Support for ROG STRIX Z390-E GAMING, ProArt
     Z690-CREATOR WIFI, ROG STRIX X870E-E GAMING WIFI7 R2, ROG CROSSHAIR
     X870E HERO, and ROG Maximus Z790 Hero
   - asus_rog_ryujin: Siupport for ROG Ryujin III
   - ina2xx: Support for INA232
   - k10temp: Per-CCD temperature monitoring for Zen5 Turin
   - nct6775: List NCT5585D as supported chip
   - nzxt-kraken3: Support for NZXT Kraken 2024 Elite
   - sht3x: Support for GXCAS GXHT30
   - tmp102: Add device IDs for TMP110 and TMP113
   - yogafan: Support for LOQ 15IAX9, XiaoXin Pro 13ARE 2020, IdeaPad 3
     15ALC6, Legion Pro 7 16AFR10H, Yoga Pro 7 14IAH10, Yoga 7 16ARP8,
     and Lenovo LOQ 15IAX9
   - PMBus:
      - max20830: Support for max20830c and max20840c
      - max34440: Support for MAX34452, and support for newer version of
        max34451
      - adm1275: Support for ROHM BD12780 and BD12790

  Other notable changes:
   - Constify various device attributes
   - Remove redundant dev_err() and dev_err_probe() from various drivers
   - applesmc: Convert to hwmon_device_register_with_info
   - adt7470: Add thermal zone sensor support
   - coretemp: Fix core_data leak on CPUs without PTS
   - emc1403: Drop hysteresis for low limit temperature
   - max6621: Fix various over- and underflow problems
   - PMBus:
      - Introduce pmbus_read_smbus_i2c_block_data() and use it in
        various drivers
      - Export and use pmbus_check_and_notify_faults()
      - Let PMBus drivers report the supported PMBus revision

  Various other minor fixes and improvements"

* tag 'hwmon-for-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (110 commits)
  hwmon: (emc1403) Drop hysteresis for low limit temperature
  hwmon: (coretemp) Fix core_data leak on CPUs without PTS
  hwmon: (max6621) fix negative temperature offset and crit readings
  hwmon: (max6621) fix temperature clamp range
  hwmon: (asus_rog_ryujin) Add ROG Ryujin III White Edition
  hwmon: (asus_rog_ryujin) Add ROG Ryujin III support
  hwmon: (asus_rog_ryujin) Add per-device configuration
  hwmon: (k10temp) Add per-CCD temperature monitoring for Zen5 Turin
  hwmon: (tmp102) Add TMP113 device ID
  hwmon: (tmp102) Add TMP110 device ID
  hwmon: (nct6775) Add NCT5585D to list of supported chips
  Documentation: hwmon: (nct6775) Add missing NCT6797D and NCT6798D
  hwmon: (emc1403) Add regulator support
  hwmon: (emc1403) Convert to use OF bindings
  dt-bindings: hwmon: Document SMSC EMC1402/1403/1404/1428
  hwmon: (asus-ec-sensors) add ROG STRIX Z390-E GAMING
  hwmon: (sysfs) Allow drivers to register const attributes
  hwmon: (corsair-psu) Update documentation
  hwmon: (core) Use const APIs for the dynamically allocated sysfs attributes
  hwmon: (core) Constify device attributes
  ...
2026-08-19 09:56:28 -07:00
Linus Torvalds
4e1b759c06 watchdog updates for v7.3
* New Drivers
 
   - Nuvoton MA35D1
 
   - Lenovo SE30G2 and SE60
 
 * Added support to existing drivers
 
   - snps,dw-wdt: Add RV1106 compatible
 
   - apple,wdt: Add t6030, t6031, and t8132 compatibles
 
 * Other notable changes
 
   - New "dump" pretimeout governor
 
   - Propagate errors from optional IRQ lookup
 
   - Remove redundant dev_err() and dev_err_probe() messages
 
   - npcm, qcom: Improved bootstatus reports
 
   - realtek-otto: Change to use regmap API
 
   - w83627hf_wdt: Report running watchdog, identify NCT6126
 
 * Various other minor fixes and improvements
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEiHPvMQj9QTOCiqgVyx8mb86fmYEFAmqDYDcACgkQyx8mb86f
 mYGbiBAAkL3MIf4R7bguS1K9xS1iGqYEpZsnlPKcj3vrU5mTOHUrP2QxacltmDQV
 PVgwSC3ExWjGEoR/HMQqIaz3UEPZVNMc97Q/8OK1ewoSpQHTYAVIYhL9vs9GxuCc
 K2Iw5zu3A0HtLfj8bWbr4b1KxDBLsr+dK0VtVJfz+Oqk9GGKALf4H92IJogdqJXg
 ESG0Gl4Ap4GvPywSc5YtNI6BOeUUYaAPeTH8ahdXAIZjXKtbHgU6JTaTC/5MIQ5i
 Gjn+6BGjUkk1CYBxLTC+iFL/9N/CP8HxczOKBnIC3WQ32ZK17vMFo5C5JE3N2U9Y
 KiN1AKW79mzXD9VphQudB6RdPtPHusbZU8nW8MkebK0vD8wDYbHX4LcTUHn5kbyh
 V8pPNV+hXgO6WvAtqkrcb84W2M1iyWQpz0lcQ0f7sI5dtZz+K/d0tF6Chho9F9m2
 0ozR3hFWOZiJoXKZ5M1b1TcU+5c6tcGiK8WWLq/H9f29RI9eA097W2QP6ZzkOOzh
 g7KhL27YXnyHpg1FZV+qZS+kaWuskdEOHfIqS+gHGldJefUyAAHS8pCZQVaXsdK9
 grK4hBtfO65Cbw/H2GA3yz0zYhxzWCTJ9WJqQeMK3kvjqWOxGckfhEx1EbuHCmt1
 4b9CPGEvT/7x8iKfUpHbjUEZY4i2wtkqC5kQzZGXBVgQEC6sQ0A=
 =IefI
 -----END PGP SIGNATURE-----

Merge tag 'watchdog-for-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

Pull watchdog updates from Guenter Roeck:
 "New Drivers:
   - Nuvoton MA35D1
   - Lenovo SE30G2 and SE60

  Added support to existing drivers:
   - snps,dw-wdt: Add RV1106 compatible
   - apple,wdt: Add t6030, t6031, and t8132 compatibles

  Other notable changes:
   - New "dump" pretimeout governor
   - Propagate errors from optional IRQ lookup
   - Remove redundant dev_err() and dev_err_probe() messages
   - npcm, qcom: Improved bootstatus reports
   - realtek-otto: Change to use regmap API
   - w83627hf_wdt: Report running watchdog, identify NCT6126

  Various other minor fixes and improvements"

* tag 'watchdog-for-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (40 commits)
  watchdog: orion_wdt: Propagate errors from optional IRQ lookup
  watchdog: qcom: Propagate errors from optional IRQ lookup
  watchdog: aspeed: Propagate errors from optional IRQ lookup
  watchdog: stm32_iwdg: Propagate errors from optional IRQ lookup
  watchdog: dw_wdt: Propagate errors from optional IRQ lookup
  watchdog: mediatek: Propagate errors from optional IRQ lookup
  watchdog: apple: Constify some structures
  watchdog: pretimeout: Convert dump pretimeout governor to tristate
  nmi: Export CPU backtrace APIs for loadable modules
  watchdog: booke_wdt: Document unused parameter of __booke_wdt_disable()
  watchdog: wdat_wdt: map registers that fall inside ACPI NVS
  watchdog: Add Nuvoton MA35D1 watchdog driver support
  dt-bindings: watchdog: Add MA35D1 Watchdog
  watchdog: qcom: report bootstatus on IPQ9574 and IPQ5332
  watchdog: qcom: report WDIOF_POWERUNDER in bootstatus
  watchdog: sprd: Remove redundant dev_err()
  watchdog: sama5d4: Remove redundant dev_err()
  watchdog: realtek_otto: Remove redundant dev_err_probe()
  watchdog: orion: Remove redundant dev_err()
  watchdog: marvell_gti: Remove redundant dev_err_probe()
  ...
2026-08-19 09:53:35 -07:00
Linus Torvalds
307b9ddbbc spi: Updates for v7.3
Along with a lot of driver specific work we've got a couple of core
 features here.  The bigger one is that we've now got support for
 instantiating devices from sysfs similarly to how it's already done for
 I2C, this is used with development boards with non-enumerable expansion
 headers since SPI devices need to be manually specified.  We also have
 support for the DQS signal on higher end flash devices.
 
  - Support for intantiating devices from sysfs, useful for development
    boards with non-enumerable plugin modules, from Vishwaroop A.
  - Support for DQS in spi-mem, an additional signal used by flash
    devices to avoid clock skew from Miquel Raynal.
  - Support for more advanced SPI modes on DesignWare controllers from
    Sudip Mukherjee.
  - Changes from Jisheng Zhang to update to modern methods of specifying
    the PM callbacks.
  - Fixes for DMA mapping error handling, plus KUnit tests for this, from
    Honghui Jiang.
  - Substantial cleanup and performance work in the nxp-spi driver.
  - Support for Microchip LAN969x, Nuvoton MA35D1 QSPI, Qualcomm SA8255p
    and SA8797P, and StarFive JHB100 SFC.
 
 There is a trivial add/add conflict with the KUnit tree in their
 all_tests.config.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmqDOgcACgkQJNaLcl1U
 h9BKxQf/QznwKffXtoEL4ZFVBckmuYXRzbkHLoX1v7upZ3QFEPG8K6rRySaXufDI
 BX3/W14CfjXANIwWCr7llQmXLBoyOq8faz8U2h/aLnBpbI4WzZELfw49Lh9JQVk5
 dxVwWQ674UFuyRC4B8QaPqMFdbn8a1CORa5Rqg/dyenxwxgsVCyl2qz+PTLVdCGH
 IWO1WW6ZISDJ5YovzMcHM4KBgut1gO6FDtz0DEj2GQC+JpCl8oHyF7E/RQ2E+Nv+
 LWb6nCLfp4z3/68zQ2UrcXa1crdGsdEIFJFwV8FUYdmv24TSD+/pClczK57h422v
 Ros+Krb7fOTE+YCXqFcZgg8IGupZsw==
 =5wbJ
 -----END PGP SIGNATURE-----

Merge tag 'spi-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi

Pull spi updates from Mark Brown:
 "Along with a lot of driver specific work we've got a couple of core
  features here. The bigger one is that we've now got support for
  instantiating devices from sysfs similarly to how it's already done
  for I2C, this is used with development boards with non-enumerable
  expansion headers since SPI devices need to be manually specified. We
  also have support for the DQS signal on higher end flash devices.

   - Support for instantiating devices from sysfs, useful for
     development boards with non-enumerable plugin modules, from
     Vishwaroop A.

   - Support for DQS in spi-mem, an additional signal used by flash
     devices to avoid clock skew from Miquel Raynal.

   - Support for more advanced SPI modes on DesignWare controllers from
     Sudip Mukherjee.

   - Changes from Jisheng Zhang to update to modern methods of
     specifying the PM callbacks.

   - Fixes for DMA mapping error handling, plus KUnit tests for this,
     from Honghui Jiang.

   - Substantial cleanup and performance work in the nxp-spi driver.

   - Support for Microchip LAN969x, Nuvoton MA35D1 QSPI, Qualcomm
     SA8255p and SA8797P, and StarFive JHB100 SFC"

* tag 'spi-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (132 commits)
  spi: Add KUnit coverage for DMA mapping error paths
  spi: Clear current DMA devices when unmapping a message
  spi: Move __spi_unmap_msg() before __spi_map_msg()
  spi: Fix DMA mapping ownership on partial map failure
  spi: dt-bindings: sun6i: Add compatibles for A733's SPI controllers
  spi: ma35d1-qspi: Use the existing update helper
  spi: ma35d1-qspi: Add DTR support
  spi: ma35d1-qspi: Allow several command bytes
  spi: ma35d1-qspi: Move speed setting to bus configuration
  spi: ma35d1-qspi: Remove redundant reset operation
  spi: dw: Remove shadowed dws in dw_spi_setup()
  spi: img-spfi: don't disable runtime PM on DMA deferred probe
  spi: mtk-nor: Propagate errors from IRQ request
  spi: mtk-nor: Propagate errors from optional IRQ lookup
  spi: spi-qpic-snand: Handle Macronix quad read opcode 0x6b
  spi: spi-qpic-snand: add quad mode support
  spi: spi-qpic-snand: move command mapping helper
  spi: hisi-sfc-v3xx: Propagate errors from optional IRQ lookup
  spi: meson-spifc: use devm_pm_runtime_set_active_enabled
  spi: sprd-adi: Fix probe succeeding without registering the controller
  ...
2026-08-19 09:47:41 -07:00
Linus Torvalds
b3438e5ca7 regulator: Updates for v7.3
This is a relatively quiet release for the regulator API, we've had no
 major core work and not really that much driver work either.  There's a
 bunch of activity, including several new devices, but nothing hugely
 remarkable here.
 
  - Reworking of the mode handling in the max14577 driver to fix issues
    with collisions with enables.
  - Support for onsemi FAN53555BUC23X, Qualcomm IPQ9650, PM4125 VBUS and
    PM8150B and Unisoc SC2730.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmqDPDUACgkQJNaLcl1U
 h9CvoAf/Y8owPCZFX9vMl/HUGvw+Bvj/fNXDUAar0rLjseD5hq6LUQi8l7YZJy+3
 Voun5Ehakiti6VfJvA08+guG1orI/BqeT6W/lx6h1DXzvifoU8N3itKsyMk1lvug
 JtYi16gwbMa3RSdWI0W3ftAMIq6GeTNyLnPfqSM8XWJ2McZVABpg3ndOegaU922y
 aSBODYyI7weoWD+p+JI5P9O/vncGoO9tDRdwHBeZXi1HuR7HcOe9aGDSeQn/1dvC
 /dLDRNKpSPV/jscvxAa3MyCIAbubQipRcfEIGZTYXDabr8NE2odgKwWaZRkVyts2
 +mfkEBqz1z5Tsx+AfplwxnXk+3i3vw==
 =0fgh
 -----END PGP SIGNATURE-----

Merge tag 'regulator-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator

Pull regulator updates from Mark Brown:
 "This is a relatively quiet release for the regulator API, we've had no
  major core work and not really that much driver work either. There's a
  bunch of activity, including several new devices, but nothing hugely
  remarkable here.

   - Reworking of the mode handling in the max14577 driver to fix issues
     with collisions with enables

   - Support for onsemi FAN53555BUC23X, Qualcomm IPQ9650, PM4125 VBUS
     and PM8150B and Unisoc SC2730"

* tag 'regulator-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (36 commits)
  regulator: fan53555: Add support for FAN53555BUC23X type
  regulator: qcom-rpmh: Fix coding style issues
  regulator: qcom-rpmh: readback voltage/bypass/mode set during bootup
  regulator: qcom-rpmh: Fix PMIC5 BOB bypass mode handling
  soc: qcom: rpmh: Add support to read back resource settings
  regulator: dt-bindings: ti,pbias-omap: Convert to DT schema
  regulator: ab8500: Remove stale expand_register kernel-doc entry
  regulator: dt-bindings: Correct white-space style
  regulator: pfuze100: add set_suspend_disable for LDO ops
  regulator: core: use system_freezable_wq for init complete work
  regulator: rt6245: Restore state on enable failure
  regulator: tps65185: handle gpiod_get_value_cansleep() error returns
  regulator: fan53555: Add support for mode operations on Silergy devices
  regulator: dt-bindings: Add fan53555 allowed modes
  regulator: wm831x-isink: remove conditional return with no effect
  regulator: dt-bindings: Convert ltc3589.txt to yaml format
  regulator: dt-bindings: tps51632: Convert to DT schema
  regulator: mcp16502: Convert to dev_err_probe() in mcp16502_probe()
  regulator: adp5055: Fix error code in adp5055_of_parse_cb()
  regulator: qcom_usb_vbus: add support for qcom,pm4125-vbus-reg
  ...
2026-08-19 09:36:58 -07:00
Linus Torvalds
259c4f8e77 regmap: Updates for v7.3
This is a relatively busy release, though it's mostly cleanup work.  We
 did add some new hooks for regmap-irq to support some driver work, that
 should also come in as part of a shared branch with the relevant driver
 work in the GPIO subsystem.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmqDMxkACgkQJNaLcl1U
 h9D2zAgAhtilvZs1DOVuoIMjOQ7EOSmaszoRBWGQKJ+T9FOj8QuSuJrTj1DIByi9
 R9TFcsKaiBK2KjBVg/eb4YCch5FfDYC+kANjw0+9aYs+02nKvpJYkZhODAumRT6F
 Df7ftdy9lFEfZoOnG/Ehebay2i3zvhc9gyfiI3XSuvFuFlg/sqwQQ9qh1BRYLian
 EmV4V4SBz4DG6MU0sXA/83TGMleev8qH/+itD0meS4YF7zbFi599q0cAihNqn0Tp
 hzxUH0PY89R7hXcZKgFGxq0I6/O/7zrbQNnA3BarCM9RXGH04DYpw9R1/kjTlMP3
 JmlkCSiuS7/sj7n6B0/pQmMn2k6G7Q==
 =iTaj
 -----END PGP SIGNATURE-----

Merge tag 'regmap-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap

Pull regmap updates from Mark Brown:
 "This is a relatively busy release, though it's mostly cleanup work. We
  did add some new hooks for regmap-irq to support some driver work,
  that should also come in as part of a shared branch with the relevant
  driver work in the GPIO subsystem"

* tag 'regmap-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
  regmap: clean up kernel-doc comments
  regcache: Validate cache_only state in regcache_sync_region()
  regcache: Warn if regcache_sync() is called in cache_only mode
  regcache: Mark cache dirty if selector register rewrite fails
  regcache: Preserve cache synchronization errors in regcache_sync()
  regmap: maple: Workaround for another false-positive compiler warning
  regcache: Make ->exit() callback return void
2026-08-19 09:32:57 -07:00
Linus Torvalds
ee1b6365f0 pmdomain providers:
- amlogic: Add support for A9 power domains
  - bcm: Raise ASB poll timeout to 100us for bcm2835-power
  - imx: Allow building power domain drivers as a modules
  - mediatek: Add support for the MT6858 power domains
  - mediatek: Add support for the MT8196 HFRP DirectCTL power domains
  - qcom: Add support for RPMh power domains for Maili
  - qcom: Skip retention by default for rpmhpd
  - renesas: Add support for R-Car X5H Module Controller
  - rockchip: Add a regulator to the RK3568 NPU power domain
  - tegra: Add support for multi-socket platforms
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEugLDXPmKSktSkQsV/iaEJXNYjCkFAmqC8RYQHHVsZmhAa2Vy
 bmVsLm9yZwAKCRD+JoQlc1iMKYloEADS2kGT/z2l2NgivbXZFvz0RSNRG18nIpML
 6HwJd0qKr5r+U9mpIkfwvHzI3BQGYWOAt0P8y9Wrf+b32lBoDeZqKAB7N7NSOOB7
 FhNHeI+U1BIKoDxjuh/zWlHpwTAIbVDdiEJnBk1uGiG5ydco/CmwaQnDNnJywJfz
 dsfiDM1q+okolagNxx+VzhvRaxgSqvGBiX52CAMJmcmiIXIlfNTMKK9rnQRhD3lh
 kfhSnZYRQwtl7MQ7990vULYrINxAidU4KIoRnCPSJ+eA7Rl2udtsiEdQYdFba6C5
 lzEhHzgDWN9YTExCHFhy/vLOWbehoW/z6Jfz3m/Lxmkv7Zd37t3SuMj/0KnPCrpM
 Vtg8ZirqG1hvhihcoUpk20jR7LlUGcX1k5ipsP/ptj8uVkdHKVzen6bHy2FvpMle
 bYNRWwd8TKqYxAGsxEMZ59GRpRdIRowFSUAOmcP09b5CI8wslkljpmZWZgBxk1f8
 31CpmIDMIIxuYY3m0GR5CHlcAXxZO7N+5kk7AqBgDh1IXKf1/CcvgABetAMcJl07
 jcUfBBaZDA64ulzqnAEclW+xjITX5+qONVjEy5D/JORo89ttbYaAKyL10BrAb2lm
 WbkAP3R15ueHAKsE9Q6xMZ66V3qJxdF9wqmq3f/4TE+QRntDzvE/KMhCjxG5LOJ4
 I1Bb9v3rYA==
 =6EOE
 -----END PGP SIGNATURE-----

Merge tag 'pmdomain-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm

Pull pmdomain updates from Ulf Hansson:
 - amlogic: Add support for A9 power domains
 - bcm: Raise ASB poll timeout to 100us for bcm2835-power
 - imx: Allow building power domain drivers as a modules
 - mediatek:
    - Add support for the MT6858 power domains
    - Add support for the MT8196 HFRP DirectCTL power domains
 - qcom:
    - Add support for RPMh power domains for Maili
    - Skip retention by default for rpmhpd
 - renesas: Add support for R-Car X5H Module Controller
 - rockchip: Add a regulator to the RK3568 NPU power domain
 - tegra: Add support for multi-socket platforms

* tag 'pmdomain-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm: (24 commits)
  pmdomain: renesas: Add R-Car X5H MDLC driver
  dt-bindings: power: Document Renesas R-Car X5H Module Controller
  pmdomain: amlogic: Add support for A9 power domains controller
  dt-bindings: power: Add Amlogic A9 power domains
  clk: imx: imx8qxp: add soft dependency on SCU power domain driver
  pmdomain: imx: scu-pd: allow building as a module
  of: export of_stdout symbol
  pmdomain: imx8m{p,}-blk-ctrl: Add MODULE_DESCRIPTION
  pmdomain: mediatek: Add support for MT6858 SoC
  pmdomain: mediatek: Add support for secure modem power domain control
  dt-bindings: power: Add MediaTek MT6858 power domain controller
  pmdomain: rockchip: Add a regulator to the RK3568 NPU power domain
  pmdomain: imx: Make IMX8M/IMX9 BLK_CTRL tristate
  dt-bindings: power: qcom,rpmpd: document RPMh power domain for Maili
  pmdomain: tegra: Add support for multi-socket platforms
  pmdomain: bcm: bcm2835-power: Raise ASB poll timeout to 100us
  pmdomain: mediatek: Add support for MT8196 HFRP DirectCTL domains
  pmdomain: mediatek: Add support for Direct CTL simple power sequence
  pmdomain: mediatek: Respect PD relationships during error cleanup
  dt-bindings: power: mediatek: Add support for MT8196 direct HFRP
  ...
2026-08-19 09:28:46 -07:00
Linus Torvalds
abea5c3493 i2c for v7.3
Core and helpers:
 - support bus recovery with single-ended GPIOs
 - acpi: clean up resource handling
 - acpi: force ELAN1300 to 100 kHz
 - algo-bit: allow consumers to skip the optional bus test
 
 Drivers:
 - use generic bus frequency definitions in nomadik,
   octeon-core, microchip-corei2c, k1, davinci and pnx
 - i2c-gpio: support multiple buses sharing the same SCL line
 - qup: propagate clock enable failures
 - spacemit: configure SCL timing and clean up clock handling
 - amd-asf: guard against oversized firmware length
 
 qcom-geni:
 - add tracepoints for bus setup, interrupts and errors
 - use dedicated completion events for abort and reset
 - distinguish address and data NACK handling
 - cancel transfers before falling back to abort
 - simplify runtime PM and resource management
 - refactor resource and serial engine initialization
 
 DT bindings:
 - convert Altera bindings to DT schema
 - convert Axxia bindings to DT schema
 
 New support:
 - R-Car Gen5 and R-Car X5H
 - Axiado AX3005
 - Qualcomm Nord SA8797P
 - Qualcomm SA8255p
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQScDfrjQa34uOld1VLaeAVmJtMtbgUCaoA//QAKCRDaeAVmJtMt
 bvzYAQDPhRd2O6BruFmCkxKKvlrxZ2AaHQX/ZHLNqLAq/oX4NwD8CSecgva9faf/
 bC+kTGoTMBhje3FEJFufHKe2YtmJdgg=
 =u6az
 -----END PGP SIGNATURE-----

Merge tag 'i2c-7.3-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux

Pull i2c updates from Andi Shyti:
 "The main changes are support for shared SCL lines in i2c-gpio, a
  larger qcom-geni update covering tracing and transfer recovery and
  support for R-Car Gen5.

  The rest is mostly smaller driver, core and DT binding updates.

  Core and helpers:
   - support bus recovery with single-ended GPIOs
   - acpi: clean up resource handling
   - acpi: force ELAN1300 to 100 kHz
   - algo-bit: allow consumers to skip the optional bus test

  Drivers:
   - use generic bus frequency definitions in nomadik, octeon-core,
     microchip-corei2c, k1, davinci and pnx
   - i2c-gpio: support multiple buses sharing the same SCL line
   - qup: propagate clock enable failures
   - spacemit: configure SCL timing and clean up clock handling
   - amd-asf: guard against oversized firmware length

  qcom-geni:
   - add tracepoints for bus setup, interrupts and errors
   - use dedicated completion events for abort and reset
   - distinguish address and data NACK handling
   - cancel transfers before falling back to abort
   - simplify runtime PM and resource management
   - refactor resource and serial engine initialization

  DT bindings:
   - convert Altera bindings to DT schema
   - convert Axxia bindings to DT schema

  New support:
   - R-Car Gen5 and R-Car X5H
   - Axiado AX3005
   - Qualcomm Nord SA8797P
   - Qualcomm SA8255p"

* tag 'i2c-7.3-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux: (33 commits)
  i2c: core: support recovery for single-ended GPIOs
  i2c: rcar: add R-Car Gen5 support
  dt-bindings: i2c: rcar-i2c: Document R-Car X5H support
  i2c: i2c-gpio: Enhance driver for buses with shared SCL
  i2c: algo: bit: Allow to skip bit test
  i2c: qcom-geni: Add trace events for Qualcomm GENI I2C driver
  i2c: qcom-geni: trace: Add trace events for Qualcomm GENI I2C
  i2c: qup: Propagate clock enable failures
  i2c: qcom-geni: distinguish address-phase and data-phase NACK
  i2c: qcom-geni: use dedicated completions for abort and reset events
  i2c: qcom-geni: use cancel command before abort on transfer timeout
  dt-bindings: i2c: cdns: add Axiado AX3005 I2C variant
  i2c: qcom-geni: Use devm_pm_runtime_enable() for PM management
  dt-bindings: i2c: qcom,sa8255p-geni-i2c: Add compatible for Nord SA8797P
  i2c: nomadik: Use generic definitions for bus frequencies
  i2c: octeon-core: Use generic definitions for bus frequencies
  i2c: microchip-corei2c: Use generic definitions for bus frequencies
  i2c: k1: Use generic definitions for bus frequencies
  i2c: davinci: Use generic definitions for bus frequencies
  i2c: pnx: Use generic definitions for bus frequencies
  ...
2026-08-19 09:23:13 -07:00
Rosen Penev
da5e8713ae rtc: st-lpc: get IRQ via platform_get_irq()
Replace irq_of_parse_and_map() with platform_get_irq(), which resolves
the interrupt from pdev->dev.of_node directly and returns a positive IRQ
or a negative errno (it never returns 0). Propagate the error on failure
instead of the previous open-coded "IRQ missing or invalid" / -EINVAL
message, so -EPROBE_DEFER is handled correctly. The rtc->irq field is a
signed short, so the negative error code is preserved.

np is still used by of_property_read_u32() for "st,lpc-mode", so it is
not removed.

Built for ARM (multi_v7_defconfig + CONFIG_RTC_DRV_ST_LPC) with LLVM=1;
drivers/rtc/rtc-st-lpc.o compiles cleanly.

Assisted-by: opencode:hy3-free
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Link: https://patch.msgid.link/20260714002259.1392655-1-rosenp@gmail.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2026-08-19 18:17:03 +02:00
Alexandre Belloni
12b1843fee rtc: mv: remove mv_rtc_remove
Use devm_device_init_wakeup() so we can avoid having to explicitly teardown
of module removal.

Link: https://patch.msgid.link/20260625130202.1621692-2-alexandre.belloni@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2026-08-19 18:11:38 +02:00
Alexandre Belloni
bcad3667a3 rtc: mv: fix potential race condition
Since the driver allocates the IRQ using devm_request_irq(), this means the
IRQ is going to be automatically unregistered by devres after
mv_rtc_remove() returns.

However, mv_rtc_remove() explicitly disables the hardware clock before
devres teardown happens so the interrupt handler may run while the clock is
disabled leading to a possible bus hang when accessing registers.

Link: https://patch.msgid.link/20260625130202.1621692-1-alexandre.belloni@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2026-08-19 18:11:38 +02:00
Pengpeng Hou
7490b8356e rtc: ab-eoz9: add missing MODULE_DEVICE_TABLE()
The driver has a match table for the i2c bus wired into its driver
structure, but the table is not exported with MODULE_DEVICE_TABLE().

Add the missing MODULE_DEVICE_TABLE() entry so module alias information
is generated for automatic module loading.

This is a source-level fix.  It does not claim dynamic hardware
reproduction; the evidence is the driver-owned match table, its use by
the driver registration structure, and the missing module alias
publication.

Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
Link: https://patch.msgid.link/20260704152528.53258-1-pengpeng@iscas.ac.cn
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2026-08-19 18:11:38 +02:00
Pengpeng Hou
402c89d28f rtc: brcmstb-waketimer: add missing MODULE_DEVICE_TABLE()
The driver has an OF match table wired to .of_match_table, but does
not export the table with MODULE_DEVICE_TABLE().

Add the missing MODULE_DEVICE_TABLE(of, ...) entry so module alias
information is generated for OF based module autoloading.

This is a source-level fix.  It does not claim dynamic hardware
reproduction; the evidence is the driver-owned match table, its use by
the platform driver, and the missing module alias publication.

Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
Link: https://patch.msgid.link/20260704121734.54941-1-pengpeng@iscas.ac.cn
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2026-08-19 18:11:38 +02:00
Linus Torvalds
7711f4417f gpio updates for v7.3-rc1
GPIO core:
 - extend the gpio-regmap abstraction layer with more features allowing users
   to override configuration setting, translate register values and masks and
   enable/disable interrupts
 - extend GPIO kunit tests with suites verifying probe ordering by software
   node devlink support and software node hogs
 - shrink GPIO kunit initialization code
 - coding style updates (remove commas from sentinels where applicable)
 - with all users now converted treewide to using real firmware node links for
   software node GPIO lookup: remove the deprecated label-matching mechanism
   from from GPIO core
 - drop redundant return value check of nonseekable_open() in gpiolib-cdev
 - use IRQ trigger helpers where applicable
 
 Driver updates:
 - refactor error paths and logging in gpio-nomadik
 - use more modern interfaces for getting resources in gpio-rockchip,
   gpio-bt8xx and gpio-pca9570
 - add missing MODULE_DEVICE_TABLE() to gpio-sifive and gpio-vf610
 - drop unused FILONOFF macro from gpio-rcar
 - extend build coverage of ioport GPIO drivers with COMPILE_TEST=y
 - only enable the gpio-rtd driver by default with ARCH_REALTEK=y to avoid
   bloating the build
 - refactor coding style in several drivers
 - use correct endianess translation in gpio-pcf85x
 - add wake-up interrupt support to gpio-mvebu
 - apply initial value in direction output setter in gpio-by-pinctrl
 
 Misc:
 - replace linux/gpio.h inclusions treewide with linux/gpio/legacy.h which now
   exports all the deprecated APIs
 - select GPIOLIB_LEGACY in Kconfig where required treewide
 - use software nodes for gpio-keys in MFD drivers
 
 Devicetree bindings:
 - describe the realtek rtd1625 GPIO controller
 - document new models for gpio-pca95xx and gpio-cadence
 - document new property in gpio-rockchip
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEkeUTLeW1Rh17omX8BZ0uy/82hMMFAmqET1QACgkQBZ0uy/82
 hMMXLRAArm8tuPq9ehmJIBwSxXmK4HGM9x2PBXBOtv7NZ4x5skSpsMOmJBlb9r3S
 EJ7IK7DIqb1XIilRxgfLwmza9e4wXEQ3OK7lrxx/9qW52XKvJ0JxoUhEw4vn9etJ
 N3qc4p2EByR98PLWrnPmcDyG8oZDzBixcDsaeuvulIDtFklTpTRH0FHuEJQ1sEfa
 2y7/K6/n2Gru56u2iTjW8AIIfG18h2SG9Pm92UL006O6Xl8bKHexrmb98WEpIKoU
 UzKGgQ/alnOFsevt6zuB30StX6qKmagdu1+dRpVypczBaoUjs6YG4EfJQJ0mw/vR
 qBzui/HsGwYlkMmHgVoqSbm0khIS9vd85NSVTk/jC45+ZGyJRmdCJh30VBpXjOy4
 3zEVrZUo0kMIW/foszAqCZrn1P5kpmlwXR3oP89NwMzzEQQFzVjdirXih+dmhq0e
 /nxUjAY2CmEXd4wep183Swobqadi2tyuktWnE1mz/YH2Tv/KlMzzwIQEXyd4jSOc
 gOh8ACVp/wdsvihF+E/kjuRaLs3JX5nvoIMQu0CZAAl6TAYmCrXJbMDSLncY/4jv
 sCWuUVEowR3V+1RpVD++eIOsrD8ItNdn0aY3aXL1ez7oUCsisI651oRUCS/is1S/
 fw4DN5gTdNt+iNUWHIJM3lOPjTPO6hCPXAyht3B6pibCibiI1Dk=
 =rUDt
 -----END PGP SIGNATURE-----

Merge tag 'gpio-updates-for-v7.3-rc1-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull gpio updates from Bartosz Golaszewski:
 "GPIO core:
   - extend the gpio-regmap abstraction layer with more features
     allowing users to override configuration setting, translate
     register values and masks and enable/disable interrupts
   - extend GPIO kunit tests with suites verifying probe ordering by
     software node devlink support and software node hogs
   - shrink GPIO kunit initialization code
   - coding style updates (remove commas from sentinels where
     applicable)
   - with all users now converted treewide to using real firmware node
     links for software node GPIO lookup: remove the deprecated
     label-matching mechanism from from GPIO core
   - drop redundant return value check of nonseekable_open() in
     gpiolib-cdev
   - use IRQ trigger helpers where applicable

  Driver updates:
   - refactor error paths and logging in gpio-nomadik
   - use more modern interfaces for getting resources in gpio-rockchip,
     gpio-bt8xx and gpio-pca9570
   - add missing MODULE_DEVICE_TABLE() to gpio-sifive and gpio-vf610
   - drop unused FILONOFF macro from gpio-rcar
   - extend build coverage of ioport GPIO drivers with COMPILE_TEST=y
   - only enable the gpio-rtd driver by default with ARCH_REALTEK=y to
     avoid bloating the build
   - refactor coding style in several drivers
   - use correct endianess translation in gpio-pcf85x
   - add wake-up interrupt support to gpio-mvebu
   - apply initial value in direction output setter in gpio-by-pinctrl

  Misc:
   - replace linux/gpio.h inclusions treewide with linux/gpio/legacy.h
     which now exports all the deprecated APIs
   - select GPIOLIB_LEGACY in Kconfig where required treewide
   - use software nodes for gpio-keys in MFD drivers

  Devicetree bindings:
   - describe the realtek rtd1625 GPIO controller
   - document new models for gpio-pca95xx and gpio-cadence
   - document new property in gpio-rockchip"

* tag 'gpio-updates-for-v7.3-rc1-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (61 commits)
  gpio: gpio-by-pinctrl: Apply initial value in direction output wrapper
  dt-bindings: gpio: rockchip,gpio-bank: Add rockchip,grf property
  gpio: Use IRQ trigger mask helpers
  gpio: allow COMPILE_TEST for IOPORT drivers
  gpio: realtek: Add driver for Realtek DHC RTD1625 SoC
  gpio: regmap: Add IRQ enable/disable helpers
  gpio: regmap: Add set_config callback
  gpio: regmap: Add value_xlate callback
  gpio: regmap: Add gpio_regmap_operation to extend reg_mask_xlate callback
  gpio: regmap: Order kernel-doc descriptions with the actual appearance
  gpio: regmap: Apply default resource callbacks for regmap IRQ chip
  gpio: regmap: Provide default IRQ resource request and release callbacks
  Revert "gpio: realtek: Add driver for Realtek DHC RTD1625 SoC"
  gpib: gpio: replace linux/gpio.h inclusion
  Input: matrix_keyboard - replace linux/gpio.h inclusion
  phy: replace linux/gpio.h inclusions
  pcmcia: replace linux/gpio.h inclusions
  ASoC: replace linux/gpio.h inclusions
  mfd: replace linux/gpio.h inclusions
  sh: replace linux/gpio.h inclusions
  ...
2026-08-19 09:10:07 -07:00
Linus Torvalds
d0d82a84c9 power sequencing updates for v7.3-rc1
- add support for new devices to pwrseq-pcie-m2
 - make device matching more fine-grained for cases where the same combo
   chips are wired differently on the M.2 card (and - for instance - don't
   require serial device creation because they expose BT over USB) in
   pwrseq-pcie-m2
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEkeUTLeW1Rh17omX8BZ0uy/82hMMFAmp9fyoACgkQBZ0uy/82
 hMNUbA/+Kx/J/EaKdgQ3anbjdfByUuVHAAKOLOiLmIgK+EjH1TnBAABXYPwinExy
 a7wb3th7VyHRAIXkVArHJ3cIQg2B2N+L2A+9ABV5z0GGRgzFUaDZv7yn5++LxrAd
 oZ8ug8JcmUmqccdRa7mH0GkQLMK8mWZ/zBnGvd6q8qXFE4wHxM9IUIAyiyMVAqjj
 lX0X2vPaRCAaWzT17iehkA5liZV23ViVcwFj1EK03bFW0nkb/TeyHcuUbHmKdN+6
 YhDkg8g/FGP3gq1T5YPKq3sRzI4qQPRvw5xaynFqn/v156jd7/7rEz+F4LApF1xF
 1S19he1UK1sndouo8CclqEhY1MfgIs/8Gp7PiDK9Koksuc82BYxO9+NzKSnPcImK
 bMiUOwuY37Mpbe0y2j1gmgxVdFcEzksrMTlw2oguVFDfrzUcmL2VdP4J2i8GJqo5
 JKRMhQNwuSF11G1Ke7qKPuve1zbFvxNXcwRzeQK+TXOFcmzU4/akIS6RcDy3Oa3o
 e/lw2DB4vHSbviF7BBgf2aPWCcYJkenG3yUKaSkPBDIE+4q45Xm2bdtwGgJqqof9
 22O7w/MWOk/+WWRVISPHmoJTXuTmhWseFp5W/0EAzLg4C2tNNr/5yB1+S6psOJud
 PV+IF+hkb2IjGr+bTmpv1muFI715r+1Z/6L1hPhWS2Yf6aJkCRQ=
 =1mGa
 -----END PGP SIGNATURE-----

Merge tag 'pwrseq-updates-for-v7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull power sequencing updates from Bartosz Golaszewski:
 "This a very tiny pull for v7.3 from the power sequencing tree. It only
  contains a handful of updates to the pwrseq-pcie-m2 driver:

   - add support for new devices to pwrseq-pcie-m2

   - make device matching more fine-grained for cases where the same
     combo chips are wired differently on the M.2 card (and - for
     instance - don't require serial device creation because they expose
     BT over USB) in pwrseq-pcie-m2"

* tag 'pwrseq-updates-for-v7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
  power: sequencing: pcie-m2: Match WCN6855 and WCN7851 UART BT variants by subdevice ID
  power: sequencing: pcie-m2: Add QCA2066 (QCNFA765) BT serdev ID
  power: sequencing: pcie-m2: Add PCI ID for NXP 88W9098 and AW693 Bluetooth
2026-08-19 09:08:06 -07:00
Linus Torvalds
a288cd69f7 pwm: Changes for v7.3-rc1
A bunch of cleanups---in C and Rust---and  a devicetree and driver
 extension for a new SoC variant.
 
 Thanks for Biju Das, Francis Laniel, Guru Das Srinagesh, Markus Elfring,
 Mikko Perttunen, Thierry Reding, and Yi-Wei Wang for their changes and
 further Alexandre Courbot, Benno Lossin, Chen Wang, Geert Uytterhoeven,
 Jon Hunter, Laurent Pinchart, Michal Wilczynski, Mikko Perttunen, and
 Rob Herring for valuable review feedback.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEP4GsaTp6HlmJrf7Tj4D7WH0S/k4FAmqCN9MACgkQj4D7WH0S
 /k6YZwgAkCOWUj5cZbcFfNE+AoUyuikvH8zfECfDInGDJMOSSP1BJp1Gfby04D4w
 kPtSvIEpECri6xVkW8vYRKZV2HZVeXCiKFXK8Yz/Z2udOOsDmkTsTBKlYQmyY5nO
 lEOhUnXZ2IgpnAfRRcPmtBxzTQdLpH8Y9xncj77Mhl4qbMqsHC886C4RbxiDyksw
 EAd6U30MbbkPHntQB1/s4rBtqSR9B72L/d84BD9Kbq+N2wvZYpGd9Ym9fG2z3SQg
 rb3XGh+9kE38CO9e+CxTjlzq0wmIq90kJlmHmoPJGazlW2pmDj2pyYr/yEd6w4VM
 85pzQx6oXgx09N53nD3+ncs+SynDoQ==
 =dAjh
 -----END PGP SIGNATURE-----

Merge tag 'pwm/for-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux

Pull pwm updates from Uwe Kleine-König:
 "A bunch of cleanups - in C and Rust - and a devicetree and driver
  extension for a new SoC variant.

  Thanks to Biju Das, Francis Laniel, Guru Das Srinagesh, Markus
  Elfring, Mikko Perttunen, Thierry Reding, and Yi-Wei Wang for their
  changes and further Alexandre Courbot, Benno Lossin, Chen Wang, Geert
  Uytterhoeven, Jon Hunter, Laurent Pinchart, Michal Wilczynski, Mikko
  Perttunen, and Rob Herring for valuable review feedback"

* tag 'pwm/for-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux:
  pwm: th1520: use vertical import style
  rust: pwm: replace `core::mem::zeroed` with `pin_init::zeroed`
  pwm: rzg2l-gpt: Drop unused rzg2l_gpt_chip parameter from rzg2l_gpt_calculate_prescale()
  pwm: Use seq_putc() calls in pwm_dbg_show()
  pwm: tegra: Add support for Tegra264
  pwm: tegra: Parametrize duty and scale field widths
  pwm: tegra: Modify read/write accessors for multi-register channel
  pwm: tegra: Avoid hard-coded max clock frequency
  pwm: tegra: Prefix driver-local macros and functions
  dt-bindings: pwm: Document Tegra264 controller
  pwm: lpss-pci: Unify coding style of pci_device_id array
  pwm: Unify coding style of of_device_id arrays
  pwm: Unify coding style of acpi_device_id arrays
  pwm: Use named initializers for arrays of acpi_device_id
  pwm: pca9685: Drop unused assignment of acpi_device_id driver data
  pwm: pxa: Depend on OF and simplify accordingly
  pwm: Use named initializers for platform_device_id arrays
  pwm: mc33xs2410: Initialize spi_device_id arrays using member names
2026-08-19 09:03:59 -07:00
Linus Torvalds
1be05c6afb Input updates for v7.3-rc0
- A new driver and device tree binding for Imagis ISA1200 haptic motor
   controller
 
 - Improvements to input core opening, closing and inhibiting devices,
   ensuring devices are fully ready before delivering events, deferring
   handler start() until the device is opened, resyncing state on
   uninhibit, and rejecting inhibit requests during unregistration
 
 - Updates to cap11xx capacitive touch driver to support Microchip
   CAP1114, optional hardware reset GPIO handling, and per-chip LED
   constraints
 
 - Fixes for MELFAS MMS114 touchscreen driver hardening incoming data
   parsing, endianness fixes for I2C packet layout, Y-resolution
   configuration, and refactoring to use chip variant descriptors
 
 - Updates for psmouse driver resolving a potential UAF during protocol
   disconnect, cleaning up PNP ID matching, and making use of guard()
 
 - Fix for FocalTech PS/2 protocol to prevent coordinate underflow and
   cursor jumps at boundaries
 
 - A change to Synaptics driver to enable InterTouch (SMBus) mode on
   Dell Inspiron 3521
 
 - Refactoring of PA-RISC keyboard support in gscps2 to supply keymaps
   via software node device properties, removing architecture-specific
   tables from the generic atkbd driver
 
 - Updates to Samsung keypad driver to keep interrupts disabled while
   device is closed, along with wakeup logic cleanups and use of
   pm_runtime_active guards
 
 - Updates to NXP i.MX SNVS power key driver to report press events
   during resume to avoid lost events, and error handling cleanups
 
 - Updated TCA8418 keypad driver enabling overflow mode per hardware
   errata
 
 - Conversion of ROHM BD718x7 and BD71828 PMIC drivers to instantiate
   gpio-keys child devices using software nodes instead of platform data
   (coming from MFD immutable branch)
 
 - Updates to Synaptics RMI4 driver to use touchscreen dimensions from
   platform data when specified
 
 - Firmware update speed optimization for IC Type 0x19 in ELAN I2C driver
 
 - A fix to Azoteq IQS5xx driver to validate firmware record spans
   against programmable map size
 
 - Update to Samsung SUR40 contact count based on PixelSense
   specification
 
 - A number of updates to device tree bindings, including TI TPS65217
   power button schema conversion and new compatibles for FocalTech
   FT3D81 and Synaptics S3706B
 
 - Other assorted driver cleanups, style fixes, and conversions to
   modern string and cleanup helpers
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQST2eWILY88ieB2DOtAj56VGEWXnAUCaoFTdwAKCRBAj56VGEWX
 nPMxAP9MpDgWs3mIjYFwg555CQyD0ZD44WOC48yQtt7hfYW/GQEArVmBQY0YW9D6
 DiSCos8VK7bCZFcLwrVpe+BzbP6E2QA=
 =FEOj
 -----END PGP SIGNATURE-----

Merge tag 'input-for-v7.3-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

Pull input updates from Dmitry Torokhov:

 - A new driver and device tree binding for Imagis ISA1200 haptic motor
   controller

 - Improvements to input core opening, closing and inhibiting devices,
   ensuring devices are fully ready before delivering events, deferring
   handler start() until the device is opened, resyncing state on
   uninhibit, and rejecting inhibit requests during unregistration

 - Updates to cap11xx capacitive touch driver to support Microchip
   CAP1114, optional hardware reset GPIO handling, and per-chip LED
   constraints

 - Fixes for MELFAS MMS114 touchscreen driver hardening incoming data
   parsing, endianness fixes for I2C packet layout, Y-resolution
   configuration, and refactoring to use chip variant descriptors

 - Updates for psmouse driver resolving a potential UAF during protocol
   disconnect, cleaning up PNP ID matching, and making use of guard()

 - Fix for FocalTech PS/2 protocol to prevent coordinate underflow and
   cursor jumps at boundaries

 - A change to Synaptics driver to enable InterTouch (SMBus) mode on
   Dell Inspiron 3521

 - Refactoring of PA-RISC keyboard support in gscps2 to supply keymaps
   via software node device properties, removing architecture-specific
   tables from the generic atkbd driver

 - Updates to Samsung keypad driver to keep interrupts disabled while
   device is closed, along with wakeup logic cleanups and use of
   pm_runtime_active guards

 - Updates to NXP i.MX SNVS power key driver to report press events
   during resume to avoid lost events, and error handling cleanups

 - Updated TCA8418 keypad driver enabling overflow mode per hardware
   errata

 - Conversion of ROHM BD718x7 and BD71828 PMIC drivers to instantiate
   gpio-keys child devices using software nodes instead of platform data
   (coming from MFD immutable branch)

 - Updates to Synaptics RMI4 driver to use touchscreen dimensions from
   platform data when specified

 - Firmware update speed optimization for IC Type 0x19 in ELAN I2C
   driver

 - A fix to Azoteq IQS5xx driver to validate firmware record spans
   against programmable map size

 - Update to Samsung SUR40 contact count based on PixelSense
   specification

 - A number of updates to device tree bindings, including TI TPS65217
   power button schema conversion and new compatibles for FocalTech
   FT3D81 and Synaptics S3706B

 - Other assorted driver cleanups, style fixes, and conversions to
   modern string and cleanup helpers

* tag 'input-for-v7.3-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (61 commits)
  Input: rmi4 - use platform data instead of query, when available
  Input: elan_i2c - sort include statements
  Input: elan_i2c - optimize update speed for IC Type 0x19.
  Input: elan_i2c - use device-id/acpi.h for ACPI IDs
  Input: reject inhibit and uninhibit requests on unregistering devices
  Input: defer handler's start() until device is opened
  Input: call handler->start() when uninhibiting device
  Input: clear inhibited flag before re-opening device on uninhibit
  Input: ensure device is ready before delivering events
  Input: gscps2 - supply PA-RISC keyboard keymap via device property
  Input: synaptics_i2c - return 0 explicitly on success
  Input: rmi_smbus - remove conditional return with no effect
  Input: pmic8xxx-keypad - remove conditional return with no effect
  Input: focaltech - use signed coordinates to prevent underflow
  Input: psmouse - use guard() for resource management
  Input: psmouse - modernize PNP ID parsing
  Input: psmouse - clean up locking around disable_work_sync()
  Input: psmouse - fix use-after-free during protocol disconnect
  Input: samsung-keypad - use pm_runtime_active guard
  Input: samsung-keypad - keep interrupt disabled while closed
  ...
2026-08-19 08:59:24 -07:00
Pengpeng Hou
f1daef2834 rtc: s32g: add missing MODULE_DEVICE_TABLE()
The driver has an OF match table wired to .of_match_table, but does
not export the table with MODULE_DEVICE_TABLE().

Add the missing MODULE_DEVICE_TABLE(of, ...) entry so module alias
information is generated for OF based module autoloading.

This is a source-level fix.  It does not claim dynamic hardware
reproduction; the evidence is the driver-owned match table, its use by
the platform driver, and the missing module alias publication.

Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
Reviewed-by: Matthias Brugger <mbrugger@suse.com>
Reviewed-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com>
Link: https://patch.msgid.link/20260704122003.70108-1-pengpeng@iscas.ac.cn
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2026-08-19 17:54:55 +02:00
Linus Torvalds
e8bf40d154 chrome-platform-firmware: Updates for v7.3
* Fixes
 
   - Don't map no-map memory regions for CBMEM entries.
   - Check bound of coreboot table entries.
 
 * Cleanups
 
   - Fix typo in docs.
 -----BEGIN PGP SIGNATURE-----
 
 iIkEABYKADEWIQS0yQeDP3cjLyifNRUrxTEGBto89AUCaoJ4OxMcdHp1bmdiaUBr
 ZXJuZWwub3JnAAoJECvFMQYG2jz0FaQBAMc6loxNAMroK625wbCxO2IT/wlDASTI
 pu3MTiLy/YvxAP9ba8Vb6BC1/UGb0Wdri/CsKhvmoxoPkf6dStyhs6ovDA==
 =WVTG
 -----END PGP SIGNATURE-----

Merge tag 'chrome-platform-firmware-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux

Pull chrome platform firmware updates from Tzung-Bi Shih:
 "Fixes:
    - Don't map no-map memory regions for CBMEM entries
    - Check bound of coreboot table entries

  Cleanups:
  - Fix typo in docs"

* tag 'chrome-platform-firmware-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
  firmware: coreboot: Validate table bounds
  firmware: coreboot: Skip no-map CBMEM entries
  docs: ABI: testing: Fix typo
2026-08-19 08:49:43 -07:00
Pengpeng Hou
5904c41095 rtc: zynqmp: Return optional clock lookup errors
devm_clk_get_optional() returns NULL when the optional clock is absent,
but returns an ERR_PTR when the clock provider lookup fails.  Probe
currently keeps the ERR_PTR and then passes it to clk_get_rate().

Return the lookup error instead.  A truly absent optional clock still
reaches the existing calibration fallback through clk_get_rate(NULL).

Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
Fixes: 07dcc6f9c7 ("rtc: zynqmp: Add calibration set and get support")
Reviewed-by: Michal Simek <michal.simek@amd.com>
Link: https://patch.msgid.link/20260624055524.38522-1-pengpeng@iscas.ac.cn
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2026-08-19 17:42:05 +02:00
Jack Lee
2943ec93ee rtc: ds1343: replace symbolic permissions with octal
Symbolic permissions S_IRUGO and S_IWUSR are deprecated in favor of
octal permissions. Replace S_IRUGO|S_IWUSR with 0644 and S_IRUGO
with 0444.

Signed-off-by: Jack Lee <skunkolee@gmail.com>
Link: https://patch.msgid.link/20260612223534.77412-1-skunkolee@gmail.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2026-08-19 17:41:09 +02:00
ChenXiaoSong
77d852c763 smb/client: fix nlink of an overwritten open file
Reproducer:

  1. server: systemctl start ksmbd
  2. client: mount with `posix` option
     mount -t cifs -o posix //${server_ip}/export /mnt
  3. client: touch /mnt/file1 /mnt/file2
  4. client: C program: int fd = open("/mnt/file2", O_RDONLY);
  5. client: C program: rename("/mnt/file1", "/mnt/file2");
  6. client: C program: struct stat stbuf; fstat(fd, &stbuf);
                        stbuf.st_nlink is 1, should be 0

This patch fixes xfstests generic/035 when mounted with `posix` option.

Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
2026-08-19 12:30:57 -03:00
Frank Sorenson
60be95527b cifs: remove dead size-update blocks in cifs_setattr_unix/nounix
Commit 110fee6b9b ("smb: client: fix missing timestamp updates with
O_TRUNC") introduced cifs_file_set_size(), which calls netfs_resize_file()
and cifs_setsize() on success.  cifs_setsize() calls i_size_write(),
updating i_size to the new value.  The subsequent blocks in both
cifs_setattr_unix() and cifs_setattr_nounix():

    if ((attrs->ia_valid & ATTR_SIZE) &&
        attrs->ia_size != i_size_read(inode)) {
        truncate_setsize(inode, attrs->ia_size);
        netfs_resize_file(&cifsInode->netfs, attrs->ia_size, true);
        fscache_resize_cookie(cifs_inode_cookie(inode), attrs->ia_size);
    }

are therefore unreachable on the success path: attrs->ia_size ==
i_size_read(inode) always holds after cifs_file_set_size() succeeds.
On the failure path, execution jumps to out/cifs_setattr_exit before
reaching these blocks.

truncate_setsize() and netfs_resize_file() are redundant with what
cifs_file_set_size() already did; fscache_resize_cookie() was moved there
by commit fa724e235c ("cifs: add fscache_resize_cookie() to
cifs_setsize()").  Remove both dead blocks.

Fixes: 110fee6b9b ("smb: client: fix missing timestamp updates with O_TRUNC")
Signed-off-by: Frank Sorenson <sorenson@redhat.com>
Reviewed-by: Huiwen He <hehuiwen@kylinos.cn>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
2026-08-19 12:30:53 -03:00
Frank Sorenson
297d8026a5 cifs: remove redundant size-update block in cifs_remap_file_range()
cifs_remap_file_range() acquires i_rwsem on both inodes via
lock_two_nondirectories() before calling smb2_duplicate_extents().
cifs_setsize() (called inside smb2_duplicate_extents() when the clone
extends the file) therefore already runs under the lock, meaning the
fscache_resize_cookie() added to cifs_setsize() by commit fa724e235c
("cifs: add fscache_resize_cookie() to cifs_setsize()") is correctly
serialised for this path without further changes.

That same commit made the caller-side block:

    if (rc == 0 && new_size > i_size) {
        truncate_setsize(target_inode, new_size);
        fscache_resize_cookie(cifs_inode_cookie(target_inode), new_size);
    }

redundant: smb2_duplicate_extents() already performs the full size update
via cifs_setsize() when the operation extends the file.  Remove the
now-dead block.

Signed-off-by: Frank Sorenson <sorenson@redhat.com>
Reviewed-by: Huiwen He <hehuiwen@kylinos.cn>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
2026-08-19 12:30:45 -03:00
Frank Sorenson
32a7af68df cifs: add cifs_resize_file_locked() to guard fscache_resize_cookie() under i_rwsem
cifs_setsize() calls fscache_resize_cookie() without holding i_rwsem.
When the fscache cookie is active (FSCACHE_COOKIE_IS_CACHING is set),
fscache_resize_cookie() performs a real resize that requires i_rwsem
held exclusively.  If another file descriptor has the same inode open,
fscache_use_cookie() was already called from that cifs_open(), making
the cookie active.  In that case, calling cifs_setsize() from
cifs_do_truncate() (invoked from cifs_open() without i_rwsem) races
against concurrent fscache I/O.

Strip fscache_resize_cookie() from cifs_setsize(), making it a pure
size/page-cache helper.  Add cifs_resize_file_locked() for callers
that already hold i_rwsem: it calls netfs_resize_file() and
cifs_setsize(), then temporarily activates the cookie with
fscache_use_cookie() to perform the resize under the lock, then
deactivates it with cifs_fscache_unuse_inode_cookie().  Using
fscache_use_cookie() before the resize ensures correctness whether or
not another fd already holds the cookie active.

Switch cifs_file_set_size(), smb2_duplicate_extents(), and both size-
extension branches of smb3_simple_falloc() to the new wrapper; those
paths already hold i_rwsem via VFS setattr, lock_two_nondirectories(),
or cifs_fallocate() respectively.  cifs_do_truncate() continues to
call cifs_setsize() followed by cifs_invalidate_cache(), since it runs
without i_rwsem.

Fixes: fa724e235c ("cifs: add fscache_resize_cookie() to cifs_setsize()")
Cc: stable@vger.kernel.org
Cc: David Howells <dhowells@redhat.com>
Cc: Paulo Alcantara <pc@manguebit.com>
Signed-off-by: Frank Sorenson <sorenson@redhat.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
2026-08-19 12:30:36 -03:00
Frank Sorenson
364b183230 cifs: use cifs_invalidate_cache() in cifs_do_truncate() for O_TRUNC
cifs_do_truncate() is invoked from cifs_open() without i_rwsem, so it
cannot use cifs_resize_file_locked() to perform a proper fscache cookie
resize.  Instead, add cifs_invalidate_cache() after cifs_setsize().

cifs_invalidate_cache() calls fscache_invalidate(), which works without
holding i_rwsem: it unconditionally increments inval_counter and sets
FSCACHE_COOKIE_NO_DATA_TO_READ, ensuring that stale cached data is not
served once the cookie is later activated by fscache_use_cookie().
Truncation to zero leaves no valid cached data, making invalidation the
correct semantic here.

Fixes: fa724e235c ("cifs: add fscache_resize_cookie() to cifs_setsize()")
Cc: stable@vger.kernel.org
Cc: David Howells <dhowells@redhat.com>
Cc: Paulo Alcantara <pc@manguebit.com>
Signed-off-by: Frank Sorenson <sorenson@redhat.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
2026-08-19 12:30:25 -03:00
Fredric Cover
b1b741cf8e smb: client: clear ce->tgthint in free_tgts()
When free_tgts() frees all structures in ce->tlist, ce->tgthint
is left pointing to one of the freed cache_dfs_tgt structures.

If ce->tgthint is not reset before it is used later, it results
in a use-after-free.

Set ce->tgthint to NULL in free_tgts() after the elements are
freed to reflect that no elements remain.

Fixes: 54be1f6c1c ("cifs: Add DFS cache routines")
Cc: stable@vger.kernel.org # depends on: smb: client: harden DFS cache against invalid target hints
Signed-off-by: Fredric Cover <fredric.cover.lkernel@gmail.com>
Reviewed-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
2026-08-19 12:30:22 -03:00
Fredric Cover
bf86c08123 smb: client: harden DFS cache against invalid target hints
Currently, get_tgt_name() returns ERR_PTR(-ENOENT) when ce->tgthint is
NULL, and dfs_cache_noreq_update_tgthint() assumes ce->tgthint is always
valid.

In preparation for clearing ce->tgthint in free_tgts(), harden callers
of get_tgt_name() against ERR_PTR results and harden
dfs_cache_noreq_update_tgthint() against NULL pointer dereferences.

Cc: stable@vger.kernel.org
Signed-off-by: Fredric Cover <fredric.cover.lkernel@gmail.com>
Reviewed-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
2026-08-19 12:30:19 -03:00
Jiangshan Yi
b8e5dc4f95 smb: client: clear setuid/setgid bit on write with cifsacl/modefromsid/posix extensions
When a file has the setuid or setgid bit set and is written to, the VFS
strips those bits and issues a setattr with ATTR_KILL_SUID/ATTR_KILL_SGID
together with an ATTR_MODE carrying the already-cleared mode.

Both cifs_setattr_unix() and cifs_setattr_nounix() unconditionally dropped
ATTR_MODE in that case:

	/* skip mode change if it's just for clearing setuid/setgid */
	if (attrs->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID))
		attrs->ia_valid &= ~ATTR_MODE;

This is fine for the default mount, where the mode is only emulated via
the DOS read-only attribute and cannot represent the setuid/setgid bits
anyway.  However, with the "cifsacl" or "modefromsid" mount options the
mode is stored on the server through an ACL (id_mode_to_cifs_acl()), with
the SMB3.1.1 POSIX extensions the mode is sent to the server directly,
and with the SMB1 Unix extensions (cifs_setattr_unix) the mode is sent
via CIFSSMBUnixSetPathInfo().  In all those cases dropping ATTR_MODE means
the cleared mode is never pushed to the server, so the setuid/setgid bit
survives the write.

This is a security issue: on local filesystems the setuid bit is stripped
when a file is written, but over these cifs.ko mounts the bit persists on
the server, potentially allowing an unexpected privilege escalation on
subsequent execution.

Fix this in two places:

  1. cifs_setattr_nounix(): only take the "skip mode change" shortcut
     when the mode is emulated via the DOS read-only attribute (i.e.
     neither cifsacl/modefromsid nor the SMB3.1.1 POSIX extensions are
     in effect), so that the cleared mode is propagated to the server
     in the ACL / POSIX cases.

  2. cifs_setattr_unix(): this function is only called when Unix
     extensions are in effect, so the mode is always stored on the
     server.  Remove the shortcut entirely so that the cleared mode is
     always pushed.

Fixes: d32c4f2626 ("CIFS: ignore mode change if it's just for clearing setuid/setgid bits")
Cc: stable@vger.kernel.org
Signed-off-by: Jiangshan Yi <yijiangshan@kylinos.cn>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
2026-08-19 12:30:15 -03:00
Christopher Lusk
45f84cf25a smb: client: set replay flag on the read send-error retry path
smb2_async_readv() and smb2_async_writev() end with the same
send-error block: if the error is replayable and smb2_should_replay()
agrees, tell netfs to retry the subrequest. The write path also sets
wdata->replay. The read path does not set rdata->replay.

smb2_should_replay() is not a pure predicate. It consumes the retry
budget and computes the exponential back-off, doubling cur_sleep up to
CIFS_MAX_SLEEP. That back-off is only applied where the replay flag is
tested at the top of the reissued request:

	if (rdata->replay) {
		/* Back-off before retry */
		if (rdata->cur_sleep)
			msleep(rdata->cur_sleep);
		smb2_set_replay(server, &rqst);
	}

So on the read path the back-off is recomputed on every send-error
retry and then discarded, and SMB2_FLAGS_REPLAY_OPERATION is not set
on the reissued request.

netfs does not pace the retry either. netfs_reissue_read() calls
->issue_read() directly, and fs/netfs/read_retry.c contains no delay
of its own, so read send-error retries reissue immediately while the
equivalent write retries back off.

The read response callback already sets rdata->replay under the same
conditions, so the read path does use the replay mechanism. Only this
send-error path omits it.

Where the back-off belongs was settled while the commit below was
under review. David Howells asked whether netfslib should be doing the
back-off [1], and objected to sleeping inside the response callback
because that runs in the cifsd thread and would stall the socket [2].
The sleep was therefore taken out of smb2_should_replay() and moved to
just before the replay in smb2_async_readv() and smb2_async_writev()
[3]. Setting the flag here preserves that arrangement: the sleep still
happens at the top of the reissued request, not in a callback.

Set rdata->replay here, matching smb2_async_writev().

Fixes: 2c1238a747 ("cifs: make retry logic in read/write path consistent with other paths")
Link: https://lore.kernel.org/all/1652858.1769038134@warthog.procyon.org.uk/ [1]
Link: https://lore.kernel.org/all/1653031.1769038583@warthog.procyon.org.uk/ [2]
Link: https://lore.kernel.org/all/CANT5p=pXP3+CywpmK-on2uTvxO3S=31_B85_UDR7RoK1dQVtMA@mail.gmail.com/ [3]
Assisted-by: Codex:gpt-5.5
Assisted-by: Claude:claude-opus-5
Signed-off-by: Christopher Lusk <clusk@northecho.dev>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
2026-08-19 12:30:07 -03:00
Christopher Lusk
deb6468f41 smb: client: fix request buffer leak in smb2_new_read_req()
smb2_new_read_req() allocates the request buffer with
smb2_plain_req_init() but only publishes it to the caller with
*buf = req at the very end of the function. Two error returns sit in
between:

	rc = smb2_plain_req_init(SMB2_READ, io_parms->tcon, server,
				 (void **) &req, total_len);
	if (rc)
		return rc;

	if (server == NULL)
		return -ECONNABORTED;
	[...]
		rdata->mr = smbd_register_mr(server->smbd_conn,
					     &rdata->subreq.io_iter,
					     true, need_invalidate);
		if (!rdata->mr)
			return -EAGAIN;

On either of them the buffer is neither released nor handed back, so
it is leaked. The caller cannot clean up after it: smb2_async_readv()
does 'goto out' on a non-zero return, which skips the
cifs_small_buf_release(buf) at async_readv_out, and buf has not been
assigned at that point in any case.

The write path has never had this problem. smb2_async_writev()
registers the memory region inline and jumps to its release label
instead of returning:

	wdata->mr = smbd_register_mr(...);
	if (!wdata->mr) {
		rc = -EAGAIN;
		goto async_writev_out;
	}

Commit b797209219 ("cifs: smbd: Retry on memory registration
failure") changed both sides from -ENOBUFS to -EAGAIN in a single
patch, which puts the two shapes next to each other.

Only the -EAGAIN return is reachable in practice, because
smb2_plain_req_init() calls smb2_reconnect() first and that already
fails with -EIO when server is NULL, before anything is allocated.
Both returns are given the same treatment here rather than leaving
one of them correct only by accident.

Because -EAGAIN is a replayable error, the failure also reaches the
retry block at the end of smb2_async_readv(), which marks the
subrequest NETFS_SREQ_NEED_RETRY, so a failing registration can be
retried rather than ending the I/O, and every attempt that reaches it
leaks another buffer. smb2_should_replay() short-circuits on
tcon->retry, so on a hard mount the attempt count is not bounded by
the retrans setting.

Only the asynchronous read path is affected. The synchronous
SMB2_read() caller passes rdata == NULL and the memory registration
block is guarded on rdata.

The memory registration failure path was pointed out by the Sashiko
AI reviewer while it was reviewing an unrelated patch to
smb2_async_readv().

Fixes: bd3dcc6a22 ("CIFS: SMBD: Upper layer performs SMB read via RDMA write through memory registration")
Link: https://sashiko.dev/#/patchset/20260729192002.876156-1-clusk%40northecho.dev
Link: https://lore.kernel.org/all/20260729192002.876156-1-clusk@northecho.dev/
Assisted-by: Claude:claude-opus-5
Signed-off-by: Christopher Lusk <clusk@northecho.dev>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
2026-08-19 12:30:00 -03:00
ChenXiaoSong
a2f9fb451c smb/client: return EOPNOTSUPP for unsupported O_TMPFILE
Some SMB servers return STATUS_OBJECT_NAME_NOT_FOUND or
STATUS_DELETE_PENDING when creating an O_TMPFILE.
The SMB client maps them to ENOENT.

The ENOENT error is supposed to be returned when the path
(a target directory in this case) does not exist, while a
lack of support of O_TMPFILE by the target file system should
be indicated by EOPNOTSUPP.

Reported-by: Mikhail Stefantsev <mikhail@mstefan99.com>
Fixes: 3e7d63037a ("smb: client: add support for O_TMPFILE")
Closes: https://lore.kernel.org/linux-cifs/75fb5359-b268-492d-8d4a-504d1af60f2a@app.fastmail.com/
Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
2026-08-19 12:29:47 -03:00
Linus Torvalds
c36a4991e2 chrome-platform: Updates for v7.3
* New
 
   - Add post_power_on_delay_ms for Hana in of_hw_prober.
 
 * Improvements
 
   - Use dumb trackpad prober for Spherion in of_hw_prober.
 
 * Fixes
 
   - Check bound of firmware-reported data in cros_ec_sensorhub and
     cros_ec_typec.
   - Fix memory overread in cros_ec_sensorhub.
   - Fix resource leak in cros_ec_debugfs.
   - Clamp payload length for LIGHTBAR_CMD_SET_PROGRAM_EX in
     cros_ec_lightbar.
 
 * Cleanups
 
   - Drop unused platform_device_id driver data.
   - Remove redundant log.
 -----BEGIN PGP SIGNATURE-----
 
 iIkEABYKADEWIQS0yQeDP3cjLyifNRUrxTEGBto89AUCaoJ2DxMcdHp1bmdiaUBr
 ZXJuZWwub3JnAAoJECvFMQYG2jz0+7EA/0xXn94u/by9d2gBbTSmM8zAm0vJUEig
 h2gBS1/mfB78AP907nez2SFGc0LBQM+Bc6v63IXOl30TW8iP8p1PLjqtAg==
 =ysx4
 -----END PGP SIGNATURE-----

Merge tag 'chrome-platform-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux

Pull chrome platform updates from Tzung-Bi Shih:
 "New:
   - Add post_power_on_delay_ms for Hana in of_hw_prober

  Improvements:
   - Use dumb trackpad prober for Spherion in of_hw_prober

  Fixes:
   - Check bound of firmware-reported data in cros_ec_sensorhub and
     cros_ec_typec
   - Fix memory overread in cros_ec_sensorhub
   - Fix resource leak in cros_ec_debugfs
   - Clamp payload length for LIGHTBAR_CMD_SET_PROGRAM_EX in
     cros_ec_lightbar

  Cleanups:
   - Drop unused platform_device_id driver data
   - Remove redundant log"

* tag 'chrome-platform-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
  platform/chrome: of_hw_prober: Add delay for hana trackpads
  platform/chrome: lightbar: Limit payload to max packet size
  platform/chrome: cros_ec_debugfs: Unregister panic notifier
  platform/chrome: cros_ec_debugfs: Clean up console log on probe failure
  platform/chrome: cros_ec: Remove redundant dev_err()
  platform/chrome: sensorhub: Fix dropped timestamp events and log spam
  platform/chrome: sensorhub: Fix memory overread in ring handler
  platform/chrome: cros_ec_typec: Reject out-of-bounds PD cap count
  platform/chrome: of_hw_prober: Use dumb trackpad prober for Spherion
  platform/chrome: Drop unused assignment of platform_device_id driver data
  platform/chrome: sensorhub: Bound the EC-reported sensor number
2026-08-19 08:27:06 -07:00
Xixin Liu
fb1ed67788 nvmet-rdma: fix queue leak when connect backlog is exceeded
When pending disconnecting queues exceed the backlog limit, the
connect path only drops the device reference and leaks the newly
allocated queue and its IB resources.

Fixes: badc53620f ("nvme: target: rdma: fix ndev refcount leak on queue connect")
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Xixin Liu <liuxixin@kylinos.cn>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2026-08-19 07:52:05 -07:00
Mohamed Khalfella
58e7c13c8f nvme: add opcode filtering for fault injection
Currently NVMe fault injection applies to every command routed through
nvme_should_fail(), which makes it hard to target a specific command
type when reproducing an issue in error-handling paths.

Add an "opcode" debugfs attribute alongside the existing "status" and
"dont_retry" knobs. It defaults to 0xffff, meaning "match any opcode"
and preserving the previous behavior. When set to a valid opcode
(<= 0xff), fault injection is only considered for commands whose opcode
matches.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Mohamed Khalfella <mkhalfella@purestorage.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2026-08-19 07:51:23 -07:00
Kanchan Joshi
56e1c6bbe4 nvme: fix racy access to FDP placement id array
nvme_query_fdp_info() is called per-path and therefore prone to races.

It populates head->nr_plids/head->plids for fdp registration.
But nothing protects that pair from concurrent access - two paths scanning
the same namespace can race to populate it.

Avoid the race by moving this initialization work to nvme_alloc_ns_head()
which is called once per shared namespace.

Fixes: 30b5f20bb2 ("nvme: register fdp parameters with the block layer")
Reported-by: Hari Mishal <harimishal1@gmail.com>
Link: https://lore.kernel.org/linux-nvme/20260725135111.14041-2-harimishal1@gmail.com/
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2026-08-19 07:48:26 -07:00
Kanchan Joshi
c1888444dc nvme: set ns->head in nvme_alloc_ns_head
so that it becomes possible to submit non-admin commands.
This is a prep patch with no functional changes.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2026-08-19 07:48:26 -07:00
Xixin Liu
d61828199c nvme-rdma: fix -EIO cleanup order in queue_rq
On -EIO, the RDMA queue_rq path reports a host path error and then
still cleans up the command and unmaps the SQE DMA. The path error
helper completes the request, so that is double cleanup and DMA unmap
after the request is already complete.

Unmap the SQE first, then report the host path error. Skip the outer
command cleanup on that path.

Fixes: 62eca39722 ("nvme-rdma: handle nvme_rdma_post_send failures better")
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Xixin Liu <liuxixin@kylinos.cn>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2026-08-19 07:46:18 -07:00
Chao Shi
3838e80fcf nvme: skip the zoned limits update if the zone info query failed
nvme_query_zone_info() returns either a negative errno or a positive
NVMe status code, but nvme_update_ns_info_block() only tests for the
negative case:

	ret = nvme_query_zone_info(ns, lbaf, &zi);
	if (ret < 0)
		goto out;

If the device fails the Identify Namespace (I/O Command Set specific)
command, or the Identify Controller command issued by
nvme_set_max_append(), the positive status falls through and setup
continues with the zero-initialized zone info.  nvme_update_zone_info()
then marks the queue zoned with chunk_sectors and ns->head->zsze set to
zero.

blk_validate_zoned_limits() does not check chunk_sectors, so the limits
commit succeeds.  blk_revalidate_disk_zones() does reject the zero zone
size, but by then the limits are live and nothing rolls them back, so
I/O keeps being submitted to a zoned queue with a zero zone size and
disk_zone_no() shifts by ilog2(0):

  nvme0n1: Invalid non power of two zone size (0)
  UBSAN: shift-out-of-bounds in include/linux/blkdev.h:747:16
  shift exponent -1 is negative
   disk_zone_no include/linux/blkdev.h:747 [inline]
   bio_straddles_zones include/linux/blkdev.h:1058 [inline]
   blk_zone_wplug_handle_write block/blk-zoned.c:1423 [inline]
   blk_zone_plug_bio.cold+0x25/0x1c8 block/blk-zoned.c:1605
   blk_mq_submit_bio+0x18fb/0x2870 block/blk-mq.c:3196
   submit_bh_wbc+0x575/0x740 fs/buffer.c:2824
   __block_write_full_folio+0x728/0xdd0 fs/buffer.c:1933

Any device, firmware or NVMe-oF target that fails this one command
reaches this.

Skip the zoned limits update in that case, and log which of the two
things happened: during a revalidation the queue keeps the zone
geometry it was last validated with, and on a first scan the namespace
is registered without zoned limits, so that it is still available as a
handle for admin commands.  Neither of the paths in
nvme_query_zone_info() that return a positive status logs anything, so
the failure would otherwise be silent.

zi.zone_size is an exact indicator: every path that returns a positive
status returns before it is assigned, and after that the only failure
left is -ENODEV, which the caller already handles.

Found by FuzzNvme.
Fixes: c85c9ab926 ("nvme: split nvme_update_zone_info")
Cc: stable@vger.kernel.org
Cc: Weidong Zhu <weizhu@fiu.edu>
Suggested-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chao Shi <coshi036@gmail.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2026-08-19 07:44:40 -07:00