Commit graph

1,399,042 commits

Author SHA1 Message Date
Linus Torvalds
dba3ec9f2a Updates for the interrupt core subsystem:
- Prevent a interrupt migration related live lock in handle_edge_irq()
 
     If the interrupt affinity is moved to a new target CPU and the
     interrupt is currently handled on the previous target CPU for edge type
     interrupts the handler might get stuck on the previous target for a
     long time, which causes both involved CPUs to waste cycles and
     eventually run into a soft-lockup situation.
 
     Solve this by checking whether the interrupt is redirected to a new
     target CPU and if the interrupt is handled on that new target CPU, busy
     wait for completion instead of masking it and sending the pending but
     which would cause the old CPU to re-run the handler and in the worst
     case repeating this excercise for a long time.
 
     This only works on architectures which use single CPU interrupt
     targets, but that's so far the only ones where this behaviour has been
     observed.
 
   - Add a kunit test for interrupt disable depth counts
 
     The nested interrupt disable depth has been an issue in the past
     especially vs. free_irq(), interrupt shutdown and CPU hotplug and their
     interactions. The test exercises the combinations of these scenarios
     and checks for correctness.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmiGjEUTHHRnbHhAbGlu
 dXRyb25peC5kZQAKCRCmGPVMDXSYoWemD/0XUR2xjN5pdlJSDqSehKfUbI2psqij
 TPWyNmttyw3vLAkzQZjlsrTANfJq8XnEvAYZSK/Qu+4ogQvTYlw3FPoesWLDScfD
 yUN0vKnKM8xJ04YRSKBOWcbLve/MjwbAp77PTPalOTF8wpcj2InoawwjD7pTcWwL
 8PG0cW26Rx6iuIFVfFhv+QMUZC+oS/66CfQTQ/Uf+02mAOhprs7I5pgINb5F+drQ
 XR4TyMnaePmZ1i8ULa4SPnw7AzfPRhJM/m+jhA2NZJwbpTGnKGueE7SLJ//wX08p
 woT3cf7DQCHeMPIZQAOLJ181LWbHz7EJFxJ+7Ba/FWP/X/Ep0EG9BwuK5Gg6/Auj
 73xEnria3+Nw1hM6hlfRVX0+osizO35X91q63QUIejYDtM9Y9ByOjmi1o334sVjl
 iFLq2jAw8H0phYia67kDtoPmc94GsvqLJwRt5JtxN6MRF5L1CspqEveQOJuoO/Tg
 ZlToL+U16bkf7PI25e6d1t9OjqeK5GhOL3/Ygt8HwO9m4jIE7JCIIlMnQXpxl54I
 s5H467lJwVqeiOqiU4UWhPM++hvxCE0/FuOZHAgbC4/fYPR/+WkZdEfyA/Rhz88g
 B4yhq5+SBE8cMr0kh2e7c6mC505KICCEeyAU3iadfKlu3bhd7sVfFrgjRLoiCAym
 XC+Vi+Q7lu0J7w==
 =IgyG
 -----END PGP SIGNATURE-----

Merge tag 'irq-core-2025-07-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq updates from Thomas Gleixner:

 - Prevent a interrupt migration related live lock in handle_edge_irq()

   If the interrupt affinity is moved to a new target CPU and the
   interrupt is currently handled on the previous target CPU for edge
   type interrupts the handler might get stuck on the previous target
   for a long time, which causes both involved CPUs to waste cycles and
   eventually run into a soft-lockup situation.

   Solve this by checking whether the interrupt is redirected to a new
   target CPU and if the interrupt is handled on that new target CPU,
   busy wait for completion instead of masking it and sending the
   pending but which would cause the old CPU to re-run the handler and
   in the worst case repeating this excercise for a long time.

   This only works on architectures which use single CPU interrupt
   targets, but that's so far the only ones where this behaviour has
   been observed.

 - Add a kunit test for interrupt disable depth counts

   The nested interrupt disable depth has been an issue in the past
   especially vs. free_irq(), interrupt shutdown and CPU hotplug and
   their interactions. The test exercises the combinations of these
   scenarios and checks for correctness.

* tag 'irq-core-2025-07-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  genirq: Prevent migration live lock in handle_edge_irq()
  genirq: Split up irq_pm_check_wakeup()
  genirq: Move irq_wait_for_poll() to call site
  genirq: Remove pointless local variable
  genirq: Add kunit tests for depth counts
2025-07-29 12:55:12 -07:00
Linus Torvalds
5623870d9b A trivial cleanup in the PCI/MSI code to remove a duplicated back and forth
conversion.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmiGkAoTHHRnbHhAbGlu
 dXRyb25peC5kZQAKCRCmGPVMDXSYoZ6QD/9GcePrHCYWTVrvz3IwiXlND04BdTgI
 azzQpPFlQPahaqhUCBJ7kVkWSFUHXAOzfrhOvKLTjpkSpLyrT4+Lhw6xX2Zpn5ap
 Twks9pAd5DK55W/MXjGu+CZpKtO0vWbKRSofINRdBtBhgULfxy9jgHoAmmV7Ksns
 b2LCK4Zwkf6MIw8RZYXlOaDRdopDg5qjdTnIQgv/kJogE5Ee40h4h1VZLn0LwQrE
 vlLB9A3IlbrVUZeTbRfVETb+nkLvwn9OcpMaTv6AIJHYjAA1S+mMvx4ZC+vCpQG/
 i0XIVrkKoj3RVnI76PqYIu5+gdAGiMCjE5gjSAjxxYmf87908daRGGurvePAZear
 rCLsurwFLqBT9xlHXLonSmjLpA8gxcNjAi/kNa+2PdWDnyuXafuNqZshykedUKzx
 nahnbt0ssgOySgV5CGSxyqRtDZIF2tYEemFBZ7+z3Al9HDcvQEFLta7G0dWRKk6i
 sV5U60RwdcdG/M1iHJbqLuIJZ+B97Na1j3Hssn6yoijWTAU+q6VSFOeO0DkfGM75
 ZPozM720KFD4cYxaw84siaonAqZ7IgOjwMzT5m5TnsuxY8AHRNLATrR8LkhLl33w
 9FkJjp6Xl3cAWCWsXEf4kUGRbUf7GpFu8jJoI1bi9gi9AJz5CvA/fC4w3hfOToCg
 H2WGQ/DZMsudPg==
 =k2FW
 -----END PGP SIGNATURE-----

Merge tag 'irq-msi-2025-07-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull MSI update from Thomas Gleixner:
 "A trivial cleanup in the PCI/MSI code to remove a duplicated back and
  forth conversion"

* tag 'irq-msi-2025-07-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  PCI/MSI: Remove duplicated to_pci_dev() conversion
2025-07-29 12:52:06 -07:00
Linus Torvalds
0db240bc07 linux_kselftest-next-6.17-rc1
Fixes
 
 - false failure of subsystem event test
 - glob filter test to use mutex_unlock() instead of mutex_trylock()
 - several spelling errors in tests
 - test_kexec_jump build errors
 - pidfd test duplicate-symbol warnings for SCHED_ CPP symbols
 
 Adds a reliable check for suspend to breakpoints suspend test
 Improvements to ipc test
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPZKym/RZuOCGeA/kCwJExA0NQxwFAmiH76IACgkQCwJExA0N
 QxyHAw/+PWj6IvX+3qQEhPL1l/huPpknPVqd/UVEozAudtkDMNwTXAzmc8TZAGU1
 BiQTMRBothDZVxLa6YyQCNgHcFuE9X4PIDPCeRrtHQmoSIJz5Db7wrgy1LtrStBN
 9bOrsoYUFyy5xWlnidreu5IHuZFrLGUdwF4BhlBL9IvNBv2FKujHfzGl0mbc2agH
 /pbJuLiDKRWk+Wqgyv8LOBu9wsQSraunyiKxYZ+ICqzhangnH8SBVNejum9B/KUT
 P2Jzyjjo9hyZxR85B7951HqubzWZjhrS2I9boDYaI0x8RyOM75pO6cdh681Gdzz9
 lluospIzQRsKR1brtP+M5vH7F6yGnrQRvjp/PvW5a410JFYeIiuhCuDhGZzYsPdj
 nFFXP/CLlTJ4U1TVAzZ0OpwapoLfSmnUzrmVHFJRDW6YpuhliFbxb4YErCRxmBLX
 MLxN7NnPG0fUxO4voy49GiqXfFuYnvgZO1FWJuczKv4NXxPUbc77Y1K9Tv4mV97n
 W5e1EO3JDLghUAkoQyDy9oC7g6ZYET1EcqhOeTujazOAVPlIKJ0YOnLqlFppc3F7
 oqlXJbRdjamn9w+UcAjWNPQxYAJeK8jyB+S2LkCDLULD3dgJEzBj7szC67Ou3yQB
 qKuh9u6xhFKc0xgW2YSm3+Cpj8BPGlKzNf+Ks4TIGF8pvurPCy0=
 =DyuD
 -----END PGP SIGNATURE-----

Merge tag 'linux_kselftest-next-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest

Pull kselftest updates from Shuah Khan:

 - Fixes:
      - false failure of subsystem event test
      - glob filter test to use mutex_unlock() instead of mutex_trylock()
      - several spelling errors in tests
      - test_kexec_jump build errors
      - pidfd test duplicate-symbol warnings for SCHED_ CPP symbols

 - Add a reliable check for suspend to breakpoints suspend test

 - Improvements to ipc test

* tag 'linux_kselftest-next-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
  selftests/pidfd: Fix duplicate-symbol warnings for SCHED_ CPP symbols
  selftests/tracing: Fix false failure of subsystem event test
  selftests/kexec: fix test_kexec_jump build
  selftests: breakpoints: use suspend_stats to reliably check suspend success
  selftests: tracing: Use mutex_unlock for testing glob filter
  selftests: print installation complete message
  selftests/ptrace: Fix spelling mistake "multible" -> "multiple"
  selftests: ipc: Replace fail print statements with ksft_test_result_fail
  selftests: Add version file to kselftest installation dir
  selftests/cpu-hotplug: fix typo in hotplaggable_offline_cpus function name
2025-07-29 12:48:53 -07:00
Linus Torvalds
6f46e6fb4e linux_kselftest-kunit-6.17-rc1
Corrects MODULE_IMPORT_NS() syntax documentation, makes kunit_test timeout
 configurable via a module parameter and a Kconfig option, fixes longest
 symbol length test, adds a test for static stub, and adjusts kunit_test
 timeout based on test_{suite,case} speed.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPZKym/RZuOCGeA/kCwJExA0NQxwFAmiH3FMACgkQCwJExA0N
 QxzTJQ/5AZiQXo6dbUTkmHuG14YZtWVnZ9AJMqP7tfr5s3kXRL8v96RqbLAV+2GY
 jZfZkcQInzQRw464NmJcad9V0fPEUQo8Hn5lx2iPQpAUy8c0EFim4vXs9zrO246R
 VFx9USrGBlhm6NAtPbbvTgcUtigaciur9/uEb4r4lTWB12dgYqfjGsII0ZYoNEUg
 AXlDq950AnZktnXoN/4/fybwtB9NnYriobUn7jrDDcVoXtpSCMgWyBxsWhpEnl6P
 TRMcYjs6mC1Txbfrhj9GiS/qcAVg4g9Ft3JtFc3MosyWF8tA/v9RTMZcPTqSpoDu
 di94Mb4FXm9NpEk6nFCLLR+zYXbTsLLkRUmE1Xx6/uCmmocF2vHH302rH6exZ5iT
 N9jXPPGyEk9FimZSKqf7hoZpPK5lDSqQhTttBJaNEw3j+Gx4cil0Sz02mHZc/5nE
 ng1DjMsf1a5XRWoyxWjXuWcD1sjvLl3yvLHxD50QTSNsTVr6DJTLUipeBqC7xxGc
 1uHZDjnMWAgHr8XHF4hyIy/eNPjns/htCAoFCspB8iLhMEkwQmjExaT/Z5lOwvMs
 QamUz7SCcGPqUe+qG9zS3l4PqybZQvDgLygBNwDZokfLolHCLKizzISfDz0ktaK8
 JyBCX3pxZfuAnBs8q5rt7NV4xOgMpp/xOIxqejWZ+CN5ku3vTb0=
 =WIJH
 -----END PGP SIGNATURE-----

Merge tag 'linux_kselftest-kunit-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest

Pull kunit updates from Shuah Khan:
 "Correct MODULE_IMPORT_NS() syntax documentation, make kunit_test
  timeout configurable via a module parameter and a Kconfig option, fix
  longest symbol length test, add a test for static stub, and adjust
  kunit_test timeout based on test_{suite,case} speed"

* tag 'linux_kselftest-kunit-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
  kunit: fix longest symbol length test
  kunit: Make default kunit_test timeout configurable via both a module parameter and a Kconfig option
  kunit: Adjust kunit_test timeout based on test_{suite,case} speed
  kunit: Add test for static stub
  Documentation: kunit: Correct MODULE_IMPORT_NS() syntax
2025-07-29 12:43:10 -07:00
Linus Torvalds
22c5696e3f Driver core changes for 6.17-rc1
- DEBUGFS
 
   - Remove unneeded debugfs_file_{get,put}() instances
 
   - Remove last remnants of debugfs_real_fops()
 
   - Allow storing non-const void * in struct debugfs_inode_info::aux
 
 - SYSFS
 
   - Switch back to attribute_group::bin_attrs (treewide)
 
   - Switch back to bin_attribute::read()/write() (treewide)
 
   - Constify internal references to 'struct bin_attribute'
 
 - Support cache-ids for device-tree systems
 
   - Add arch hook arch_compact_of_hwid()
 
   - Use arch_compact_of_hwid() to compact MPIDR values on arm64
 
 - Rust
 
   - Device
 
     - Introduce CoreInternal device context (for bus internal methods)
 
     - Provide generic drvdata accessors for bus devices
 
     - Provide Driver::unbind() callbacks
 
     - Use the infrastructure above for auxiliary, PCI and platform
 
     - Implement Device::as_bound()
 
     - Rename Device::as_ref() to Device::from_raw() (treewide)
 
     - Implement fwnode and device property abstractions
 
       - Implement example usage in the Rust platform sample driver
 
   - Devres
 
     - Remove the inner reference count (Arc) and use pin-init instead
 
     - Replace Devres::new_foreign_owned() with devres::register()
 
     - Require T to be Send in Devres<T>
 
     - Initialize the data kept inside a Devres last
 
     - Provide an accessor for the Devres associated Device
 
   - Device ID
 
     - Add support for ACPI device IDs and driver match tables
 
     - Split up generic device ID infrastructure
 
     - Use generic device ID infrastructure in net::phy
 
   - DMA
 
     - Implement the dma::Device trait
 
     - Add DMA mask accessors to dma::Device
 
     - Implement dma::Device for PCI and platform devices
 
     - Use DMA masks from the DMA sample module
 
   - I/O
 
     - Implement abstraction for resource regions (struct resource)
 
     - Implement resource-based ioremap() abstractions
 
     - Provide platform device accessors for I/O (remap) requests
 
   - Misc
 
     - Support fallible PinInit types in Revocable
 
     - Implement Wrapper<T> for Opaque<T>
 
     - Merge pin-init blanket dependencies (for Devres)
 
 - Misc
 
   - Fix OF node leak in auxiliary_device_create()
 
   - Use util macros in device property iterators
 
   - Improve kobject sample code
 
   - Add device_link_test() for testing device link flags
 
   - Fix typo in Documentation/ABI/testing/sysfs-kernel-address_bits
 
   - Hint to prefer container_of_const() over container_of()
 -----BEGIN PGP SIGNATURE-----
 
 iHQEABYKAB0WIQS2q/xV6QjXAdC7k+1FlHeO1qrKLgUCaIjkhwAKCRBFlHeO1qrK
 LpXuAP9RWwfD9ZGgQZ9OsMk/0pZ2mDclaK97jcmI9TAeSxeZMgD1FHnOMTY7oSIi
 iG7Muq0yLD+A5gk9HUnMUnFNrngWCg==
 =jgRj
 -----END PGP SIGNATURE-----

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

Pull driver core updates from Danilo Krummrich:
 "debugfs:
   - Remove unneeded debugfs_file_{get,put}() instances
   - Remove last remnants of debugfs_real_fops()
   - Allow storing non-const void * in struct debugfs_inode_info::aux

  sysfs:
   - Switch back to attribute_group::bin_attrs (treewide)
   - Switch back to bin_attribute::read()/write() (treewide)
   - Constify internal references to 'struct bin_attribute'

  Support cache-ids for device-tree systems:
   - Add arch hook arch_compact_of_hwid()
   - Use arch_compact_of_hwid() to compact MPIDR values on arm64

  Rust:
   - Device:
       - Introduce CoreInternal device context (for bus internal methods)
       - Provide generic drvdata accessors for bus devices
       - Provide Driver::unbind() callbacks
       - Use the infrastructure above for auxiliary, PCI and platform
       - Implement Device::as_bound()
       - Rename Device::as_ref() to Device::from_raw() (treewide)
       - Implement fwnode and device property abstractions
       - Implement example usage in the Rust platform sample driver
   - Devres:
       - Remove the inner reference count (Arc) and use pin-init instead
       - Replace Devres::new_foreign_owned() with devres::register()
       - Require T to be Send in Devres<T>
       - Initialize the data kept inside a Devres last
       - Provide an accessor for the Devres associated Device
   - Device ID:
       - Add support for ACPI device IDs and driver match tables
       - Split up generic device ID infrastructure
       - Use generic device ID infrastructure in net::phy
   - DMA:
       - Implement the dma::Device trait
       - Add DMA mask accessors to dma::Device
       - Implement dma::Device for PCI and platform devices
       - Use DMA masks from the DMA sample module
   - I/O:
       - Implement abstraction for resource regions (struct resource)
       - Implement resource-based ioremap() abstractions
       - Provide platform device accessors for I/O (remap) requests
   - Misc:
       - Support fallible PinInit types in Revocable
       - Implement Wrapper<T> for Opaque<T>
       - Merge pin-init blanket dependencies (for Devres)

  Misc:
   - Fix OF node leak in auxiliary_device_create()
   - Use util macros in device property iterators
   - Improve kobject sample code
   - Add device_link_test() for testing device link flags
   - Fix typo in Documentation/ABI/testing/sysfs-kernel-address_bits
   - Hint to prefer container_of_const() over container_of()"

* tag 'driver-core-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core: (84 commits)
  rust: io: fix broken intra-doc links to `platform::Device`
  rust: io: fix broken intra-doc link to missing `flags` module
  rust: io: mem: enable IoRequest doc-tests
  rust: platform: add resource accessors
  rust: io: mem: add a generic iomem abstraction
  rust: io: add resource abstraction
  rust: samples: dma: set DMA mask
  rust: platform: implement the `dma::Device` trait
  rust: pci: implement the `dma::Device` trait
  rust: dma: add DMA addressing capabilities
  rust: dma: implement `dma::Device` trait
  rust: net::phy Change module_phy_driver macro to use module_device_table macro
  rust: net::phy represent DeviceId as transparent wrapper over mdio_device_id
  rust: device_id: split out index support into a separate trait
  device: rust: rename Device::as_ref() to Device::from_raw()
  arm64: cacheinfo: Provide helper to compress MPIDR value into u32
  cacheinfo: Add arch hook to compress CPU h/w id into 32 bits for cache-id
  cacheinfo: Set cache 'id' based on DT data
  container_of: Document container_of() is not to be used in new code
  driver core: auxiliary bus: fix OF node leak
  ...
2025-07-29 12:15:39 -07:00
Colin Ian King
6443cdf567 ring-buffer: Make the const read-only 'type' static
Don't populate the read-only 'type' on the stack at run time,
instead make it static.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://lore.kernel.org/20250714160858.1234719-1-colin.i.king@gmail.com
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2025-07-29 15:08:57 -04:00
Linus Torvalds
854ff79237 MMC core:
- Remove redundant pm_runtime_mark_last_busy() calls
 
 MMC host:
  - Convert drivers to use devm_mmc_alloc_host()
  - Remove redundant pm_runtime_mark_last_busy() calls
  - renesas_sdhi: Add support for the RZ/T2H and RZ/N2H variants
  - renesas_sdhi: Fix incorrect auto retuning for an SDIO card
  - rtsx_usb_sdmmc: Add 74 clocks in poweron flow
  - rtsx_usb_sdmmc: Re-work the code in sd_set_power_mode()
  - loongson2: Add driver for the Loongson-2K SD/SDIO controller
  - loongson2: Add support for the Loongson-2K2000 SD/SDIO/eMMC controller
  - sdhci: Drop sdhci_free_host()/sdhci_pltfm_free() interface
  - sdhci: Remove the sdhci_free_host() and sdhci_pltfm_free() helpers
  - sdhci-cadence: Add support for the Mobileye EyeQ controller
  - sdhci-esdhc-imx: Optimize clock loopback selection
  - sdhci-esdhc-imx: Don't change pinctrl in suspend if wakeup source
  - sdhci-msm: Add support for the Milos variant
  - sdhci-msm: Add support for the qcs8300 variant
  - sdhci-msm: Ensure SD card power isn't ON when card gets removed
  - sdhci-of-k1: Disable HW busy detection
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCgA1FiEEugLDXPmKSktSkQsV/iaEJXNYjCkFAmiIs7gXHHVsZi5oYW5z
 c29uQGxpbmFyby5vcmcACgkQ/iaEJXNYjCmLpA/+PS/xQxbNKpTp8xxGiVNTYjr8
 QodSjlj/v0U+4P5OKgdfPtCfXSdw3qqJXdDExBiciWDk/oP+s6QtijT/kJTaGvF8
 KcY/vWzuuNxqc6B1fcIyxWUwe5u2IZOfAy+eacD+fkjyr2NZN+F45g5Z+3zDGE/X
 792ireOKUFvB8R05SOSOjC4rrNqair+s1ANbVNqjfO5V+iWD6mJPkzy53dM6qeYc
 JaTuELNML51Iv6zFS8cKMLnWaxTb6rDe59oFMDCJF+vvzgj7v0eOUbWUjPUPHShm
 0vxjAAu6EPaWEj0z+PDMeFSrMjCr8QsfD/gixsDJ5mJZnyi0BgAatzJcPZTiZG8H
 WjOR69A68cI2LTvILQ7Juj4GPAMVIqQ1oqsF8Gtq1koV1FdWKAL1Qa7Mzt1ILJun
 lpmPlQfb1sYtUqERVrUspf9xtlrbOcIv6T1VL5k5S0DzkjL05VWH2zPws3IrVSlE
 a25oyfvPKhbvn8csfumk9cSFF9LfTedA21RP6tZWofKZgOBZ5zKqDAggvLM1f9uq
 41Q5i0CEWiq5+C6oK2RbfLzHgqKHbiA0DDCpB+W5Qtbl0mxKpV9Y6iYHzV2SgJp1
 JACfTKOb//lHXN+eMA0JJXBe6OP/5AbeT8+V8dCoRyT1pRJgXHb1UO6wHZ94X2Ho
 j3VDmefy5lOaA4od2bg=
 =bC9D
 -----END PGP SIGNATURE-----

Merge tag 'mmc-v6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc

Pull MMC updates from Ulf Hansson:
 "MMC core:
   - Remove redundant pm_runtime_mark_last_busy() calls

  MMC host:
   - Convert drivers to use devm_mmc_alloc_host()
   - Remove redundant pm_runtime_mark_last_busy() calls
   - renesas_sdhi:
      - Add support for the RZ/T2H and RZ/N2H variants
      - Fix incorrect auto retuning for an SDIO card
   - rtsx_usb_sdmmc:
      - Add 74 clocks in poweron flow
      - Re-work the code in sd_set_power_mode()
   - loongson2:
      - Add driver for the Loongson-2K SD/SDIO controller
      -  Add support for the Loongson-2K2000 SD/SDIO/eMMC controller
   - sdhci:
      - Drop sdhci_free_host()/sdhci_pltfm_free() interface
      - Remove the sdhci_free_host() and sdhci_pltfm_free() helpers
   - sdhci-cadence: Add support for the Mobileye EyeQ controller
   - sdhci-esdhc-imx:
      - Optimize clock loopback selection
      - Don't change pinctrl in suspend if wakeup source
   - sdhci-msm:
      - Add support for the Milos variant
      - Add support for the qcs8300 variant
      - Ensure SD card power isn't ON when card gets removed
   - sdhci-of-k1: Disable HW busy detection"

* tag 'mmc-v6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (102 commits)
  mmc: loongson2: Unify the function prefixes for loongson2_mmc_pdata
  mmc: loongson2: Fix error code in loongson2_mmc_resource_request()
  dt-bindings: mmc: sdhci-msm: document the Milos SDHCI Controller
  mmc: loongson2: prevent integer overflow in ret variable
  mmc: Remove redundant pm_runtime_mark_last_busy() calls
  mmc: sdhci-msm: Ensure SD card power isn't ON when card removed
  dt-bindings: mmc: Add sdhci compatible for qcs8300
  mmc: sdhci-cadence: use of_property_present
  mmc: loongson2: Add Loongson-2K2000 SD/SDIO/eMMC controller driver
  dt-bindings: mmc: loongson,ls2k0500-mmc: Add compatible for Loongson-2K2000
  mmc: loongson2: Add Loongson-2K SD/SDIO controller driver
  dt-bindings: mmc: Add Loongson-2K SD/SDIO/eMMC controller binding
  mmc: Convert ternary operator to str_true_false() helper
  dt-bindings: mmc: renesas,sdhi: Document RZ/T2H and RZ/N2H support
  mmc: sdhci-cadence: add Mobileye eyeQ support
  dt-bindings: mmc: cdns: add Mobileye EyeQ MMC/SDHCI controller
  mmc: rtsx_usb_sdmmc: Fix clang -Wimplicit-fallthrough in sd_set_power_mode()
  mmc: cb710-mmc: Convert ternary operator to str_plural() helper
  mmc: rtsx_usb_sdmmc: Add 74 clocks in poweron flow
  mmc: rtsx_usb_sdmmc: Re-work the code in sd_set_power_mode()
  ...
2025-07-29 12:05:38 -07:00
Steven Rostedt
5e32d0f15c unwind_user/deferred: Add unwind_user_faultable()
Add a new API to retrieve a user space callstack called
unwind_user_faultable(). The difference between this user space stack
tracer from the current user space stack tracer is that this must be
called from faultable context as it may use routines to access user space
data that needs to be faulted in.

It can be safely called from entering or exiting a system call as the code
can still be faulted in there.

This code is based on work by Josh Poimboeuf's deferred unwinding code:

Link: https://lore.kernel.org/all/6052e8487746603bdb29b65f4033e739092d9925.1737511963.git.jpoimboe@kernel.org/

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Josh Poimboeuf <jpoimboe@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrii Nakryiko <andrii@kernel.org>
Cc: Indu Bhagat <indu.bhagat@oracle.com>
Cc: "Jose E. Marchesi" <jemarch@gnu.org>
Cc: Beau Belgrave <beaub@linux.microsoft.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: Sam James <sam@gentoo.org>
Link: https://lore.kernel.org/20250729182405.147896868@kernel.org
Reviewed-by: Jens Remus <jremus@linux.ibm.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2025-07-29 14:46:07 -04:00
Josh Poimboeuf
71753c6ed2 unwind_user: Add user space unwinding API with frame pointer support
Introduce a generic API for unwinding user stacks.

In order to expand user space unwinding to be able to handle more complex
scenarios, such as deferred unwinding and reading user space information,
create a generic interface that all architectures can use that support the
various unwinding methods.

This is an alternative method for handling user space stack traces from
the simple stack_trace_save_user() API. This does not replace that
interface, but this interface will be used to expand the functionality of
user space stack walking.

None of the structures introduced will be exposed to user space tooling.

Support for frame pointer unwinding is added. For an architecture to
support frame pointer unwinding it needs to enable
CONFIG_HAVE_UNWIND_USER_FP and define ARCH_INIT_USER_FP_FRAME.

By encoding the frame offsets in struct unwind_user_frame, much of this
code can also be reused for future unwinder implementations like sframe.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrii Nakryiko <andrii@kernel.org>
Cc: Indu Bhagat <indu.bhagat@oracle.com>
Cc: "Jose E. Marchesi" <jemarch@gnu.org>
Cc: Beau Belgrave <beaub@linux.microsoft.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: Sam James <sam@gentoo.org>
Link: https://lore.kernel.org/20250729182404.975790139@kernel.org
Reviewed-by: Jens Remus <jremus@linux.ibm.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Co-developed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://lore.kernel.org/all/20250710164301.3094-2-mathieu.desnoyers@efficios.com/
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Co-developed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2025-07-29 14:46:07 -04:00
Linus Torvalds
fc8f5028eb pmdomain core:
- Leave powered-on genpds on until ->sync_state() or late_initcall_sync
  - Export a common ->sync_state() helper for genpd providers
  - Add generic ->sync_state() support
  - Add a bus/driver for genpd provider-devices
  - Introduce dev_pm_genpd_is_on() for consumers
 
 pmdomain providers:
  - cpuidle-psci: Drop redundant ->sync_state() support
  - cpuidle-riscv-sbi: Drop redundant ->sync_state() support
  - imx: Set ISI panic write for imx8m-blk-ctrl
  - qcom: Add support for Glymur and Milos RPMh power-domains
  - qcom: Use of_genpd_sync_state() for power-domains
  - rockchip: Add support for the RK3528 variant
  - samsung: Fix splash-screen handover by enforcing a ->sync_state()
  - sunxi: Add support for Allwinner A523's PCK600 power-controller
  - tegra: Opt-out from genpd's common ->sync_state() support for pmc
  - thead: Instantiate a GPU power sequencer via the auxiliary bus
  - renesas: Move init to postcore_initcalls
  - xilinx: Move ->sync_state() support to firmware driver
  - xilinx: Use of_genpd_sync_state() for power-domains
 
 pmdomain consumers:
  - remoteproc: imx_rproc: Fixup the detect/attach procedure for pre-booted cores
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCgA1FiEEugLDXPmKSktSkQsV/iaEJXNYjCkFAmiIqskXHHVsZi5oYW5z
 c29uQGxpbmFyby5vcmcACgkQ/iaEJXNYjClOLBAAxsd5QP7QyeCePR4hADGePY4d
 Ab4fX01EVsu+g5cjg7L1V8gZMbNC/O+bxVhF5s1CiDbXbEcDliuW9yKCTFq4Yqx+
 7PtR+U538FADJGbbETzp8AFbcD8hmd/Wt/o7JyqC2wmmRwlgDEKPTR+M7FirrU3J
 fLsE+wyJSxn8ywJ1XwQOxBOZUtq11a8UueMXb8L1DhilyjT88zqCNiMvkcLtBlh+
 tRT5TWBEGr7qPCDAW6w3RL/8Y22g8xIjJxcDI8LycI/ed7qB5gtIs3ORiTl2w4qE
 k78wp2Ltv1Q2AmrYiLoaciFMTXckeBycVhobf0c4zVn2HGS15Fip0YNhPQmOz3aI
 JY+h5aUTMTUICVTG1D9uTW9gEbzqJOnqwU75R6zyV6xUk9pS4pGHaxaqKasNdDPy
 zIVgaURMZZxq37x7TNmnQZSZ3pAisFTm8Rv4oDTOJshblhuzG0TsXTlgMuy+EONB
 qh0obkHZFETrucGwaGBFVenzpnwZiEZ3EAKMGDcjBAO54waWdo+SmmJCc0KCQLih
 UheFi4v0IAUm8KqzwM4CKGg5NhGo2E1FcG8YbX6t2phycQLfVHDSw3rXHJRfXOzu
 s6njs7DhPKvUdlQxm1Fjq+eeMw2wsUFj8x1+usQYiD3UfuC26GU3cPsrU99+pcak
 eTcWfSnpDiXpVE3pEOk=
 =9SL+
 -----END PGP SIGNATURE-----

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

Pull pmdomain updates from Ulf Hansson:
 "pmdomain core:
   - Leave powered-on genpds on until ->sync_state() or late_initcall_sync
   - Export a common ->sync_state() helper for genpd providers
   - Add generic ->sync_state() support
   - Add a bus/driver for genpd provider-devices
   - Introduce dev_pm_genpd_is_on() for consumers

  pmdomain providers:
   - cpuidle-psci: Drop redundant ->sync_state() support
   - cpuidle-riscv-sbi: Drop redundant ->sync_state() support
   - imx: Set ISI panic write for imx8m-blk-ctrl
   - qcom: Add support for Glymur and Milos RPMh power-domains
   - qcom: Use of_genpd_sync_state() for power-domains
   - rockchip: Add support for the RK3528 variant
   - samsung: Fix splash-screen handover by enforcing a ->sync_state()
   - sunxi: Add support for Allwinner A523's PCK600 power-controller
   - tegra: Opt-out from genpd's common ->sync_state() support for pmc
   - thead: Instantiate a GPU power sequencer via the auxiliary bus
   - renesas: Move init to postcore_initcalls
   - xilinx: Move ->sync_state() support to firmware driver
   - xilinx: Use of_genpd_sync_state() for power-domains

  pmdomain consumers:
   - remoteproc: imx_rproc: Fixup the detect/attach procedure for
     pre-booted cores"

* tag 'pmdomain-v6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm: (44 commits)
  pmdomain: qcom: rpmhpd: Add Glymur RPMh Power Domains
  dt-bindings: power: rpmpd: Add Glymur power domains
  remoteproc: imx_rproc: detect and attach to pre-booted remote cores
  remoteproc: imx_rproc: skip clock enable when M-core is managed by the SCU
  pmdomain: core: introduce dev_pm_genpd_is_on()
  pmdomain: ti: Select PM_GENERIC_DOMAINS
  pmdomain: sunxi: sun20i-ppu: change to tristate and enable for ARCH_SUNXI
  pmdomain: sunxi: add driver for Allwinner A523's PCK-600 power controller
  pmdomain: sunxi: sun20i-ppu: add A523 support
  pmdomain: samsung: Fix splash-screen handover by enforcing a sync_state
  cpuidle: riscv-sbi: Drop redundant sync_state support
  cpuidle: psci: Drop redundant sync_state support
  pmdomain: core: Leave powered-on genpds on until sync_state
  pmdomain: core: Leave powered-on genpds on until late_initcall_sync
  pmdomain: core: Default to use of_genpd_sync_state() for genpd providers
  driver core: Add dev_set_drv_sync_state()
  pmdomain: core: Add common ->sync_state() support for genpd providers
  driver core: Export get_dev_from_fwnode()
  firmware: xilinx: Use of_genpd_sync_state()
  firmware: xilinx: Don't share zynqmp_pm_init_finalize()
  ...
2025-07-29 11:42:31 -07:00
Linus Torvalds
0ae982df67 i2c-for-6.17-rc1
I2C Core:
 
 - prevent double-free of an fwnode if it is a software node
 - use recent helpers instead of custom ACPI or outdated OF ones
 - add a more elaborate description of a message flag
 
 I2C Host drivers, part 1:
 
 Cleanups and refactorings:
 - lpi2c, riic, st, stm32f7: general improvements
 - riic: support more flexible IRQ configurations
 - tegra: fix documentation
 
 Improvements:
 - lpi2c: improve register polling and add atomic transfer
 - imx: use guarded spinlocks
 
 New hardware support:
 - Samsung Exynos 2200
 - Renesas RZ/T2H (R9A09G077), RZ/N2H (R9A09G087)
 
 DT binding:
 - rk3x: enable power domains
 - nxp: support clock property
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEOZGx6rniZ1Gk92RdFA3kzBSgKbYFAmiIhtcACgkQFA3kzBSg
 KbZ/zw//Q5R4BCW6ohE/YZ7LM66cz/eno0epS+qBUBlmQfz0XQtizIG1Ji63b8l1
 Cre+lghHQrveItJKWhCZyG1Ugym4PeXDL+tjgLN3Jy44DEdgtinl8bg/x4GjyKAW
 fXtCrPxV71+w9UTHU2bGmk744vEVkpy7d/zf0bRj1kCNd94IMZI5XEryQpa2qMnT
 pNVON/dPSKhEVMh3FrJxr6ZoZOeiUOGoycrnJCRjfOoc5Cgq6OdlNHik/mY4Hrhq
 1/jlA0eNMkOWFl7RDN6IdjySLctHdXIAJ03Ggv/3fQoGTF6i741VQU0OsF1zGVVh
 2fPapVGYdGDJ+ORhzGufytH63do5ATaxZr/5kATYmWBxzhAcVzG55p5YrdFfGfxj
 HkkYuiQ95CN3eTL1GmnIxPn1VtruxpEqkB6Jk0pj+PafeYjQeJB3Hy15ctdXPPz6
 TTg9ChIqkT/0oZJQEOsl+KP3iuxlaun+DDJ2MTecYc75Z7HqTFwqrTY0rx/Q52ry
 kg+ac6MdNEZtFz2VSrCqGndh1bCDCcjXqj7Yv7psRnX+kMYQBT1hVKys8/VOQh+/
 fOeaoL+vDdFO++P+0toAK76PEIg2ixBr/iqULcbgOZyz8RzTJJqyl3u3vktNB1Bb
 9wJfIr8R/MhhizfDrJxQS+cYoAjD9ByiiodMX1EBnSKbD/8U9lA=
 =qGAm
 -----END PGP SIGNATURE-----

Merge tag 'i2c-for-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c updates from Wolfram Sang:
 "I2C Core:
   - prevent double-free of an fwnode if it is a software node
   - use recent helpers instead of custom ACPI or outdated OF ones
   - add a more elaborate description of a message flag

  Cleanups and refactorings:
   - lpi2c, riic, st, stm32f7: general improvements
   - riic: support more flexible IRQ configurations
   - tegra: fix documentation

  Improvements:
   - lpi2c: improve register polling and add atomic transfer
   - imx: use guarded spinlocks

  New hardware support:
   - Samsung Exynos 2200
   - Renesas RZ/T2H (R9A09G077), RZ/N2H (R9A09G087)

  DT binding:
   - rk3x: enable power domains
   - nxp: support clock property"

* tag 'i2c-for-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
  i2c: core: Fix double-free of fwnode in i2c_unregister_device()
  i2c: lpi2c: implement xfer_atomic callback
  i2c: lpi2c: use readl_poll_timeout() for register polling
  dt-bindings: i2c: i2c-rk3x: Allow use of a power-domain
  dt-bindings: i2c: exynos5: add samsung,exynos2200-hsi2c compatible
  i2c: lpi2c: convert to use secs_to_jiffies()
  i2c: st: Use min() to improve code
  i2c: imx: use guard to take spinlock
  i2c: stm32f7: Use str_on_off() helper
  dt-bindings: i2c: nxp,pnx-i2c: allow clocks property
  i2c: riic: Add support for RZ/T2H SoC
  i2c: riic: Move generic compatible string to end of array
  i2c: riic: Pass IRQ desc array as part of OF data
  dt-bindings: i2c: renesas,riic: Document RZ/T2H and RZ/N2H support
  dt-bindings: i2c: renesas,riic: Move ref for i2c-controller.yaml to the end
  i2c: tegra: Add missing kernel-doc for dma_dev member
  i2c: Clarify behavior of I2C_M_RD flag
  i2c: mux: pca954x: Use dev_fwnode()
  i2c: acpi: Replace custom code with device_match_acpi_handle()
2025-07-29 11:35:24 -07:00
Linus Torvalds
0919a5b3b1 soc: arm code changes for 6.17
Another small set of code changes for the 32-bit Arm platforms, and a
 trivial update to the Kconfig entry for the arm64 TI K3 chip.
 
 Andrew Davis cleans up the system reset handling, which touches a couple
 of platforms.
 
 The mediatek platform needs some code changes to support multiprocessing
 in the newly added support for the old mt6572 chip.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmiD8/EACgkQmmx57+YA
 GNmGsBAApv+7kWvy94wulfAptZTfXTcGBB174IVdAG9XX93eWVcPNzlbTv34BYa9
 aMHuRrrO4ttRaHgdtNqT/gZgrojqmhK/GMSV6Sun770tDLMNrVUtcLs7iNmU6VvD
 Va873hdI2nXvxZCVrDfkS7fQWjqx4L3L2wW9AuX7rs3xEUALuIhYoYoCqF+NzRTL
 V6rtPUZAoQ/6b4nRopCH3aTaxJOy20mYjEFI9O6WQjAYmd1V+jATJ4vNxIBJp8W+
 fVOfgVVqULEaapaGL96x8UQegRBnSabbKTYgEcmFDqQKaslxmuS+sD5d6N+vhWFX
 3BQyOjjDgXu5AlL6fIJV0t3JvZ8ud4rNnyp62m6vzppYcBRnzNmdp5WDgKEtyd1G
 FbBF0cQx4KqfswtmcycHJj3fmYccsqD2jvc35+8tFP5vjrzOV2THWLAA+6maFUTe
 BI8+y2/EIHFZ1rwDoMK/zuiesMm7G64Tf4UkH14wV0RohqNrU1ZapTX3WbERmV7T
 miRxvrK4Vh4B31I11PAHYBSw7KRPIf94MzUy1mPvQ7EjvYDdW1s2Ufygm3+33j3R
 aXYhcUjNkenSH0GyYTyycLFxTklAERLroRxz8h6j+PHIpbxulX+wG/xwd1v2JTsE
 TKGV6jBecaE1A5OJWxVEl6P9MOizIe1BDTaLxL08Nf6bp+OlLUs=
 =SZ0j
 -----END PGP SIGNATURE-----

Merge tag 'soc-arm-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARM SoC code updates from Arnd Bergmann:
 "Another small set of code changes for the 32-bit Arm platforms, and a
  trivial update to the Kconfig entry for the arm64 TI K3 chip.

  Andrew Davis cleans up the system reset handling, which touches a
  couple of platforms.

  The mediatek platform needs some code changes to support
  multiprocessing in the newly added support for the old mt6572 chip"

* tag 'soc-arm-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
  ARM: sa110/gpio: convert set_multiple() to returning an integer
  ARM: rockchip: fix kernel hang during smp initialization
  ARM: mediatek: add MT6572 smp bring up code
  ARM: mediatek: add board_dt_compat entry for the MT6572 SoC
  ARM: tegra: Use I/O memcpy to write to IRAM
  arm: orion: use string choices helper
  ARM: Switch to new sys-off handler API
  arm64: Kconfig.platforms: remove useless select for ARCH_K3
2025-07-29 11:30:17 -07:00
Linus Torvalds
4c10d22211 soc: defconfig updates for 6.16
As usual, more drivers get enabled in the defconfigs, to support newly
 added hardware drivers.
 
 There is one change for Tegra that modifies the Kconfig file at the same
 time, and the NXP arm32 defconfigs get a refresh.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmiD8n8ACgkQmmx57+YA
 GNni9g//d7W04OSpAOCT7LKLhkLEK8CMlAcXJMWSk8cDK0irHtAnmxEiwd/qlfOg
 bU9oooOd6w5RrLn3A2GCSEMkdW520ng5PlRTKZKpEXr074PI25ghfIf7vfaVrlEN
 t66P0deO7Yup7SQqa3Wl4V4rcrO6v0w0LKn5nHaajOhTgZhXft4z4fosPegGlez5
 lXp9HC7yxLcH8DZkvg8RVRWIZaxnunb1g7P8ma/meqb0jrE9d8JCTU3+I9rHgji3
 pqzSAhjnBE/r5dn0IPTMppncJI/hXbqvSf5757osec/9XRfR29/mBfgBT6EUXT6W
 D2WuHk3DHciitiHrcsTqShMV+R0EUGj7yY4yg0hLXO3Pcdme5pigzJGWUtLczPN3
 DayXj7+AJ+G7izdiC+bXI0hqxwKxKc8rkddV0qEWKNI2m69iaGs2xiMF8z6l/asW
 FYg5t14YN2h2lDpE7Vxo+sey4Dnxqmzel/WkV+UysqqWV5zlGa34ZT66j63m4iLu
 EYmB4Jw35FMZ6LVCl79q3QtJbusvGlJUHySF+khcEN8WrksNcCVU94mfr08ydsez
 gpCV+zHyD2z/d5JQVXIAtet/c6DowRy7FggmkauF2IcudDM6lU3WYeKP39fIv/lt
 w9FddYRMNC+LtnIUccjUcqKkIP3CXJ5zs7qIGflW4qYeRrdSQ0s=
 =En7k
 -----END PGP SIGNATURE-----

Merge tag 'soc-defconfig-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull SoC defconfig updates from Arnd Bergmann:
 "As usual, more drivers get enabled in the defconfigs, to support newly
  added hardware drivers.

  There is one change for Tegra that modifies the Kconfig file at the
  same time, and the NXP arm32 defconfigs get a refresh"

* tag 'soc-defconfig-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (25 commits)
  arm: multi_v7_defconfig: Enable TPS65219 regulator
  arm: omap2plus_defconfig: Enable TPS65219 regulator
  arm64: defconfig: Enable Tegra241 and Tegra264
  riscv: defconfig: spacemit: enable sdhci driver for K1 SoC
  riscv: defconfig: Enable PWM support for SpacemiT K1 SoC
  riscv: defconfig: Remove CONFIG_SND_SOC_STARFIVE=m
  arm64: defconfig: Enable Tegra HSP and BPMP
  ARM: imx_v6_v7_defconfig: select CONFIG_USB_HSIC_USB3503
  ARM: imx_v6_v7_defconfig: select CONFIG_INPUT_PWM_BEEPER
  ARM: imx_v6_v7_defconfig: cleanup with savedefconfig
  ARM: mxs_defconfig: select new drivers used by imx28-amarula-rmm
  ARM: mxs_defconfig: Cleanup mxs_defconfig
  arm64: defconfig: enable further Rockchip platform drivers
  arm64: defconfig: enable Samsung PMIC over ACPM
  arm64: defconfig: enable Maxim max77759 driver
  ARM: configs: sama5_defconfig: Select CONFIG_WILC1000_SDIO
  ARM: shmobile: defconfig: Refresh for v6.16-rc2
  arm64: defconfig: Enable RZ/V2H(P) USB2 PHY controller reset driver
  arm64: defconfig: add S32G RTC module support
  arm64: defconfig: Drop unneeded unselectable sound drivers
  ...
2025-07-29 11:27:41 -07:00
Linus Torvalds
4df9c0a246 soc: new SoC support for 6.17
These five newly supported chips come with both devicetree descriptions
 and the changes to wire them up to the build system for easier bisection.
 
 The chips in question are:
 
  - Marvell PXA1908 was the first 64-bit mobile phone chip from Marvell
    in the product line that started with the Digital StrongARM SA1100
    based PDAs and continued with the Intel PXA2xx that dominated early
    smartphones. This one only made it only into a few products before the
    entire product line was cut in 2015.
 
  - The QiLai SoC is made by RISC-V core designer Andes Technologies
    and is in the 'Voyager' reference board in MicroATX form factor.
    It uses four in-order AX45MP cores, which is the midrange product
    from Andes.
 
  - CIX P1 is one of the few Arm chips designed for small workstations,
    and this one uses 12 Cortex-A720/A520 cores, making it also one
    of the only ARMv9.2 machines that one can but at the moment.
 
  - Axiado AX3000 is an embedded chip with relative small Cortex-A53
    CPU cores described as a "Trusted Control/Compute Unit" that can
    be used as a BMC in servers. In addition to the usual I/O, this one
    comes with 10GBit ethernet and and a 4TOPS NPU.
 
  - Sophgo SG2000 is an embedded chip that comes with both RISC-V
    and Arm cores that can run Linux. This was already supported for
    RISC-V but now it also works on Arm
 
 One more chip, the Black Sesame C1200 did not make it in tirm for the
 merge window.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmiD8XAACgkQmmx57+YA
 GNm0bA//WyIvhNarlMHalDg8YY1z4Qn8yhkkF1jpc2l7zdSqu0FHYicMs4RcrcWD
 DPWpVRXxVeV20yecbkYDHDXsNDVRrkeifZcbAcjguJb1UqUAL/k5COOMMKZTxML2
 KOVjUz9vp3F8gS1vO946JFwLyj3kJz97oeBeg80ZggWaJ0JlTmwKXQqK2FobZ4QL
 Fz8QlVwoSijdgqFB93xMoSk2PZgaro0lttHCAbJPOd4GMGSbdh1r3pA0sSCwiw5C
 oeDgMMXoR0jseY8IzcA1aj0TtGLplaa77KxAxonRFM1ILJw+LsCJZQks8QC8Y6DC
 AxhxUbvfb88toXvrut9wL+436PANXbvifdw17OTZAr2hFLibyRM4zvjfNgqr/q8z
 4tqCDDsW5nfUeACUen1BIbyUk3kZEbqzlYQpuAVbGqd0X5haeHNVee3/rxi9jOVq
 NNOXlDTBa+cec26JQYj4aE0S7yqdBjKOPTeREaSId8uuKKlx/Rr6QpG/TOtaIxTp
 Jzrkf8KG5MA4hbs616MxjDkPeTyc4KR27naSeDUYWxQCx+33WzKF7bYcADou+u7x
 PelG/2Jt5r3b4qI5E0oC3jP1Hx9jY4nEGunnVcFkxqWqIk+LOFpvPD0OwplDDhQH
 35Zg4oTPb2fr37qdR6CbAdNoaQpgYvxRDAy0XZFAUR7MqMRtyf8=
 =pMk/
 -----END PGP SIGNATURE-----

Merge tag 'soc-newsoc-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull new SoC support from Arnd Bergmann:
 "These five newly supported chips come with both devicetree
  descriptions and the changes to wire them up to the build system for
  easier bisection.

  The chips in question are:

   - Marvell PXA1908 was the first 64-bit mobile phone chip from Marvell
     in the product line that started with the Digital StrongARM SA1100
     based PDAs and continued with the Intel PXA2xx that dominated early
     smartphones. This one only made it only into a few products before
     the entire product line was cut in 2015.

   - The QiLai SoC is made by RISC-V core designer Andes Technologies
     and is in the 'Voyager' reference board in MicroATX form factor. It
     uses four in-order AX45MP cores, which is the midrange product from
     Andes.

   - CIX P1 is one of the few Arm chips designed for small workstations,
     and this one uses 12 Cortex-A720/A520 cores, making it also one of
     the only ARMv9.2 machines that one can but at the moment.

   - Axiado AX3000 is an embedded chip with relative small Cortex-A53
     CPU cores described as a "Trusted Control/Compute Unit" that can be
     used as a BMC in servers. In addition to the usual I/O, this one
     comes with 10GBit ethernet and and a 4TOPS NPU.

   - Sophgo SG2000 is an embedded chip that comes with both RISC-V and
     Arm cores that can run Linux. This was already supported for RISC-V
     but now it also works on Arm

  One more chip, the Black Sesame C1200 did not make it in tirm for the
  merge window"

* tag 'soc-newsoc-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (38 commits)
  arm64: defconfig: Enable rudimentary Sophgo SG2000 support
  arm64: Add SOPHGO SOC family Kconfig support
  arm64: dts: sophgo: Add Duo Module 01 Evaluation Board
  arm64: dts: sophgo: Add Duo Module 01
  arm64: dts: sophgo: Add initial SG2000 SoC device tree
  MAINTAINERS: Add entry for Axiado
  arm64: defconfig: enable the Axiado family
  arm64: dts: axiado: Add initial support for AX3000 SoC and eval board
  arm64: add Axiado SoC family
  dt-bindings: i3c: cdns: add Axiado AX3000 I3C controller
  dt-bindings: serial: cdns: add Axiado AX3000 UART controller
  dt-bindings: gpio: cdns: add Axiado AX3000 GPIO variant
  dt-bindings: gpio: cdns: convert to YAML
  dt-bindings: arm: axiado: add AX3000 EVK compatible strings
  dt-bindings: vendor-prefixes: Add Axiado Corporation
  MAINTAINERS: Add CIX SoC maintainer entry
  arm64: dts: cix: Add sky1 base dts initial support
  dt-bindings: clock: cix: Add CIX sky1 scmi clock id
  arm64: defconfig: Enable CIX SoC
  mailbox: add CIX mailbox driver
  ...
2025-07-29 11:17:24 -07:00
Linus Torvalds
0f46f50845 soc: driver updates for 6.17
Changes are all over the place, but very little sticks out as
 noteworthy.
 
 There is a new misc driver for the Raspberry Pi 5's RP1 multifunction
 I/O chip, along with hooking it up to the pinctrl and clk frameworks.
 
 The reset controller and memory subsystems have mainly small updates,
 but there are two new reset drivers for the K230 and VC1800B SoCs,
 and new memory driver support for Tegra264.
 
 The ARM SMCCC and SCMI firmware drivers gain a few more features that
 should help them be supported across more environments. Similarly,
 the SoC specific firmware on Tegra and Qualcomm get minor enhancements
 and chip support.
 
 In the drivers/soc/ directory, the ASPEED LPC snoop driver gets an
 overhaul for code robustness, the Tegra and Qualcomm and NXP drivers
 grow to support more chips, while the Hisilicon, Mediatek and Renesas
 drivers see mostly janitorial fixes.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmiEmIcACgkQmmx57+YA
 GNkE4g/6A2OKti+qtIsLt10zS7paGP38ftu9ad27WC54AOGgVk4ZXt8mVGRmqOf+
 BICIM+wc4gehdvRJTRnq3gZg3e1puuYdcMuBOh4qsghRMjdYUKfNairtn/iX7d+f
 e5auzz5/gV7MWNM7jiQNydCqZSeV6u2/cqD5iRCrRgaB5FOG4yY1BkAsah1UzZjk
 MycudqjkK4IX5zp5oqXB/PoesULAbB2unjvfw194LATYSqmcRLQRWFdv4aM0R6ba
 TDP5x0d95nhMTNWif3495zc2WxdSYzbD4lNv44RPpKDywqBj+qFBI/EpMFkxQ5Hy
 cqv60Dm+/tx+DBO/Ma0zJzsV4ChRIEBNkTUh36OxmYxq70x1T4FEynZ6IT8a8dXD
 ltjHwOcTHp1M0OpNj+PIFBD+ohWFWKOo+T9GRtTInLjUGBlJA6LK9i4Lb0DaIyRt
 DmmvbZCwh0PI/nZiyQzw7rsXWwqDcqeF8FScw+9ooBk7Z7Jr1gMc52ya0qrRWQ8w
 Tr3D+lNE0aDfErnx4RrNsjD8lpX4nOfRFvuWSTlWqkBjGhoDP/tnNi2RCWmbXo2Z
 PDDWLnECo6o1aIxYO/tHjbFKVJB38p4e/LLP89htu8dFxSZKnVzxosnOvEVWS8+Y
 a0oZb9j1tAOYHmMWDm+zaQ7BlK9CMURNTdUcnqNqIvZpHnHz9M8=
 =7T40
 -----END PGP SIGNATURE-----

Merge tag 'soc-drivers-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull SoC driver updates from Arnd Bergmann:
 "Changes are all over the place, but very little sticks out as
  noteworthy.

  There is a new misc driver for the Raspberry Pi 5's RP1 multifunction
  I/O chip, along with hooking it up to the pinctrl and clk frameworks.

  The reset controller and memory subsystems have mainly small updates,
  but there are two new reset drivers for the K230 and VC1800B SoCs, and
  new memory driver support for Tegra264.

  The ARM SMCCC and SCMI firmware drivers gain a few more features that
  should help them be supported across more environments. Similarly, the
  SoC specific firmware on Tegra and Qualcomm get minor enhancements and
  chip support.

  In the drivers/soc/ directory, the ASPEED LPC snoop driver gets an
  overhaul for code robustness, the Tegra and Qualcomm and NXP drivers
  grow to support more chips, while the Hisilicon, Mediatek and Renesas
  drivers see mostly janitorial fixes"

* tag 'soc-drivers-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (100 commits)
  bus: del unnecessary init var
  soc: fsl: qe: convert set_multiple() to returning an integer
  pinctrl: rp1: use new GPIO line value setter callbacks
  soc: hisilicon: kunpeng_hccs: Fix incorrect log information
  dt-bindings: soc: qcom: qcom,pmic-glink: document Milos compatible
  dt-bindings: soc: qcom,aoss-qmp: document the Milos Always-On Subsystem side channel
  dt-bindings: firmware: qcom,scm: document Milos SCM Firmware Interface
  soc: qcom: socinfo: Add support to retrieve APPSBL build details
  soc: qcom: pmic_glink: fix OF node leak
  soc: qcom: spmi-pmic: add more PMIC SUBTYPE IDs
  soc: qcom: socinfo: Add PM7550 & PMIV0108 PMICs
  soc: qcom: socinfo: Add SoC IDs for SM7635 family
  dt-bindings: arm: qcom,ids: Add SoC IDs for SM7635 family
  firmware: qcom: scm: request the waitqueue irq *after* initializing SCM
  firmware: qcom: scm: initialize tzmem before marking SCM as available
  firmware: qcom: scm: take struct device as argument in SHM bridge enable
  firmware: qcom: scm: remove unused arguments from SHM bridge routines
  soc: qcom: rpmh-rsc: Add RSC version 4 support
  memory: tegra: Add Tegra264 MC and EMC support
  firmware: tegra: bpmp: Fix build failure for tegra264-only config
  ...
2025-07-29 11:13:27 -07:00
Linus Torvalds
115e74a29b soc: dt changes for 6.17
There are a few new variants of existing chips:
 
  - mt6572 is an older mobile phone chip from mediatek that was
    extremely popular a decade ago but never got upstreamed until now.
 
  - exynos2200 is a recent high-end mobile phone chip used in a
    few Samsung phones like the Galaxy S22
 
  - Renesas R-Car V4M-7 (R8A779H2) is an updated version of R-Car V4M
    (R8A779H0) and used in automotive applications
 
  - Tegra264 is a new chip from NVIDIA, but support is fairly minimal
    for now, and not much information is public about it.
 
 There are five more chips in a separate branch, as those are new
 chip families that I merged along with the necessary infrastructure.
 
 New board support is not that exciting, with a total of 33 newly
 added machines here:
 
  - Evaluation platforms for the chips above, plus TI am62d2 and
    Sophgo sg2042.
 
  - Six 32-bit industrial boards based on stm32, imx6 and am33 chips,
    plus eight 64-bit rockchips rk33xx/rk35xx, am62d2, t527, imx8 and
    imx95.
 
  - Two newly added ASPEED BMC based motherboards, and one that got
    removed
 
  - Phones and Tablets based on 32-bit mt6572, tegra30 and 64-bit
    msm8976 SoCs
 
  - Three Laptops based on Mediatek mt8186 and Qualcomm Snapdragon X1
 
  - A set-top box based on Amlogic meson-gxm.
 
 Updates for existing machines are spread over all the above families.
 One notable change here is support for the RP1 I/O chip used in
 Raspberry Pi 5.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmiEp54ACgkQmmx57+YA
 GNmE+BAAvGeMkjz05rl3kSeNWCxm3WlQtrVAS3CGxXlmuB3GH4svAYO7ZFqnA1Lq
 oLKfvH9TXQgNTRlRV2bKSVCcgsvMdRukqvaNIp+9jOHKkdapgGUHr7XALZCITODp
 Ey2YPOKVi3aY2tEqUiuV09oLBFYBB5ldSuPG7SnFHNS0+IWlqqFDdQhrFXfBNf02
 Upzca6J96A6TRG7Rq+VD4127QLapNDLm1S2R+3PbEapz/v/XNxQEtigWl+E88N5L
 ju1pXu9f93w1EeQla6rN6S8RKI6Ed0kVt0I7mtwJ5KrPs9jzQwZZc5t7z+0HVyaK
 o5ldagj7nEVlth2Fc2+E67DnxB6Xe8BkTcNspnS6oWscqvyYo2WCjYOBQcTocU5m
 ej4urbS80z2bGbew9zp/ZCBJjmqOdXW/B8z9mokg1u/aktHmAiOWXnFZtws5+rBM
 It/GjP4b8MzS3JYq1oNSCUV2KpYF9hzfSg1Td7DEvyhhvSgeJyXNsc4OozZzTCv6
 bO3h1PBW6JBWVupRIAz7IrqseAsCabCMfIHduvtYWJieRzv24z1Dfv8p73v3iknN
 qpOOyGOvWdPH0u04LAbovYdJfGrR/IN04wOYGcH0uB/bufW5qCKBb9AEAvxvTaJR
 Jg1Q7ac/+TVJSFwBQJresw4WdFPHVKVwd2s382Q5hKtx3B5Cn4Y=
 =0VBL
 -----END PGP SIGNATURE-----

Merge tag 'soc-dt-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull SoC devicetree updates from Arnd Bergmann:
 "There are a few new variants of existing chips:

   - mt6572 is an older mobile phone chip from mediatek that was
     extremely popular a decade ago but never got upstreamed until now

   - exynos2200 is a recent high-end mobile phone chip used in a few
     Samsung phones like the Galaxy S22

   - Renesas R-Car V4M-7 (R8A779H2) is an updated version of R-Car V4M
     (R8A779H0) and used in automotive applications

   - Tegra264 is a new chip from NVIDIA, but support is fairly minimal
     for now, and not much information is public about it

  There are five more chips in a separate branch, as those are new chip
  families that I merged along with the necessary infrastructure.

  New board support is not that exciting, with a total of 33 newly added
  machines here:

   - Evaluation platforms for the chips above, plus TI am62d2 and Sophgo
     sg2042

   - Six 32-bit industrial boards based on stm32, imx6 and am33 chips,
     plus eight 64-bit rockchips rk33xx/rk35xx, am62d2, t527, imx8 and
     imx95

   - Two newly added ASPEED BMC based motherboards, and one that got
     removed

   - Phones and Tablets based on 32-bit mt6572, tegra30 and 64-bit
     msm8976 SoCs

   - Three Laptops based on Mediatek mt8186 and Qualcomm Snapdragon X1

   - A set-top box based on Amlogic meson-gxm

  Updates for existing machines are spread over all the above families.
  One notable change here is support for the RP1 I/O chip used in
  Raspberry Pi 5"

* tag 'soc-dt-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (606 commits)
  riscv: dts: sophgo: fix mdio node name for CV180X
  riscv: dts: sophgo: sophgo-srd3-10: reserve uart0 device
  riscv: dts: sophgo: add Sophgo SG2042_EVB_V2.0 board device tree
  riscv: dts: sophgo: add Sophgo SG2042_EVB_V1.X board device tree
  dt-bindings: riscv: add Sophgo SG2042_EVB_V1.X/V2.0 bindings
  riscv: dts: sophgo: add ethernet GMAC device for sg2042
  riscv: dts: sophgo: Enable ethernet device for Huashan Pi
  riscv: dts: sophgo: Add mdio multiplexer device for cv18xx
  riscv: dts: sophgo: Add ethernet device for cv18xx
  riscv: dts: sophgo: sg2044: add pmu configuration
  riscv: dts: sophgo: sg2044: add ziccrse extension
  riscv: dts: sophgo: add zfh for sg2042
  riscv: dts: sophgo: add ziccrse for sg2042
  riscv: dts: sophgo: Add xtheadvector to the sg2042 devicetree
  riscv: dts: sophgo: sg2044: add PCIe device support for SG2044
  riscv: dts: sophgo: sg2044: add MSI device support for SG2044
  riscv: dts: sophgo: add reset configuration for Sophgo CV1800 series SoC
  riscv: dts: sophgo: add reset generator for Sophgo CV1800 series SoC
  dt-bindings: soc: sophgo: Move SoCs/boards from riscv into soc, add SG2000
  riscv: dts: sophgo: sg2044: Add missing riscv,cbop-block-size property
  ...
2025-07-29 11:04:52 -07:00
Linus Torvalds
69f2970aad Devicetree updates for 6.17:
- Add bindings for arm,armv7m-nvic, fsl,icoll, fsl,imx23-digctl, Xilinx
   INTC, Analog Devices ADT7411, and a bunch of trivial hwmon devices
 
 - Convert fsl,vf610-mscm-ir, fsl,dsu, via,vt8500-timer, nxp,isp1301,
   Marvell Armada NETA and BM, apm,xgene1-msi, fsl,mpic-msi,
   himax,hx8357d, and sitronix,st7586 bindings to DT schema format
 
 - Fixes for some display bindings
 
 - More indentation clean-ups in examples
 
 - Add more guidelines and clarifications on writing bindings
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEktVUI4SxYhzZyEuo+vtdtY28YcMFAmiIIp0ACgkQ+vtdtY28
 YcP3RA//cXS1f4p13jW3j++OlNcfv0Q/H1zJhCE5J6JEEY0CO5P8zp10IIU4GBwt
 TikNEnvFN2+hQWTLWgEpV/d7XqPc4BzXxBoj/+XQGnDAbm7no4EvqYyeG9lIw5mU
 fYjDhQ2SZCXehLBOXF7eOLJub7dcfuDOGoiFvmWWJoybaQytvJ/aTwoTuEs5qPtj
 bu8gVpRHtjRR0y0QYRqyPrfUCA6p9RHn3sZBJXnJ1WpwbKKxfti4rB0kIwWkGrck
 FLe2tkfDcflPYC0vnI/eIb4q3ZmbKYJVA1xM+XDw1VfBvmk9ZW9YsyRblSpdb0uo
 NWdojnvW7Pkel+yjRHidGXLE8diFoC41aqx+E/5E2mKUDz0TkDATUVxrzsWojNQi
 vbOcC6gDgNOdxYahQSiJumjdujx7LL/kamH98ZCW2w5ZsF9TYsXxracCI6KmOD0C
 vM8ncpnch8XLnxKgqC1cHzXCCaSgARi45XXsXEcIVhWXhvcFG8OTarI2dDo8rRXn
 b77MEXZ0TqvfnYyH7PRXbgTBa/9DkWz/uQYiihTgf5hoEPMxwfoxF58vG6ivAcyj
 DejNF+DZmzQPfx6buCYYZClP5sAeBK7F9uyyx7x/FlRYeb1Z2kaztvt7nIOhoRRc
 B+ENvGy+FWeP3tZGmIQIY2IGGWEGNrdlyhu7EnXiYOCoDcnRLkI=
 =VnkT
 -----END PGP SIGNATURE-----

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

Pull devicetree updates from Rob Herring:

 - Add bindings for arm,armv7m-nvic, fsl,icoll, fsl,imx23-digctl, Xilinx
   INTC, Analog Devices ADT7411, and a bunch of trivial hwmon devices

 - Convert fsl,vf610-mscm-ir, fsl,dsu, via,vt8500-timer, nxp,isp1301,
   Marvell Armada NETA and BM, apm,xgene1-msi, fsl,mpic-msi,
   himax,hx8357d, and sitronix,st7586 bindings to DT schema format

 - Fixes for some display bindings

 - More indentation clean-ups in examples

 - Add more guidelines and clarifications on writing bindings

* tag 'devicetree-for-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (31 commits)
  dt-bindings: Correct indentation and style in DTS example
  dt-bindings: display: mediatek,dp: Allow DisplayPort AUX bus
  dt-bindings: fsl: convert fsl,vf610-mscm-ir.txt to yaml format
  dt-bindings: interrupt-controller: Add fsl,icoll.yaml
  dt-bindings: interrupt-controller: Add missing Xilinx INTC binding
  dt-bindings: display: sprd,sharkl3-dsi-host: Fix missing clocks constraints
  dt-bindings: display: sprd,sharkl3-dpu: Fix missing clocks constraints
  dt-bindings: display: imx: convert fsl,dcu.txt to yaml format
  dt-bindings: timer: via,vt8500-timer: Convert to YAML
  dt-bindings: net: Convert Marvell Armada NETA and BM to DT schema
  dt-bindings: trivial-devices: Add undocumented hwmon devices
  dt-bindings: interrupt-controller: Convert apm,xgene1-msi to DT schema
  dt-bindings: gpu: mali-bifrost: Add Allwinner A523 compatible
  docs: dt: writing-schema: Document preferred order of properties
  docs: dt: writing-bindings: Document discouraged instance IDs
  docs: dt: writing-bindings: Document compatible and filename naming
  docs: dt: submitting-patches: Avoid 'YAML' in the subject and add an example
  MAINTAINERS: adjust file entry in INTEL STRATIX10 FIRMWARE DRIVERS
  docs: dt: writing-bindings: Consistently use single-whitespace
  docs: dt: writing-bindings: Express better expectations of "specific"
  ...
2025-07-29 10:57:58 -07:00
Linus Torvalds
137177af71 LICENSES update for 6.17-rc1
Here are some small changes to the LICENSES files, removing the physical
 address of the FSF as the old one was incorrect and they finally no
 longer have that listed in the license files.  These updates come
 directly from the FSF copies of the files, so they mirror what they want
 the files to look like.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCaIebbg8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ynz4wCeOMQBVbaruBXnMNBj/o5g4EEweGMAn3P0kI7M
 eEMzNjT846jW6vPCvEfo
 =PCUt
 -----END PGP SIGNATURE-----

Merge tag 'spdx-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx

Pull LICENSES update from Greg KH:
 "Here are some small changes to the LICENSES files, removing the
  physical address of the FSF as the old one was incorrect and they
  finally no longer have that listed in the license files.

  These updates come directly from the FSF copies of the files, so they
  mirror what they want the files to look like"

* tag 'spdx-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx:
  LICENSES: Replace the obsolete address of the FSF in the GFDL-1.2
  LICENSES: Replace the obsolete address of the FSF in the GFDL-1.1
  LICENSES: Replace the obsolete address of the FSF in the LGPL-2.1
  LICENSES: Replace the obsolete address of the FSF in the LGPL-2.0
  LICENSES: Replace the obsolete address of the FSF in the GPL-2.0
  LICENSES: Replace the obsolete address of the FSF in the GPL-1.0
2025-07-29 10:51:22 -07:00
Oliver Upton
6836e1f30f Documentation: KVM: Use unordered list for pre-init VGIC registers
The intent was to create a single column table, however the markup used
was actually for a header which led to docs build failures:

  Sphinx parallel build error:
  docutils.utils.SystemMessage: Documentation/virt/kvm/devices/arm-vgic-v3.rst:128: (SEVERE/4) Unexpected section title or transition.

Fix the issue by converting the attempted table to an unordered list.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Closes: https://lore.kernel.org/linux-next/20250729142217.0d4e64cd@canb.auug.org.au/
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Message-ID: <20250729152242.3232229-1-oliver.upton@linux.dev>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-07-29 13:43:50 -04:00
Linus Torvalds
4eee1520ea USB / Thunderbolt changes for 6.17-rc1
Here is the big set of USB and Thunderbolt driver changes for 6.17-rc1.
 
 Lots of little things in here, mostly all small cleanups and updates, no
 major new features this development cycle.  Stuff included in here is:
   - xhci minor tweaks for error handling
   - typec minor updates and a driver update
   - gadget driver api cleanups
   - unused function removals
   - unbind memory leak fixes
   - a few new device ids added
   - a few new devices supported for some drivers
   - other minor cleanups and changes
 
 All of these have been in linux-next with no reported issues, with the
 leak fixes being in the shortest amount of time, but they are "obviously
 correct" :)
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCaIeVLw8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+yn3RACgg394VU3ENwqvkh1iF95fVwVheJYAn08YUeoM
 98vPdogv4+kuC3B0TbiM
 =7pfy
 -----END PGP SIGNATURE-----

Merge tag 'usb-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

Pull USB / Thunderbolt updates from Greg KH:
 "Here is the big set of USB and Thunderbolt driver changes for
  6.17-rc1.

  Lots of little things in here, mostly all small cleanups and updates,
  no major new features this development cycle. Stuff included in here
  is:

   - xhci minor tweaks for error handling

   - typec minor updates and a driver update

   - gadget driver api cleanups

   - unused function removals

   - unbind memory leak fixes

   - a few new device ids added

   - a few new devices supported for some drivers

   - other minor cleanups and changes

  All of these have been in linux-next with no reported issues, with the
  leak fixes being in the shortest amount of time, but they are
  'obviously correct' :)"

* tag 'usb-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (100 commits)
  usb: musb: omap2430: clean up probe error handling
  usb: musb: omap2430: fix device leak at unbind
  usb: gadget: udc: renesas_usb3: fix device leak at unbind
  usb: dwc3: meson-g12a: fix device leaks at unbind
  usb: dwc3: imx8mp: fix device leak at unbind
  usb: musb: omap2430: enable compile testing
  usb: gadget: udc: renesas_usb3: drop unused module alias
  usb: xhci: print xhci->xhc_state when queue_command failed
  usb: atm: cxacru: Merge cxacru_upload_firmware() into cxacru_heavy_init()
  USB: serial: option: add Foxconn T99W709
  usb: core: add urb->sgt parameter description
  thunderbolt: Fix copy+paste error in match_service_id()
  usb: typec: ucsi: Update power_supply on power role change
  usb: typec: ucsi: psy: Set current max to 100mA for BC 1.2 and Default
  usb: typec: fusb302: cache PD RX state
  usb: typec: ucsi: yoga-c630: add DRM dependency
  usb: gadget : fix use-after-free in composite_dev_cleanup()
  usb: chipidea: imx: Add a missing blank line
  usb: gadget: f_uac1: replace scnprintf() with sysfs_emit()
  usb: usblp: clean up assignment inside if conditions
  ...
2025-07-29 10:17:10 -07:00
Paolo Bonzini
03b11982fa LoongArch KVM changes for v6.17
1. Simplify some KVM routines.
 2. Enhance in-kernel irqchip emulation.
 3. Add stat information with kernel irqchip.
 4. Add tracepoints for CPUCFG and CSR emulation exits.
 -----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCAA0FiEEzOlt8mkP+tbeiYy5AoYrw/LiJnoFAmh9+mMWHGNoZW5odWFj
 YWlAa2VybmVsLm9yZwAKCRAChivD8uImeieuD/4uH4t29BApsL+Qkdj9fUTtDaM2
 N2vspY0ObVkICJyNnwyVvxVVuT8LxVgM24mZWMRkJKEMh7kZswq2XCbV7d5gRbjH
 QEO1FAk/qje0UUbD2+a3eLWDWIUWC4hypQ++hOJ5v8M06RVfAYfopo5cXliIvjoE
 7nFd1XaB7OsqeDtG+izS/MW1ib8zpSryyLJ6HrDAns5+F2pEuBWa3jKsdb8USCtk
 3yuYV6Rs7KlGR7UlVf7FTd4SXG9uv6S0Tjd9mFrcEFCfHRDaxScCjKS1dRpGGVTf
 w5kwZ1qVR6fqrK0Y6QhdTEdQCs5FqjGFYJ1LL1EriRRb3P6ivxr2hUs92wAquTbq
 Q1kEJu8tVF24Rvpo4D8sM3M9tEDGqeakuYOgVC50GGoa1jssMlACytHnHsPcu3Mv
 pykt0EEATYAkMI47e9InKeAI0qUwDaWmhdPAtFCxUyL1Fg++vapa887AShlNpc9T
 vRQY492fym1udgASUZPx4KFOqiJLKg9BuWLiabvQ/tMgFVdj30X2MbnUU8bD2MCK
 eYTqHaWW6xulTqdT6kyFs2+VObwDPyRhwfyBc7aombimzUJGAXNGF1eV/jYReG18
 BQLfdn7X0ympclcNK2QICMwBS2QGus2QrqD9HNp4ePjxNJObczEPeXSUrTpN3/BJ
 6CdFESBRSPt00fLJWw==
 =pzt1
 -----END PGP SIGNATURE-----

Merge tag 'loongarch-kvm-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson into HEAD

LoongArch KVM changes for v6.17

1. Simplify some KVM routines.
2. Enhance in-kernel irqchip emulation.
3. Add stat information with kernel irqchip.
4. Add tracepoints for CPUCFG and CSR emulation exits.
2025-07-29 13:12:21 -04:00
Linus Torvalds
91e60731dd TTY / Serial driver update for 6.17-rc1
Here is the big set of TTY and Serial driver updates for 6.17-rc1.
 Included in here is the following types of changes:
   - another cleanup round from Jiri for the 8250 serial driver and some
     other tty drivers, things are slowly getting better with our apis
     thanks to this work.  This touched many tty drivers all over the
     tree.
   - qcom_geni_serial driver update for new platforms and devices
   - 8250 quirk handling fixups
   - dt serial binding updates for different boards/platforms
   - other minor cleanups and fixes
 
 All of these have been in linux-next with no reported issues.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCaIeWPw8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ymQHgCfR3KXFe7ElzXQqjJhtN/ej6IPijIAoI6k3g0m
 4UewNOIef9XpIAJ8zuoo
 =850o
 -----END PGP SIGNATURE-----

Merge tag 'tty-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty

Pull tty / serial driver updates from Greg KH:
 "Here is the big set of TTY and Serial driver updates for 6.17-rc1.
  Included in here is the following types of changes:

   - another cleanup round from Jiri for the 8250 serial driver and some
     other tty drivers, things are slowly getting better with our apis
     thanks to this work. This touched many tty drivers all over the
     tree.

   - qcom_geni_serial driver update for new platforms and devices

   - 8250 quirk handling fixups

   - dt serial binding updates for different boards/platforms

   - other minor cleanups and fixes

  All of these have been in linux-next with no reported issues"

* tag 'tty-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (79 commits)
  dt-bindings: serial: snps-dw-apb-uart: Allow use of a power-domain
  serial: 8250: fix panic due to PSLVERR
  dt-bindings: serial: samsung: add samsung,exynos2200-uart compatible
  vt: defkeymap: Map keycodes above 127 to K_HOLE
  vt: keyboard: Don't process Unicode characters in K_OFF mode
  serial: qcom-geni: Enable Serial on SA8255p Qualcomm platforms
  serial: qcom-geni: Enable PM runtime for serial driver
  serial: qcom-geni: move clock-rate logic to separate function
  serial: qcom-geni: move resource control logic to separate functions
  serial: qcom-geni: move resource initialization to separate function
  soc: qcom: geni-se: Enable QUPs on SA8255p Qualcomm platforms
  dt-bindings: qcom: geni-se: describe SA8255p
  dt-bindings: serial: describe SA8255p
  serial: 8250_dw: Fix typo "notifer"
  dt-bindings: serial: 8250: spacemit: set clocks property as required
  dt-bindings: serial: renesas: Document RZ/V2N SCIF
  serial: 8250_ce4100: Fix CONFIG_SERIAL_8250=n build
  tty: omit need_resched() before cond_resched()
  serial: 8250_ni: Reorder local variables
  serial: 8250_ni: Fix build warning
  ...
2025-07-29 10:11:01 -07:00
Linus Torvalds
1641684528 Staging changes for 6.17-rc1
Here is the "big" set of staging driver changes for 6.17-rc1.  That's in
 quotes as it really isn't all that big of a set of changes this
 development cycle at all.
 
 Major things that stand out are:
   - gpib cleanups and tweaks with the majority of the big issues now
     taken care of.  Odds are it will move out of staging/ in the next
     merge window if all goes well.
   - more constant cleanups and layer removals from the rtl8723bs driver.
     It's amazing how many layers deep they really are, all cleanups here
     are great to see
   - axis-fifo sysfs api removed and debugfs api added.  The sysfs api
     didn't work at all so obviously no one was using it.  Add the same
     information into debugfs as that's the proper place for it, and make
     it actually work.
   - Remaining changes is lots of small checkpatch cleanups, most of
     which seem to have come from a Debconf session where people were
     encouraged to submit their first kernel patch, a nice thing to see
     happen again.
 
 All of these have been in linux-next with no reported issues.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCaIeLgA8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ynt4wCeOogkFxYNKzePUcff7VCG+/q2v5UAnAtT/3dj
 Nj2+HBNZFEvGrC/WEU1T
 =CAgG
 -----END PGP SIGNATURE-----

Merge tag 'staging-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging

Pull staging updates from Greg KH:
 "Here is the "big" set of staging driver changes for 6.17-rc1. That's
  in quotes as it really isn't all that big of a set of changes this
  development cycle at all.

  Major things that stand out are:

   - gpib cleanups and tweaks with the majority of the big issues now
     taken care of. Odds are it will move out of staging/ in the next
     merge window if all goes well.

   - more constant cleanups and layer removals from the rtl8723bs
     driver. It's amazing how many layers deep they really are, all
     cleanups here are great to see

   - axis-fifo sysfs api removed and debugfs api added. The sysfs api
     didn't work at all so obviously no one was using it. Add the same
     information into debugfs as that's the proper place for it, and
     make it actually work.

   - Remaining changes is lots of small checkpatch cleanups, most of
     which seem to have come from a Debconf session where people were
     encouraged to submit their first kernel patch, a nice thing to see
     happen again.

  All of these have been in linux-next with no reported issues"

* tag 'staging-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (71 commits)
  staging: rtl8723bs: remove redundant semicolon in basic_types.h
  staging: gpib: Add init response codes for new ni-usb-hs+
  staging: rtl8723bs: DoIQK_8723B is empty
  staging: rtl8723bs: dm_CheckStatistics is empty
  staging: rtl8723bs: hw_var_port_switch is empty
  staging: rtl8723bs: _InitOtherVariable is empty
  staging: rtl8723bs: rtw_get_encrypt_decrypt_from_registrypriv is empty
  staging: rtl8723bs: rtl8723b_set_FwAoacRsvdPage_cmd is empty
  staging: rtl8723bs: CheckFwRsvdPageContent is empty
  staging: rtl8723bs: clean up redundant & parentheses
  staging: axis-fifo: add debugfs interface for dumping fifo registers
  staging: axis-fifo: remove sysfs interface
  staging: nvec: Fix incorrect null termination of battery manufacturer
  staging: gpib: fix typo
  staging: sm750fb: fix CamelCase variable naming
  staging: vme_user: fix spelling errors
  staging: rtl8723bs: remove unnecessary braces in rtl8723b_cmd
  staging: rtl8723bs: remove unnecessary commented code
  staging: rtl8723bs: add missing blank line after declaration
  staging: rtl8723bs: remove unnecessary comment separator lines
  ...
2025-07-29 10:03:10 -07:00
Linus Torvalds
0d5ec7919f Char / Misc / IIO / other driver updates for 6.17-rc1
Here is the big set of char/misc/iio and other smaller driver subsystems
 for 6.17-rc1.  It's a big set this time around, with the huge majority
 being in the iio subsystem with new drivers and dts files being added
 there.
 
 Highlights include:
   - IIO driver updates, additions, and changes making more code const
     and cleaning up some init logic
   - bus_type constant conversion changes
   - misc device test functions added
   - rust miscdevice minor fixup
   - unused function removals for some drivers
   - mei driver updates
   - mhi driver updates
   - interconnect driver updates
   - Android binder updates and test infrastructure added
   - small cdx driver updates
   - small comedi fixes
   - small nvmem driver updates
   - small pps driver updates
   - some acrn virt driver fixes for printk messages
   - other small driver updates
 
 All of these have been in linux-next with no reported issues.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCaIeYDg8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+yk3dwCdF6xoEVZaDkLM5IF3XKWWgdYxjNsAoKUy2kUx
 YtmVh4S0tMmugfeRGac7
 =3Wxi
 -----END PGP SIGNATURE-----

Merge tag 'char-misc-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc

Pull char / misc / IIO / other driver updates from Greg KH:
 "Here is the big set of char/misc/iio and other smaller driver
  subsystems for 6.17-rc1. It's a big set this time around, with the
  huge majority being in the iio subsystem with new drivers and dts
  files being added there.

  Highlights include:
   - IIO driver updates, additions, and changes making more code const
     and cleaning up some init logic
   - bus_type constant conversion changes
   - misc device test functions added
   - rust miscdevice minor fixup
   - unused function removals for some drivers
   - mei driver updates
   - mhi driver updates
   - interconnect driver updates
   - Android binder updates and test infrastructure added
   - small cdx driver updates
   - small comedi fixes
   - small nvmem driver updates
   - small pps driver updates
   - some acrn virt driver fixes for printk messages
   - other small driver updates

  All of these have been in linux-next with no reported issues"

* tag 'char-misc-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (292 commits)
  binder: Use seq_buf in binder_alloc kunit tests
  binder: Add copyright notice to new kunit files
  misc: ti_fpc202: Switch to of_fwnode_handle()
  bus: moxtet: Use dev_fwnode()
  pc104: move PC104 option to drivers/Kconfig
  drivers: virt: acrn: Don't use %pK through printk
  comedi: fix race between polling and detaching
  interconnect: qcom: Add Milos interconnect provider driver
  dt-bindings: interconnect: document the RPMh Network-On-Chip Interconnect in Qualcomm Milos SoC
  mei: more prints with client prefix
  mei: bus: use cldev in prints
  bus: mhi: host: pci_generic: Add Telit FN990B40 modem support
  bus: mhi: host: Detect events pointing to unexpected TREs
  bus: mhi: host: pci_generic: Add Foxconn T99W696 modem
  bus: mhi: host: Use str_true_false() helper
  bus: mhi: host: pci_generic: Add support for EM929x and set MRU to 32768 for better performance.
  bus: mhi: host: Fix endianness of BHI vector table
  bus: mhi: host: pci_generic: Disable runtime PM for QDU100
  bus: mhi: host: pci_generic: Fix the modem name of Foxconn T99W640
  dt-bindings: interconnect: qcom,msm8998-bwmon: Allow 'nonposted-mmio'
  ...
2025-07-29 09:52:01 -07:00
Lukas Wunner
c2f9de5e2d PCI: Move is_pciehp check out of pciehp_is_native()
pci_bridge_d3_possible() seeks to forbid runtime power management on:

* Non Hot-Plug Capable PCIe ports which are nevertheless ACPI slots
  (recognizable as: bridge->is_hotplug_bridge && !bridge->is_pciehp)

* Hot-Plug Capable PCIe ports for which platform firmware has not granted
  PCIe Native Hot-Plug control to the operating system
  (recognizable as: bridge->is_pciehp && !pciehp_is_native(bridge))

Somewhat confusingly, the check for is_hotplug_bridge is in
pci_bridge_d3_possible(), whereas the one for is_pciehp is in
pciehp_is_native().

For clarity, check is_pciehp directly in pci_bridge_d3_possible()
(and in the other caller of pciehp_is_native(), hotplug_is_native()).

Rephrase the code comment preceding these checks to no longer mention
"System Management Mode", which is an x86 term inappropriate in generic
PCI code.  Likewise no longer mention "Thunderbolt on non-Macs", because
there is nothing Thunderbolt-specific about these checks.  It used to be
the case that non-Macs relied on the platform for Thunderbolt tunnel
management and hotplug, but they've since moved to OS-native tunnel
management (as Macs always have), hence the code comment is no longer
accurate.

There is a subsequent check for is_hotplug_bridge further down in
pci_bridge_d3_possible().  Change the check to is_pciehp because any
ports matching "bridge->is_hotplug_bridge && !bridge->is_pciehp" are
already filtered out at the top of the function.

Do the same for another check in acpi_pci_bridge_d3(), which is called
from pci_bridge_d3_possible() via platform_pci_bridge_d3().

No functional change intended.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/18b2c2110ad0f27a34b189d793310b9c4f2f24a0.1752390102.git.lukas@wunner.de
2025-07-29 11:45:39 -05:00
Lukas Wunner
c6036c3394 PCI: pciehp: Use is_pciehp instead of is_hotplug_bridge
The PCIe hotplug driver calculates the depth of a nested hotplug port by
looking at the is_hotplug_bridge flag.  The depth is used as lockdep class
to tell hotplug ports apart.

The is_hotplug_bridge flag encompasses ACPI slots handled by the ACPI
hotplug driver, hence the calculated depth may be too high.  Avoid by
checking the is_pciehp flag instead.

This glitch likely has no user-visible impact:  ACPI slots typically only
exist at the Root Port level, not in nested hotplug hierarchies.  Also,
CONFIG_LOCKDEP is usually only used by developers.  So this is just for
the sake of correctness.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/59a097376a2bb493da9efd66fb196ae4b66f8a09.1752390102.git.lukas@wunner.de
2025-07-29 11:45:39 -05:00
Lukas Wunner
1d60796a62 PCI/portdrv: Use is_pciehp instead of is_hotplug_bridge
The PCIe port driver erroneously creates a subdevice for hotplug on ACPI
slots which are handled by the ACPI hotplug driver.

Avoid by checking the is_pciehp flag instead of is_hotplug_bridge when
deciding whether to create a subdevice.  The latter encompasses ACPI slots
whereas the former doesn't.

The superfluous subdevice has no real negative impact, it occupies memory
and interrupt resources but otherwise just sits there waiting for
interrupts from the slot that are never signaled.

Fixes: f841522283 ("PCI: Use cached copy of PCI_EXP_SLTCAP_HPC bit")
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: stable@vger.kernel.org # v4.7+
Link: https://patch.msgid.link/40d5a5fe8d40595d505949c620a067fa110ee85e.1752390102.git.lukas@wunner.de
2025-07-29 11:45:39 -05:00
Lukas Wunner
6cff20ce3b PCI/ACPI: Fix runtime PM ref imbalance on Hot-Plug Capable ports
pci_bridge_d3_possible() is called from both pcie_portdrv_probe() and
pcie_portdrv_remove() to determine whether runtime power management shall
be enabled (on probe) or disabled (on remove) on a PCIe port.

The underlying assumption is that pci_bridge_d3_possible() always returns
the same value, else a runtime PM reference imbalance would occur.  That
assumption is not given if the PCIe port is inaccessible on remove due to
hot-unplug:  pci_bridge_d3_possible() calls pciehp_is_native(), which
accesses Config Space to determine whether the port is Hot-Plug Capable.
An inaccessible port returns "all ones", which is converted to "all
zeroes" by pcie_capability_read_dword().  Hence the port no longer seems
Hot-Plug Capable on remove even though it was on probe.

The resulting runtime PM ref imbalance causes warning messages such as:

  pcieport 0000:02:04.0: Runtime PM usage count underflow!

Avoid the Config Space access (and thus the runtime PM ref imbalance) by
caching the Hot-Plug Capable bit in struct pci_dev.

The struct already contains an "is_hotplug_bridge" flag, which however is
not only set on Hot-Plug Capable PCIe ports, but also Conventional PCI
Hot-Plug bridges and ACPI slots.  The flag identifies bridges which are
allocated additional MMIO and bus number resources to allow for hierarchy
expansion.

The kernel is somewhat sloppily using "is_hotplug_bridge" in a number of
places to identify Hot-Plug Capable PCIe ports, even though the flag
encompasses other devices.  Subsequent commits replace these occurrences
with the new flag to clearly delineate Hot-Plug Capable PCIe ports from
other kinds of hotplug bridges.

Document the existing "is_hotplug_bridge" and the new "is_pciehp" flag
and document the (non-obvious) requirement that pci_bridge_d3_possible()
always returns the same value across the entire lifetime of a bridge,
including its hot-removal.

Fixes: 5352a44a56 ("PCI: pciehp: Make pciehp_is_native() stricter")
Reported-by: Laurent Bigonville <bigon@bigon.be>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220216
Reported-by: Mario Limonciello <mario.limonciello@amd.com>
Closes: https://lore.kernel.org/r/20250609020223.269407-3-superm1@kernel.org/
Link: https://lore.kernel.org/all/20250620025535.3425049-3-superm1@kernel.org/T/#u
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Rafael J. Wysocki <rafael@kernel.org>
Cc: stable@vger.kernel.org # v4.18+
Link: https://patch.msgid.link/fe5dcc3b2e62ee1df7905d746bde161eb1b3291c.1752390101.git.lukas@wunner.de
2025-07-29 11:45:10 -05:00
Masami Hiramatsu (Google)
1a967e92bf tracing: Remove "__attribute__()" from the type field of event format
With CONFIG_DEBUG_INFO_BTF=y and PAHOLE_HAS_BTF_TAG=y, `__user` is
converted to `__attribute__((btf_type_tag("user")))`. In this case,
some syscall events have it for __user data, like below;

/sys/kernel/tracing # cat events/syscalls/sys_enter_openat/format
name: sys_enter_openat
ID: 720
format:
        field:unsigned short common_type;       offset:0;       size:2; signed:0;
        field:unsigned char common_flags;       offset:2;       size:1; signed:0;
        field:unsigned char common_preempt_count;       offset:3;       size:1; signed:0;
        field:int common_pid;   offset:4;       size:4; signed:1;

        field:int __syscall_nr; offset:8;       size:4; signed:1;
        field:int dfd;  offset:16;      size:8; signed:0;
        field:const char __attribute__((btf_type_tag("user"))) * filename;      offset:24;      size:8; signed:0;
        field:int flags;        offset:32;      size:8; signed:0;
        field:umode_t mode;     offset:40;      size:8; signed:0;

Then the trace event filter fails to set the string acceptable flag
(FILTER_PTR_STRING) to the field and rejects setting string filter;

 # echo 'filename.ustring ~ "*ftracetest-dir.wbx24v*"' \
    >> events/syscalls/sys_enter_openat/filter
 sh: write error: Invalid argument
 # cat error_log
 [  723.743637] event filter parse error: error: Expecting numeric field
   Command: filename.ustring ~ "*ftracetest-dir.wbx24v*"

Since this __attribute__ makes format parsing complicated and not
needed, remove the __attribute__(.*) from the type string.

Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://lore.kernel.org/175376583493.1688759.12333973498014733551.stgit@mhiramat.tok.corp.google.com
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2025-07-29 12:30:41 -04:00
Paolo Bonzini
314b40b3b6 KVM/arm64 changes for 6.17, round #1
- Host driver for GICv5, the next generation interrupt controller for
    arm64, including support for interrupt routing, MSIs, interrupt
    translation and wired interrupts.
 
  - Use FEAT_GCIE_LEGACY on GICv5 systems to virtualize GICv3 VMs on
    GICv5 hardware, leveraging the legacy VGIC interface.
 
  - Userspace control of the 'nASSGIcap' GICv3 feature, allowing
    userspace to disable support for SGIs w/o an active state on hardware
    that previously advertised it unconditionally.
 
  - Map supporting endpoints with cacheable memory attributes on systems
    with FEAT_S2FWB and DIC where KVM no longer needs to perform cache
    maintenance on the address range.
 
  - Nested support for FEAT_RAS and FEAT_DoubleFault2, allowing the guest
    hypervisor to inject external aborts into an L2 VM and take traps of
    masked external aborts to the hypervisor.
 
  - Convert more system register sanitization to the config-driven
    implementation.
 
  - Fixes to the visibility of EL2 registers, namely making VGICv3 system
    registers accessible through the VGIC device instead of the ONE_REG
    vCPU ioctls.
 
  - Various cleanups and minor fixes.
 -----BEGIN PGP SIGNATURE-----
 
 iI0EABYIADUWIQSNXHjWXuzMZutrKNKivnWIJHzdFgUCaIezbRccb2xpdmVyLnVw
 dG9uQGxpbnV4LmRldgAKCRCivnWIJHzdFr/eAQDY5NIG5cR6ZcAWnPQLmGWpz2ou
 pq4Jhn9E/mGR3n5L1AEAsJpfLLpOsmnLBdwfbjmW59gGsa8k3i5tjWEOJ6yzAwk=
 =r+sp
 -----END PGP SIGNATURE-----

Merge tag 'kvmarm-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD

KVM/arm64 changes for 6.17, round #1

 - Host driver for GICv5, the next generation interrupt controller for
   arm64, including support for interrupt routing, MSIs, interrupt
   translation and wired interrupts.

 - Use FEAT_GCIE_LEGACY on GICv5 systems to virtualize GICv3 VMs on
   GICv5 hardware, leveraging the legacy VGIC interface.

 - Userspace control of the 'nASSGIcap' GICv3 feature, allowing
   userspace to disable support for SGIs w/o an active state on hardware
   that previously advertised it unconditionally.

 - Map supporting endpoints with cacheable memory attributes on systems
   with FEAT_S2FWB and DIC where KVM no longer needs to perform cache
   maintenance on the address range.

 - Nested support for FEAT_RAS and FEAT_DoubleFault2, allowing the guest
   hypervisor to inject external aborts into an L2 VM and take traps of
   masked external aborts to the hypervisor.

 - Convert more system register sanitization to the config-driven
   implementation.

 - Fixes to the visibility of EL2 registers, namely making VGICv3 system
   registers accessible through the VGIC device instead of the ONE_REG
   vCPU ioctls.

 - Various cleanups and minor fixes.
2025-07-29 12:27:40 -04:00
Laurentiu Mihalcea
65c6f742ab pwm: imx-tpm: Reset counter if CMOD is 0
As per the i.MX93 TRM, section 67.3.2.1 "MOD register update", the value
of the TPM counter does NOT get updated when writing MOD.MOD unless
SC.CMOD != 0. Therefore, with the current code, assuming the following
sequence:

	1) pwm_disable()
	2) pwm_apply_might_sleep() /* period is changed here */
	3) pwm_enable()

and assuming only one channel is active, if CNT.COUNT is higher than the
MOD.MOD value written during the pwm_apply_might_sleep() call then, when
re-enabling the PWM during pwm_enable(), the counter will end up resetting
after UINT32_MAX - CNT.COUNT + MOD.MOD cycles instead of MOD.MOD cycles as
normally expected.

Fix this problem by forcing a reset of the TPM counter before MOD.MOD is
written.

Fixes: 738a1cfec2 ("pwm: Add i.MX TPM PWM driver support")
Cc: stable@vger.kernel.org
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Link: https://lore.kernel.org/r/20250728194144.22884-1-laurentiumihalcea111@gmail.com
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
2025-07-29 17:51:27 +02:00
Baojun Xu
5dc50b111b ALSA: hda: Fix the wrong register was used for DVC of TAS2770
The wrong register was used for digital volume control of TAS2770,
The definition was changed, and usage was also updated.

Fixes: ab29b3460c ("ALSA: hda: Add TAS2770 support")
Signed-off-by: Baojun Xu <baojun.xu@ti.com>
Link: https://patch.msgid.link/20250729145849.55057-1-baojun.xu@ti.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2025-07-29 17:48:29 +02:00
Uwe Kleine-König
f21d136caf pwm: mediatek: Fix duty and period setting
The period generated by the hardware is

	(PWMDWIDTH + 1) << CLKDIV) / freq

according to my tests with a signal analyser and also the documentation.

The current algorithm doesn't consider the `+ 1` part and so configures
slightly too high periods. The same issue exists for the duty cycle
setting. So subtract 1 from both the register values for period and
duty cycle. If period is 0, bail out, if duty_cycle is 0, just disable
the PWM which results in a constant low output.

Fixes: caf065f8fd ("pwm: Add MediaTek PWM support")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/6d1fa87a76f8020bfe3171529b8e19baffceab10.1753717973.git.u.kleine-koenig@baylibre.com
Cc: stable@vger.kernel.org
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
2025-07-29 17:46:29 +02:00
Uwe Kleine-König
704d918341 pwm: mediatek: Handle hardware enable and clock enable separately
Stop handling the clocks in pwm_mediatek_enable() and
pwm_mediatek_disable(). This is a preparing change for the next commit
that requires that clocks and the enable bit are handled separately.

Also move these two functions a bit further up in the source file to
make them usable in pwm_mediatek_config(), which is needed in the next
commit, too.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/55c94fe2917ece152ee1e998f4675642a7716f13.1753717973.git.u.kleine-koenig@baylibre.com
Cc: stable@vger.kernel.org
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
2025-07-29 17:46:18 +02:00
Brigham Campbell
85c23f2890 drm: docs: Update task from drm TODO list
Update TODO item from drm documentation to contain more applicable
information regarding the removal of deprecated MIPI DSI functions and
no longer reference functions which have already been removed from the
kernel.

Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Brigham Campbell <me@brighamcampbell.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20250722015313.561966-5-me@brighamcampbell.com
2025-07-29 08:31:34 -07:00
Brigham Campbell
79b6bb18f8 drm: Remove unused MIPI write seq and chatty functions
Remove the deprecated mipi_dsi_generic_write_seq() and
mipi_dsi_generic_write_chatty() functions now that they are no longer
used.

Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Brigham Campbell <me@brighamcampbell.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20250722015313.561966-4-me@brighamcampbell.com
2025-07-29 08:28:58 -07:00
Brigham Campbell
a6adf47d30 drm/panel: jdi-lpm102a188a: Fix bug and clean up driver
Fix bug in unprepare() which causes the function's return value to be
that of the last mipi "enter sleep mode" command.

Update driver to use the "multi" variant of MIPI functions in order to
facilitate improved error handling and remove the panel's dependency on
deprecated MIPI functions.

Use the new mipi_dsi_dual macro to reduce code duplication.

Reviewed-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
Tested-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
Signed-off-by: Brigham Campbell <me@brighamcampbell.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20250722015313.561966-3-me@brighamcampbell.com
2025-07-29 08:28:41 -07:00
Brigham Campbell
d94a2a00d2 drm: Create mipi_dsi_dual* macros
Create mipi_dsi_dual, mipi_dsi_dual_dcs_write_seq_multi, and
mipi_dsi_dual_generic_write_seq_multi macros for panels which are driven
by two parallel serial interfaces. This allows for the reduction of code
duplication in drivers for these panels.

Remove mipi_dsi_dual_dcs_write_seq_multi definition from
panel-novatek-nt36523.c to avoid the duplicate definition. Make novatek
driver pass mipi_dsi_context struct as a pointer.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Brigham Campbell <me@brighamcampbell.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20250722015313.561966-2-me@brighamcampbell.com
2025-07-29 08:28:08 -07:00
Michal Wajdeczko
d6a0311c37 drm/xe/hw_engine_group: Don't use drm_warn to catch missed case
Since hwe->class is an enumeration we can rely on the compiler
to catch any unhandled engine class case at compile time thanks
to [-Werror=switch]. Any unexpected use of a special CLASS_MAX
enum case can be guarded by our xe_gt_assert() instead, which
will be compiled-out on the production builds.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Francois Dugast <francois.dugast@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Francois Dugast <francois.dugast@intel.com>
Link: https://lore.kernel.org/r/20250725090508.571-1-michal.wajdeczko@intel.com
2025-07-29 17:25:06 +02:00
Daeho Jeong
c8705cefce f2fs: add gc_boost_gc_greedy sysfs node
Add this to control GC algorithm for boost GC.

Signed-off-by: Daeho Jeong <daehojeong@google.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2025-07-29 15:02:36 +00:00
Daeho Jeong
1d4c5dbba1 f2fs: add gc_boost_gc_multiple sysfs node
Add a sysfs knob to set a multiplier for the background GC migration
window when F2FS Garbage Collection is boosted.

Signed-off-by: Daeho Jeong <daehojeong@google.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2025-07-29 15:02:33 +00:00
Fabrizio Castro
926406a85a
MAINTAINERS: Add entries for the RZ/V2H(P) RSPI
Add the MAINTAINERS entries for the Renesas RZ/V2H(P) RSPI
driver.

Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20250729145110.37258-1-fabrizio.castro.jz@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-07-29 15:59:12 +01:00
Romain Gantois
10dfd36f07 regulator: core: correct convergence check in regulator_set_voltage()
The logic in regulator_set_voltage() which checks for a non-convergence
condition on a stepped regulator is flawed.

regulator_set_voltage() checks if the error in target voltage has increased
or decreased, and returns -EWOULDBLOCK if the error has not decreased
enough. The correct non-convergence condition is:

new_delta - delta > -rdev->constraints->max_uV_step

or equivalently:

delta - new_delta < rdev->constraints->max_uV_step

But the currently used condition is:

new_delta - delta > rdev->constraints->max_uV_step

Which may cause an infinite loop if the voltage error doesn't converge.

Fix this by correcting the convergence condition.

Suggested-by: Jon Hunter <jonathanh@nvidia.com>
Fixes: d511206dc7 ("regulator: core: repeat voltage setting request for stepped regulators")
Signed-off-by: Romain Gantois <romain.gantois@bootlin.com>
Link: https://patch.msgid.link/20250729-b4-regulator-stepping-fix-v1-1-3f7b8c55d7d7@bootlin.com
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-07-29 14:56:39 +01:00
Zheng Yu
856db37592 jfs: fix metapage reference count leak in dbAllocCtl
In dbAllocCtl(), read_metapage() increases the reference count of the
metapage. However, when dp->tree.budmin < 0, the function returns -EIO
without calling release_metapage() to decrease the reference count,
leading to a memory leak.

Add release_metapage(mp) before the error return to properly manage
the metapage reference count and prevent the leak.

Fixes: a5f5e4698f ("jfs: fix shift-out-of-bounds in dbSplit")

Signed-off-by: Zheng Yu <zheng.yu@northwestern.edu>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
2025-07-29 08:34:57 -05:00
Steven Rostedt
a5e71638dd ktest.pl: Add new PATCHCHECK_SKIP option to skip testing individual commits
When testing a series of commits that also includes changes to the Linux
tools directory, it is useless to test the changes in tools as they may
not affect the kernel itself. Doing tests on the kernel for changes that
do not affect the kernel is a waste of time.

Add a PATCHCHECK_SKIP that takes a series of shas that will be skipped
while doing the individual commit tests.

For example, the runtime verification may have a series of commits like:

$ git log --abbrev-commit --pretty=oneline fac5493251a6~1..HEAD
3d3800b4f7 rv: Remove rv_reactor's reference counter
3d3c376118 rv: Merge struct rv_reactor_def into struct rv_reactor
24cbfe18d5 rv: Merge struct rv_monitor_def into struct rv_monitor
b0c08dd534 rv: Remove unused field in struct rv_monitor_def
58d5f0d437 (debiantesting-x86-64/trace/rv/core) rv: Return init error when registering monitors
560473f2e2 verification/rvgen: Organise Kconfig entries for nested monitors
9efcf59082 tools/dot2c: Fix generated files going over 100 column limit
1160ccaf77 tools/rv: Stop gracefully also on SIGTERM
f60227f344 tools/rv: Do not skip idle in trace
f3735df628 verification/rvgen: Do not generate unused variables
6fb37c2a27 verification/rvgen: Generate each variable definition only once
8cfcf9b0e9 verification/rvgen: Support the 'next' operator
fac5493251 rv: Allow to configure the number of per-task monitor

Where the first commit touches the kernel followed by a series of commits
that do not, and ends with commits that do. Instead of having to add
multiple patchcheck tests to handle the gaps, just include the commits
that should not be tested:

$ git log --abbrev-commit --pretty=oneline fac5493251a6~1..HEAD |
  grep -e verification -e tools/ | cut -d' ' -f1 |
  while read a ; do echo -n "$a "; done
560473f2e2 9efcf59082 1160ccaf77 f60227f344 f3735df628 6fb37c2a27 8cfcf9b0e9

Then set PATCHCHECK_SKIP to that, and those commits will be skipped.

 PATCHCHECK_SKIP = 560473f2e2 9efcf59082 1160ccaf77 f60227f344 f3735df628 6fb37c2a27 8cfcf9b0e9

Cc: John 'Warthog9' Hawley <warthog9@kernel.org>
Cc: Dhaval Giani <dhaval.giani@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/20250725112153.1dd06b84@gandalf.local.home
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2025-07-29 09:30:08 -04:00
Paolo Bonzini
beafd7ecf2 Merge tag 'kvm-x86-sev-6.17' of https://github.com/kvm-x86/linux into HEAD
KVM SEV cache maintenance changes for 6.17

 - Drop a superfluous WBINVD (on all CPUs!) when destroying a VM.

 - Use WBNOINVD instead of WBINVD when possible, for SEV cache maintenance,
   e.g. to minimize collateral damage when reclaiming memory from an SEV guest.

 - When reclaiming memory from an SEV guest, only do cache flushes on CPUs that
   have ever run a vCPU for the guest, i.e. don't flush the caches for CPUs
   that can't possibly have cache lines with dirty, encrypted data.
2025-07-29 08:36:46 -04:00
Paolo Bonzini
a10accaef4 Merge tag 'x86_core_for_kvm' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into HEAD
Immutable branch for KVM tree to put the KVM patches from

https://lore.kernel.org/r/20250522233733.3176144-1-seanjc@google.com

ontop.

Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
2025-07-29 08:36:46 -04:00
Paolo Bonzini
0097f9df99 Merge tag 'kvm-x86-svm-6.17' of https://github.com/kvm-x86/linux into HEAD
KVM SVM changes for 6.17

Drop KVM's rejection of SNP's SMT and single-socket policy restrictions, and
instead rely on firmware to verify that the policy can actually be supported.
Don't bother checking that requested policy(s) can actually be satisfied, as
an incompatible policy doesn't put the kernel at risk in any way, and providing
guarantees with respect to the physical topology is outside of KVM's purview.
2025-07-29 08:36:45 -04:00
Paolo Bonzini
b4733cd5be Merge tag 'kvm-x86-selftests-6.17' of https://github.com/kvm-x86/linux into HEAD
KVM selftests changes for 6.17

 - Fix a comment typo.

 - Verify KVM is loaded when getting any KVM module param so that attempting to
   run a selftest without kvm.ko loaded results in a SKIP message about KVM not
   being loaded/enabled, versus some random parameter not existing.

 - SKIP tests that hit EACCES when attempting to access a file, with a "Root
   required?" help message.  In most cases, the test just needs to be run with
   elevated permissions.
2025-07-29 08:36:44 -04:00
Paolo Bonzini
89400f0687 Merge tag 'kvm-x86-apic-6.17' of https://github.com/kvm-x86/linux into HEAD
KVM local APIC changes for 6.17

Extract many of KVM's helpers for accessing architectural local APIC state
to common x86 so that they can be shared by guest-side code for Secure AVIC.
2025-07-29 08:36:44 -04:00