Commit graph

1,426,898 commits

Author SHA1 Message Date
Bartosz Golaszewski
4cfe6cdba5 intel-gpio for v6.19-1
* Replace min_t() by min() to avoid cutting upper bits and do type checking
 
 gpiolib: acpi: use min() instead of min_t()
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEqaflIX74DDDzMJJtb7wzTHR8rCgFAmkliTIACgkQb7wzTHR8
 rCgseg/9GLm1WQnkbfIaJ1EdjQF3nqpsxvsmrh+aS/eqzV6TSSKGpqBFWKXBJ6oB
 DZhBk8gGFsptdtgWu+4A2g4wzziGG3syVKmu0FkAdtG9Aep94cY1eaf+KjP913FV
 XYrzYFtwSDOABS7QoA/VogGv7+Ceww8WGfOmyzuEvAf0b3zeHNOEjEB8WH56O3j2
 0doJ+yfFrIJjKR3Cxld4S1u0f4Aezi5nF21Bec1aiTH4BOuJdPBfdpE7Gjt2/Hn2
 TAliHTfGeqJAcdTHt7GJYYy4EAXuzyBj6XKdsvphYck62ToRCgqKLG3dbSyOmiD7
 YzDC/viyBkRpsKh0zKIzFtSAfoJpz+3EfGKktHyULCGI0y3fPHzFZOcGZb6fIHo2
 ZjMuuhVRieckEjGK8MJxp97qa5X3oEs7yEQdGanTg/t8v3kYTk/hX0BCwL6p7WXe
 pzafkqDclYwa5vUbLQhFabxCTCXlpC00UutEOr7trd9PUBrm4asU0uEd0xralMU/
 XLVuJb0fW/76+TKUAG8RWdJDMxVImu6UANFkaWgxV8Cck+TEdU/4pSTbktV78Fpn
 W6IofRcuhc6ODw8R4dZHVNZLaNDNvHH+R/0sk/ZfpdfHYFzkrYhr/aIgHP5ldrh0
 wKvyL0KUHwMdjvIApEAlPjxe+P3PcQrcq31lm7qApsj0j8qzMKA=
 =JZZc
 -----END PGP SIGNATURE-----

Merge tag 'intel-gpio-v6.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel into gpio/for-next

intel-gpio for v6.19-1

* Replace min_t() by min() to avoid cutting upper bits and do type checking

gpiolib: acpi: use min() instead of min_t()
2025-11-25 14:04:05 +01:00
Arnd Bergmann
c0401dcbca Some additional sane defaults for the oldish rk3368 soc.
-----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmkbmvcQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgVYxB/kBH1cFa7Epi7l2tUtu4A8wpNUpxUtSyto7
 8VlPbL4wa6KUzTnZFG7cQGvqIeaQnVTFAEYAPXH/UQiYNyS6MJZdxp7+E29GGS58
 /EKrjE1J4HAfJAaJ3W4YTDISYdjcE9dgb1SPeAAvSY1+ecBCj6GyGU7wdEGK8bQL
 snNEL4HIoOzow9GCQIx+dHOZ7FEJbv0MbQQU9pJEuziAQl6Z7O+fSJoKKktjJpXR
 hQDuRGFwXr0L9QyK6qmUP0bxvVd/Zky8O7yl2G16Y3PWfjvOiNlIfiyubMFC78ps
 AoQvTMcshKey25nVL/YOeYe2qy+KGhTBnlPks2SYDiyaoBuT/Fh/
 =pv4F
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmklqRQACgkQmmx57+YA
 GNm1iA//WETh19gVbS6+w7J6wIec7u+bm7dTCns609NkwnK0z+Glj8ZyfetNCZGG
 6L2MgrUeo2Gw7Cfy6WdRVjdqWkMrBb5vpkAcd+Jn1Vh5x8yHIxIu5oBHXOWMjlz6
 F1+/PYZo5umcnKc3nppvVR9tQYp5jihMY4o7kWGRHJLWSJxZGYQPajunLeKZId5H
 q5ysW/IB2dMHUnq0zzn4SIkUY4LiIxxgQO5GvLWNzl2P9QQSoOlGPofJEeCurfHt
 gx0AwMT/Wamb6DcK8/P1HzQjHYBRkmmrmLoMqIgmM2E0fc35kTDKuWiuHytIEl27
 E/8oHRLTJu9gsB0/Dva8Z6ivmt+yhxeRuTWuDsBe4Nac2ONFaQ9EawLPWatMEmiR
 SSObiovAd57ub3U6aNw29VkAcVjykfyxWbhckfhDwgqSY5CPDWDqMezIeeoLvRP8
 TomzEYYEsgsRuzV6dGOfeTm7oPcnxRJyQIu5RgTkTRdCYr2EI8XMsy5sMCZaWdKw
 Qp97qGIeHdkpIu02UCUPX1vwoLW+s+Gdana2P8cwUKv/uIm+ItiiPSACcb0hnXhL
 9Mb+vY+gARZ0k3HRAEe6u+YWVOkJF5UAGIg8HKJ64qcFYkAqVkDBa3TCFF5YBlen
 rWoyKvkdJyYtg/xobKaPvLRxdi7fdtFA2O5/JXCbwPKSORcvbfU=
 =LdjL
 -----END PGP SIGNATURE-----

Merge tag 'v6.19-rockchip-drivers1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/drivers

Some additional sane defaults for the oldish rk3368 soc.

* tag 'v6.19-rockchip-drivers1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  soc: rockchip: grf: Add select correct PWM implementation on RK3368
  soc: rockchip: grf: Set pwm2/xin32k pad default to xin32k for rk3368

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-25 14:02:26 +01:00
Arnd Bergmann
3d497bf8ef Qualcomm driver updates for v6.19
Support for hardware-keymanager v1 support for wrapped keys is introduce
 in the ICE driver.
 
 Support for the new Kaanapali mobile platform is added to last-level
 cache controller, pd-mapper, and UBWC drivers.
 
 UBWC driver gains support for the Monaco and Glymur platforms.
 
 The PMIC GLINK driver is extended to handle the differences found in
 targets where the related firmware runs on the SoCCP.
 
 Support for running on targets without initialized SMEM is provided, by
 reworking the SMEM driver to differentiate between "not yet probed" and
 "probed but there was no SMEM". An unwanted WARN_ON() that triggered if
 clients asked for a SMEM item beyond the currently running system's
 limit, was removed, to allow new use cases to gracefully fail on old
 targets.
 
 The Qualcomm socinfo driver is extended with support for version 20
 through 23 and support for providing version information about more than
 32 remote processors. Identifiers for QCS6490 and SM8850 are also added.
 
 Additionally, a number of smaller bug fixes and cleanups in PBS, OCMEM,
 GSBI, TZMEM, and MDT-loader are included.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmkbfWsACgkQCx85Pw2Z
 rcX64xAAx8b+PBGtPI7BSWzmybVbcwVrodul4z8Gtd++0wVXHOGVwiiBJ5tw3QI4
 R58P2ENgRyBqdzH94G8JZ0XfdJ+qP0qYjhiEvr9jJ+aeuOyhDzlFQ6iSdCt/gG3g
 wBnb8IyqVfLwj6t6erUHOCXv1Wa5GSdbj48cYaAcy2VMZK45UIiQDhPuoI75ZEFK
 UBTRQkFiMTlOvr0bQznA3QALZwFCFRzkXbIuvYKCBmoWjgqKRekEFtm+PNGPfTUw
 NKhITaI6UEjJN22uGrSNSzomuGLgfSsAPSIoty2E9c1FYglNsiRLLj80wJHqTK96
 zIkTFsR0gJAcC91l7Vj+jAbXBTLZadzXBzlUdLSqeTUJ43RuTspNgWgV+5U+mwPE
 NxUBEatrPx2tg9pxbnVXdphBEaOhq57XM/nL3wxRLdUw41dJ9hzFG6ieYWSbhPlh
 6lx+aJOc2FsBpDkvnEWdkAxSOxnwWLdo+ICCljS/DDUKfBkZkgDX4yacL1QTBWP6
 kuLDpmYUQNHlJ0Al/P4YuiOqMVoDz8ZwNHZoXRLPFZsI8rZEjMGoCqLvziOcQKS2
 3kwXlC2ds/Q2DtYa/8ASNg/Laby9+5dSZndZWsL9jW8Uj4CgpZkZIa5VKXiQLOOz
 bgVcJIClbw/+Tg6RH7WDveF3FVKJMu+LoVxogIrhNImBWh60fbA=
 =Eh2U
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmklqIwACgkQmmx57+YA
 GNl7/g/+M182m6/83pKU2JZyJQvYMG6r5p3TATOeXmjvsE/0dSbWpJd9/OA+Y0MM
 VuGJTWLYGcWHl8xZTKakxS/H5Ngmrt+CdwEx9ei6uwLnCLLuXwJy+XhHC6yIM9Ec
 7fJBCOUQHxHD/uHlHmu7qb9YpsNYnTfSE9Aj77lwokZGTdPG3yk/wD04EfDIYR0e
 jYziEJSmcVljQvOusfPycNkEVbimqLAApnwdLthab/hepI0wzdtNJ8hmUYZGlqyt
 vXtCYRZa8Y00MSdYvGKBJY33mTGNI71W+XJ0tYeetLh2vf9pA80ACxmP2D8FdsW0
 3EVz/tWRwYAFVr/CmknXbhY35jXy3H4h83KFLLOwItGwaXfAk1hCCTMbNzMONIpU
 +yA91hxvWaqNsYvRZUISxKaU9r29rcxpJ7PuehNp9/+f4sAqggjabE7SVt6vaQX2
 Dz/PF2iEfm+lzd4+KEz6gx0Q8zNetQJRvy9pihGjBwnbtJJCBXUv+SG7BoCvYlY5
 s1281QcEtTDF120VHmZ1HhOrRdsihK2pkGFQUTC6MsRHFECbKAk92otbfNlEY7J2
 KdFDdf3cPswDuzNoSYNyUkO1UgWZkLLJbctfaYmd4afzxsLmdRmPMvkO1sy8O823
 lRnls0Pukauld+NrppsCkle7DL4vOhX3GdACQrrmjBPDbKEfIA4=
 =N2C2
 -----END PGP SIGNATURE-----

Merge tag 'qcom-drivers-for-6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers

Qualcomm driver updates for v6.19

Support for hardware-keymanager v1 support for wrapped keys is introduce
in the ICE driver.

Support for the new Kaanapali mobile platform is added to last-level
cache controller, pd-mapper, and UBWC drivers.

UBWC driver gains support for the Monaco and Glymur platforms.

The PMIC GLINK driver is extended to handle the differences found in
targets where the related firmware runs on the SoCCP.

Support for running on targets without initialized SMEM is provided, by
reworking the SMEM driver to differentiate between "not yet probed" and
"probed but there was no SMEM". An unwanted WARN_ON() that triggered if
clients asked for a SMEM item beyond the currently running system's
limit, was removed, to allow new use cases to gracefully fail on old
targets.

The Qualcomm socinfo driver is extended with support for version 20
through 23 and support for providing version information about more than
32 remote processors. Identifiers for QCS6490 and SM8850 are also added.

Additionally, a number of smaller bug fixes and cleanups in PBS, OCMEM,
GSBI, TZMEM, and MDT-loader are included.

* tag 'qcom-drivers-for-6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (31 commits)
  soc: qcom: mdt_loader: rename 'firmware' parameter of qcom_mdt_load()
  soc: qcom: mdt_loader: merge __qcom_mdt_load() and qcom_mdt_load_no_init()
  soc: qcom: socinfo: Add reserve field to support future extension
  soc: qcom: socinfo: Add support for new fields in revision 20
  dt-bindings: firmware: qcom,scm: Document SCM on Kaanapali SOC
  soc: qcom: socinfo: add support to extract more than 32 image versions
  soc: qcom: smem: drop the WARN_ON() on SMEM item validation
  soc: qcom: ubwc: Add config for Kaanapali
  soc: qcom: socinfo: Add SoC ID for QCS6490
  dt-bindings: arm: qcom,ids: Add SoC ID for QCS6490
  soc: qcom: ice: Add HWKM v1 support for wrapped keys
  soc: qcom: smem: better track SMEM uninitialized state
  err.h: add INIT_ERR_PTR() macro
  soc: qcom: smem: fix hwspinlock resource leak in probe error paths
  dt-bindings: soc: qcom,aoss-qmp: Document the Glymur AOSS side channel
  dt-bindings: soc: qcom,aoss-qmp: Document the Kaanapali AOSS channel
  soc: qcom: ubwc: Add QCS8300 UBWC cfg
  dt-bindings: firmware: qcom,scm: Document Glymur scm
  soc: qcom: socinfo: Add SM8850 SoC ID
  dt-bindings: arm: qcom,ids: Add SoC ID for SM8850
  ...

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-25 14:00:49 +01:00
Arnd Bergmann
a677d87689 ti-sysc: allow OMAP2 and OMAP4 timers to be reserved on AM33xx
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmkbWfwACgkQWTcYmtP7
 xmXeBA//R1xu3LaZv+iqu+9Nz4RIlyvsVjXgak3mkoRTYNFBHATPdVDbU6HB4MFU
 9tjYxZkrTt8qDH0enVc4pSY3BraiVNebGktJrdt2FtCoKMDDFtXIembuQFqf0wEK
 0d7HO2wwssMgVq+ZG0Sp/P9Fj/Fj0Gqqm6cUbELATno2au9vV5E4Uj1tyPPH3hI3
 54yX/Srvm0SGlPUGAO+8TbLxsPcTVGvsXlzGugKatrhSc/rPkBxJh4YybVLUBCaK
 pqdaGJ+6BDPs73UCelABDgtAB/4b5Y4NwnzFJkgPuHnk+MyMlbOosFbJhZ3E4zKj
 lUubdbkYwxbmGvL3pLyKnf9FFyiAju8uHiYzX7jKg05MNNZtGkYxkbPVQpwNm/FD
 cCQnlhVPeR8E6StMjtVzP7u8WZUhmt5vdVy2OXlMenQuUuasVzHRby182QQx2DqA
 f/ElKBqZmCyg0O6meEp12Y9Z/2Sq/3dmjcx/ITymhwHZphkAZ64D6fcDt6xRuWfX
 Of++3/YlLZ6p8xu0zwYco4WoRTJFzw4tMAa9mhXuQ47BVnZIvJD0GcK9OLlRCcpF
 f8BWQv//nE6OsC8H7ErpxPvVG77O7Kf9faS+t/AYR47fhn0MZN1XOoDryAQMhT7E
 WgF434iE9LxsVSWRgkmSSZg15WgpG6xVk/JxF1QCs18tlHzKEj0=
 =H8j5
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmklqCUACgkQmmx57+YA
 GNke3BAAjAbuEMn5aeNvazpTaz2vXMxfRfoaYtwFeOi5Oy8O5vv+OEPNzsWI0gg0
 c142JdowL1XIPBNtuJr41oJKbxGMB4bhN8JuTAT8CcKSbnQl5UD1RuGpSoOBExfC
 468bbBhLjtu4g8lCrvn3CzTWIlnzrGQxBk2VG6oCm1PIvZoeEm5Dv9VueoYtGHzE
 BMJ02lxHK/LJOAtCV6JDer3QjvIlLyqOGSde4jrOmhpPqmgMFA4NLS2424+nI78P
 LMcrmGka8QNkE5QhttqaNAzNq7DU+7+L4f7xBVuo27h74xZ9Ar2zOxgVyRz+9dsj
 SzvObe7GotaYuM0m1dOoqpD1UFIBPJben+m9eNGvt59v1QHl42NnDoz4e+EwLNgG
 bZaNvYYI+RQq29M4UPQdwU5MWZJfrrRXMC0Z4fbo389gG5hO9U4tF9SsEJQgFwRV
 /ZkD1Ce6E1hwjtcGOfr8B83sjC8AABVdk/M68WKhD7Me/gympIsBhMFOsFJxw4sP
 IZC9wI66KHUKSWUk8Rd4gpfY0+IMuf35ArL4spbowwHldoHsRQm5m0UPMxOY8wwm
 YKuq/8msQn267f4q6FXKmS5H1YbD2pWufNgSJ7meNFAVENdfi0HozN8ut5L/+HxY
 qm3ibpOXKm6wGIr+InftjybPoJDSA8wMFLmrjNYnwngipAdG3OY=
 =aDTD
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v6.19/drivers-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/drivers

ti-sysc: allow OMAP2 and OMAP4 timers to be reserved on AM33xx

* tag 'omap-for-v6.19/drivers-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  ti-sysc: allow OMAP2 and OMAP4 timers to be reserved on AM33xx

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-25 13:59:13 +01:00
Ulf Hansson
e2bbd950eb mmc: Merge branch fixes into next
Merge the mmc fixes for v6.18-rc[n] into the next branch, to allow them to
get tested together with the new mmc changes that are targeted for v6.19.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2025-11-25 13:58:46 +01:00
Randy Dunlap
2d45db6326 backlight: lp855x: Fix lp855x.h kernel-doc warnings
Add a missing struct short description and a missing leading " *" to
lp855x.h to avoid kernel-doc warnings:

Warning: include/linux/platform_data/lp855x.h:126 missing initial short
 description on line:
 * struct lp855x_platform_data
Warning: include/linux/platform_data/lp855x.h:131 bad line:
   Only valid when mode is PWM_BASED.

Fixes: 7be865ab86 ("backlight: new backlight driver for LP855x devices")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Reviewed-by: Daniel Thompson (RISCstar) <danielt@kernel.org>
Link: https://patch.msgid.link/20251111060916.1995920-1-rdunlap@infradead.org
Signed-off-by: Lee Jones <lee@kernel.org>
2025-11-25 12:54:32 +00:00
Junjie Cao
25c2b404cd dt-bindings: leds: backlight: Add Awinic AW99706 backlight
Add Awinic AW99706 backlight binding documentation.

Signed-off-by: Junjie Cao <caojunjie650@gmail.com>
Reviewed-by: Daniel Thompson (RISCstar) <danielt@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20251109032240.3422503-2-caojunjie650@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
2025-11-25 12:54:27 +00:00
Junjie Cao
147b38a5ad backlight: aw99706: Add support for Awinic AW99706 backlight
Add support for Awinic AW99706 backlight, which can be found in
tablet and notebook backlight, one case is the Lenovo Legion Y700
Gen4. This driver refers to the official datasheets and android
driver, they can be found in [1].

[1] https://www.awinic.com/en/productDetail/AW99706QNR

Signed-off-by: Junjie Cao <caojunjie650@gmail.com>
Tested-by: Pengyu Luo <mitltlatltl@gmail.com>
Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
Reviewed-by: Daniel Thompson (RISCstar) <danielt@kernel.org>
Link: https://patch.msgid.link/20251109032240.3422503-3-caojunjie650@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
2025-11-25 12:54:14 +00:00
Luca Ceresoli
9341d6698f backlight: led-bl: Add devlink to supplier LEDs
LED Backlight is a consumer of one or multiple LED class devices, but
devlink is currently unable to create correct supplier-producer links when
the supplier is a class device. It creates instead a link where the
supplier is the parent of the expected device.

One consequence is that removal order is not correctly enforced.

Issues happen for example with the following sections in a device tree
overlay:

    // An LED driver chip
    pca9632@62 {
        compatible = "nxp,pca9632";
        reg = <0x62>;

	// ...

        addon_led_pwm: led-pwm@3 {
            reg = <3>;
            label = "addon:led:pwm";
        };
    };

    backlight-addon {
        compatible = "led-backlight";
        leds = <&addon_led_pwm>;
        brightness-levels = <255>;
        default-brightness-level = <255>;
    };

In this example, the devlink should be created between the backlight-addon
(consumer) and the pca9632@62 (supplier). Instead it is created between the
backlight-addon (consumer) and the parent of the pca9632@62, which is
typically the I2C bus adapter.

On removal of the above overlay, the LED driver can be removed before the
backlight device, resulting in:

    Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010
    ...
    Call trace:
     led_put+0xe0/0x140
     devm_led_release+0x6c/0x98

Another way to reproduce the bug without any device tree overlays is
unbinding the LED class device (pca9632@62) before unbinding the consumer
(backlight-addon):

  echo 11-0062 >/sys/bus/i2c/drivers/leds-pca963x/unbind
  echo ...backlight-dock >/sys/bus/platform/drivers/led-backlight/unbind

Fix by adding a devlink between the consuming led-backlight device and the
supplying LED device, as other drivers and subsystems do as well.

Fixes: ae232e45ac ("backlight: add led-backlight driver")
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Reviewed-by: Daniel Thompson (RISCstar) <danielt@kernel.org>
Reviewed-by: Herve Codina <herve.codina@bootlin.com>
Tested-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Link: https://patch.msgid.link/20250519-led-backlight-add-devlink-to-supplier-class-device-v6-1-845224aeb2ce@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org>
2025-11-25 12:54:10 +00:00
Jisheng Zhang
747528729c mmc: sdhci-of-dwcmshc: Promote the th1520 reset handling to ip level
Commit 27e8fe0da3 ("mmc: sdhci-of-dwcmshc: Prevent stale command
interrupt handling") clears pending interrupts when resetting
host->pending_reset to ensure no pending stale interrupts after
sdhci_threaded_irq restores interrupts. But this fix is only added for
th1520 platforms, in fact per my test, this issue exists on all
dwcmshc users, such as cv1800b, sg2002, and synaptics platforms.

So promote the above reset handling from th1520 to ip level. And keep
reset handling on rk, sg2042 and bf3 as is, until it's confirmed that
the same issue exists on these platforms too.

Fixes: 017199c284 ("mmc: sdhci-of-dwcmshc: Add support for Sophgo CV1800B and SG2002")
Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2025-11-25 13:44:51 +01:00
Sarthak Garg
b1f856b172 mmc: sdhci-msm: Avoid early clock doubling during HS400 transition
According to the hardware programming guide, the clock frequency must
remain below 52MHz during the transition to HS400 mode.

However,in the current implementation, the timing is set to HS400 (a
DDR mode) before adjusting the clock. This causes the clock to double
prematurely to 104MHz during the transition phase, violating the
specification and potentially resulting in CRC errors or CMD timeouts.

This change ensures that clock doubling is avoided during intermediate
transitions and is applied only when the card requires a 200MHz clock
for HS400 operation.

Signed-off-by: Sarthak Garg <sarthak.garg@oss.qualcomm.com>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2025-11-25 13:39:46 +01:00
Ulf Hansson
8a4a16f86e MAINTAINERS: Add Shawn Lin as co-maintainer for dw_mmc drivers
Shawn offered to help with the Synposys Designware MMC/SD/SDIO drivers,
let's add him as a co-maintainer.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Shawn Lin <shawn.lin@rock-chips.com> > Signed-off-by: Ulf
2025-11-25 13:38:20 +01:00
Sebastian Reichel
69cc9d4075 mmc: sdhci-of-dwcmshc: Fix command queue support for RK3576
When I added command queue engine (CQE) support for the Rockchip eMMC
controller, I missed that RK3576 has a separate platform data struct.
While things are working fine on RK3588 (I tested the ROCK 5B) and
the suspend issue is fixed on the RK3576 (I tested the Sige5), this
results in stability issues. By also adding the necessary hooks for
the RK3576 platform the following problems can be avoided:

[   15.606895] mmc0: running CQE recovery
[   15.616189] mmc0: running CQE recovery
[...]
[   25.911484] mmc0: running CQE recovery
[   25.926305] mmc0: running CQE recovery
[   25.927468] mmc0: running CQE recovery
[...]
[   26.255719] mmc0: running CQE recovery
[   26.257162] ------------[ cut here ]------------
[   26.257581] mmc0: cqhci: spurious TCN for tag 31
[   26.258034] WARNING: CPU: 0 PID: 0 at drivers/mmc/host/cqhci-core.c:796 cqhci_irq+0x440/0x68c
[   26.263786] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.18.0-rc6-gd984ebbf0d15 #1 PREEMPT
[   26.264561] Hardware name: ArmSoM Sige5 (DT)
[...]
[   26.272748] Call trace:
[   26.272964]  cqhci_irq+0x440/0x68c (P)
[   26.273296]  dwcmshc_cqe_irq_handler+0x54/0x88
[   26.273689]  sdhci_irq+0xbc/0x1200
[   26.273991]  __handle_irq_event_percpu+0x54/0x1d0
[...]

Note that the above problems do not necessarily happen with every boot.

Reported-by: Adrian Hunter <adrian.hunter@intel.com>
Closes: https://lore.kernel.org/linux-rockchip/01949bc9-4873-498b-ac7d-f008393ccc4c@intel.com/
Fixes: fda1e0af7c ("mmc: sdhci-of-dwcmshc: Add command queue support for rockchip SOCs")
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2025-11-25 13:37:21 +01:00
Zenon Xiu
4b7a59fa70 Documentation/arm64: Fix the typo of register names
The register name 'HWFGWTR_EL2' and 'HWFGRTR_EL2' is wrong, should be 'HFGWTR_EL2' and 'HFGRTR_EL2'.
Find the register description on arm website here,
https://developer.arm.com/documentation/ddi0601/2025-09/AArch64-Registers/HFGWTR-EL2--Hypervisor-Fine-Grained-Write-Trap-Register
https://developer.arm.com/documentation/ddi0601/2025-09/AArch64-Registers/HFGRTR-EL2--Hypervisor-Fine-Grained-Read-Trap-Register?lang=en

Signed-off-by: Zenon Xiu <zenonxiu@outlook.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2025-11-25 12:26:31 +00:00
Marc Zyngier
155f8d4ef0 ACPI: GTDT: Get rid of acpi_arch_timer_mem_init()
Since 0f67b56d84 ("clocksource/drivers/arm_arch_timer_mmio: Switch
over to standalone driver"), acpi_arch_timer_mem_init() is unused.

Remove it.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: Hanjun Guo <guohanjun@huawei.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Rafael J. Wysocki <rafael@kernel.org>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Mark Rutland <mark.rutland@arm.com>
Acked-by: Hanjun Guo <guohanjun@huawei.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2025-11-25 11:55:13 +00:00
Daniel Golle
081156ce13 net: phy: mxl-gpy: fix link properties on USXGMII and internal PHYs
gpy_update_interface() returns early in case the PHY is internal or
connected via USXGMII. In this case the gigabit master/slave property
as well as MDI/MDI-X status also won't be read which seems wrong.
Always read those properties by moving the logic to retrieve them to
gpy_read_status().

Fixes: fd8825cd8c ("net: phy: mxl-gpy: Add PHY Auto/MDI/MDI-X set driver for GPY211 chips")
Fixes: 311abcdddc ("net: phy: add support to get Master-Slave configuration")
Suggested-by: "Russell King (Oracle)" <linux@armlinux.org.uk>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Link: https://patch.msgid.link/71fccf3f56742116eb18cc070d2a9810479ea7f9.1763650701.git.daniel@makrotopia.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-11-25 12:46:52 +01:00
Gui-Dong Han
82fca3d8a4 atm/fore200e: Fix possible data race in fore200e_open()
Protect access to fore200e->available_cell_rate with rate_mtx lock in the
error handling path of fore200e_open() to prevent a data race.

The field fore200e->available_cell_rate is a shared resource used to track
available bandwidth. It is concurrently accessed by fore200e_open(),
fore200e_close(), and fore200e_change_qos().

In fore200e_open(), the lock rate_mtx is correctly held when subtracting
vcc->qos.txtp.max_pcr from available_cell_rate to reserve bandwidth.
However, if the subsequent call to fore200e_activate_vcin() fails, the
function restores the reserved bandwidth by adding back to
available_cell_rate without holding the lock.

This introduces a race condition because available_cell_rate is a global
device resource shared across all VCCs. If the error path in
fore200e_open() executes concurrently with operations like
fore200e_close() or fore200e_change_qos() on other VCCs, a
read-modify-write race occurs.

Specifically, the error path reads the rate without the lock. If another
CPU acquires the lock and modifies the rate (e.g., releasing bandwidth in
fore200e_close()) between this read and the subsequent write, the error
path will overwrite the concurrent update with a stale value. This results
in incorrect bandwidth accounting.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
Signed-off-by: Gui-Dong Han <hanguidong02@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20251120120657.2462194-1-hanguidong02@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-11-25 12:39:26 +01:00
Paolo Abeni
f98e3ca2e4 Merge branch 'net-dsa-microchip-fix-resource-releases-in-error-path'
Bastien Curutchet says:

====================
net: dsa: microchip: Fix resource releases in error path

I worked on adding PTP support for the KSZ8463. While doing so, I ran
into a few bugs in the resource release process that occur when things go
wrong arount IRQ initialization.

This small series fixes those bugs.

The next series, which will add the PTP support, depend on this one.

Signed-off-by: Bastien Curutchet (Schneider Electric) <bastien.curutchet@bootlin.com>
---
Bastien Curutchet (Schneider Electric) (5):
      net: dsa: microchip: common: Fix checks on irq_find_mapping()
      net: dsa: microchip: ptp: Fix checks on irq_find_mapping()
      net: dsa: microchip: Don't free uninitialized ksz_irq
      net: dsa: microchip: Free previously initialized ports on init failures
      net: dsa: microchip: Fix symetry in ksz_ptp_msg_irq_{setup/free}()

 drivers/net/dsa/microchip/ksz_common.c | 31 +++++++++++++++----------------
 drivers/net/dsa/microchip/ksz_ptp.c    | 22 +++++++++-------------
 2 files changed, 24 insertions(+), 29 deletions(-)
---
base-commit: 09652e543e809c2369dca142fee5d9b05be9bdc7
change-id: 20251031-ksz-fix-db345df7635f

Best regards,
====================

Link: https://patch.msgid.link/20251120-ksz-fix-v6-0-891f80ae7f8f@bootlin.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-11-25 12:32:43 +01:00
Bastien Curutchet (Schneider Electric)
d0b8fec8ae net: dsa: microchip: Fix symetry in ksz_ptp_msg_irq_{setup/free}()
The IRQ numbers created through irq_create_mapping() are only assigned
to ptpmsg_irq[n].num at the end of the IRQ setup. So if an error occurs
between their creation and their assignment (for instance during the
request_threaded_irq() step), we enter the error path and fail to
release the newly created virtual IRQs because they aren't yet assigned
to ptpmsg_irq[n].num.

Move the mapping creation to ksz_ptp_msg_irq_setup() to ensure symetry
with what's released by ksz_ptp_msg_irq_free().
In the error path, move the irq_dispose_mapping to the out_ptp_msg label
so it will be called only on created IRQs.

Cc: stable@vger.kernel.org
Fixes: cc13ab18b2 ("net: dsa: microchip: ptp: enable interrupt for timestamping")
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Bastien Curutchet (Schneider Electric) <bastien.curutchet@bootlin.com>
Link: https://patch.msgid.link/20251120-ksz-fix-v6-5-891f80ae7f8f@bootlin.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-11-25 12:32:41 +01:00
Bastien Curutchet (Schneider Electric)
0f80e21bf6 net: dsa: microchip: Free previously initialized ports on init failures
If a port interrupt setup fails after at least one port has already been
successfully initialized, the gotos miss some resource releasing:
- the already initialized PTP IRQs aren't released
- the already initialized port IRQs aren't released if the failure
occurs in ksz_pirq_setup().

Merge 'out_girq' and 'out_ptpirq' into a single 'port_release' label.
Behind this label, use the reverse loop to release all IRQ resources
for all initialized ports.
Jump in the middle of the reverse loop if an error occurs in
ksz_ptp_irq_setup() to only release the port IRQ of the current
iteration.

Cc: stable@vger.kernel.org
Fixes: c9cd961c0d ("net: dsa: microchip: lan937x: add interrupt support for port phy link")
Signed-off-by: Bastien Curutchet (Schneider Electric) <bastien.curutchet@bootlin.com>
Link: https://patch.msgid.link/20251120-ksz-fix-v6-4-891f80ae7f8f@bootlin.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-11-25 12:32:41 +01:00
Bastien Curutchet (Schneider Electric)
25b62cc5b2 net: dsa: microchip: Don't free uninitialized ksz_irq
If something goes wrong at setup, ksz_irq_free() can be called on
uninitialized ksz_irq (for example when ksz_ptp_irq_setup() fails). It
leads to freeing uninitialized IRQ numbers and/or domains.

Use dsa_switch_for_each_user_port_continue_reverse() in the error path
to iterate only over the fully initialized ports.

Cc: stable@vger.kernel.org
Fixes: cc13ab18b2 ("net: dsa: microchip: ptp: enable interrupt for timestamping")
Signed-off-by: Bastien Curutchet (Schneider Electric) <bastien.curutchet@bootlin.com>
Link: https://patch.msgid.link/20251120-ksz-fix-v6-3-891f80ae7f8f@bootlin.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-11-25 12:32:41 +01:00
Bastien Curutchet (Schneider Electric)
9e059305be net: dsa: microchip: ptp: Fix checks on irq_find_mapping()
irq_find_mapping() returns a positive IRQ number or 0 if no IRQ is found
but it never returns a negative value. However, during the PTP IRQ setup,
we verify that its returned value isn't negative.

Fix the irq_find_mapping() check to enter the error path when 0 is
returned. Return -EINVAL in such case.

Cc: stable@vger.kernel.org
Fixes: cc13ab18b2 ("net: dsa: microchip: ptp: enable interrupt for timestamping")
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Bastien Curutchet (Schneider Electric) <bastien.curutchet@bootlin.com>
Link: https://patch.msgid.link/20251120-ksz-fix-v6-2-891f80ae7f8f@bootlin.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-11-25 12:32:41 +01:00
Bastien Curutchet (Schneider Electric)
7b3c09e166 net: dsa: microchip: common: Fix checks on irq_find_mapping()
irq_find_mapping() returns a positive IRQ number or 0 if no IRQ is found
but it never returns a negative value. However, on each
irq_find_mapping() call, we verify that the returned value isn't
negative.

Fix the irq_find_mapping() checks to enter error paths when 0 is
returned. Return -EINVAL in such cases.

CC: stable@vger.kernel.org
Fixes: c9cd961c0d ("net: dsa: microchip: lan937x: add interrupt support for port phy link")
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Bastien Curutchet (Schneider Electric) <bastien.curutchet@bootlin.com>
Link: https://patch.msgid.link/20251120-ksz-fix-v6-1-891f80ae7f8f@bootlin.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-11-25 12:32:41 +01:00
Kai-Heng Feng
7526183cfd net: aquantia: Add missing descriptor cache invalidation on ATL2
ATL2 hardware was missing descriptor cache invalidation in hw_stop(),
causing SMMU translation faults during device shutdown and module removal:
[   70.355743] arm-smmu-v3 arm-smmu-v3.5.auto: event 0x10 received:
[   70.361893] arm-smmu-v3 arm-smmu-v3.5.auto:  0x0002060000000010
[   70.367948] arm-smmu-v3 arm-smmu-v3.5.auto:  0x0000020000000000
[   70.374002] arm-smmu-v3 arm-smmu-v3.5.auto:  0x00000000ff9bc000
[   70.380055] arm-smmu-v3 arm-smmu-v3.5.auto:  0x0000000000000000
[   70.386109] arm-smmu-v3 arm-smmu-v3.5.auto: event: F_TRANSLATION client: 0001:06:00.0 sid: 0x20600 ssid: 0x0 iova: 0xff9bc000 ipa: 0x0
[   70.398531] arm-smmu-v3 arm-smmu-v3.5.auto: unpriv data write s1 "Input address caused fault" stag: 0x0

Commit 7a1bb49461 ("net: aquantia: fix potential IOMMU fault after
driver unbind") and commit ed4d81c4b3 ("net: aquantia: when cleaning
hw cache it should be toggled") fixed cache invalidation for ATL B0, but
ATL2 was left with only interrupt disabling. This allowed hardware to
write to cached descriptors after DMA memory was unmapped, triggering
SMMU faults. Once cache invalidation is applied to ATL2, the translation
fault can't be observed anymore.

Add shared aq_hw_invalidate_descriptor_cache() helper and use it in both
ATL B0 and ATL2 hw_stop() implementations for consistent behavior.

Fixes: e54dcf4bba ("net: atlantic: basic A2 init/deinit hw_ops")
Tested-by: Carol Soto <csoto@nvidia.com>
Signed-off-by: Kai-Heng Feng <kaihengf@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20251120041537.62184-1-kaihengf@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-11-25 12:15:12 +01:00
Jacky Chou
e3daf0e7fe dt-bindings: net: aspeed: add AST2700 MDIO compatible
Add "aspeed,ast2700-mdio" compatible to the binding schema with a fallback
to "aspeed,ast2600-mdio".

Although the MDIO controller on AST2700 is functionally the same as the
one on AST2600, it's good practice to add a SoC-specific compatible for
new silicon. This allows future driver updates to handle any 2700-specific
integration issues without requiring devicetree changes or complex
runtime detection logic.

For now, the driver continues to bind via the existing
"aspeed,ast2600-mdio" compatible, so no driver changes are needed.

Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
Link: https://patch.msgid.link/20251120-aspeed_mdio_ast2700-v2-1-0d722bfb2c54@aspeedtech.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-11-25 12:11:47 +01:00
Arnd Bergmann
0363169ac7 TI SoC driver updates for v6.19
- ti_sci: Add Partial-IO poweroff support and sys_off handler integration
 - ti_sci: Gate IO isolation programming on firmware capability flag
 - ti_sci: cleanup by replacing ifdeffery in PM ops with pm_sleep_ptr() macro
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmkbH5kACgkQ3bWEnRc2
 JJ3/mA/7BvQ1eDOFjouB/l+YjYDuD+y0P/LRwLv1L5lROX95EbaGD7dyAdZJ6Yyw
 ih2HbWtZvzF8WgcKLFKrzSxhefSvUPOlisyMCWa2tUF4OVW3zRgCXI9DPJeE6nJK
 jxzwPz53G7KKReMlOmvwz225HGaPxPojQs7WQldx/nWVB9+Vlg0Nz7z5gEfUgHJj
 5/ysx4sAgWZrDoZvHMaU5FTT6zvcmH42W9f513A6pI4mrlyREO/OaxnNEe6jhH9O
 sebqKX9xvIOnpPjpC3i6gtT22fYZ5uXlcDla7GNWkHhflY4g2lJo4QEYcAC0hskM
 ps/9tO7zeV/nBg8WkjmiibyDFScVbXWNeWrL6H9WxO5wAc1/kVwd5KH6TtTAyIcf
 ijog5ykuwRgLZHoEzmCZMsBHpRK5xpRa6rVADVpKl9Z3vHHfyZQc5rqx4AWSiU6t
 zLB0Iuonzi4FFkBhtdhYmVTAEb9D7tfL6vRsrpzi+ogFe1pvJQpXjYbXArv8hnfI
 ofqiyo6h9+/MM2xpGkOako3GsXTC+94Unr/3Dcbu04PeByEClK8fq6BTrGYFH5dA
 +wIda9TZOlf6IsRobZLlOc1DeeiMBnmrzmYwx76/B89ABj0VotbVFYG8DQ5H7fys
 /AgvB5U6MypGgBzvfnhWbl4S/EHOVPRVRgCijGSRqDhJrzgjR9o=
 =4Ap0
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIyBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmklorUACgkQmmx57+YA
 GNmIsA/4g45AA3I30tf9xelPhQsg9JuTWiqgqbGt1gHS2fIafpS5cqDUcx7RDTi5
 AM9Q+EQ6c1pmpJLSU9qM9y7V1GXt7fsghz6bJDjWD3Ee5+ky+x0LkHQRxGUIeLTy
 K5t0C8jGnU6JexXCz5KH2kEA+7uaooaaXD1zWwviJ4P0M6by+Jo2PqEKj6Nj3YwL
 Xvz0vsJzZn1cRFrnuickUzEy+SuRfdI3egY0H6Sj+UdDXhyQ47GfC6A84zmpqT95
 ZGWmRC132s0VY1JB6d5TMsWgTZdzQE9xmyip2xrKAqR7kdViWiiWTlv+o3MPUkfx
 qWGPDhUQHb15IKp8KThnW4VHt+jR6cao8LldepVMPVHd4Jgq53tpknZ6i46f1LaV
 E0dVUPYKZi72BAePkDA0Is6c+GkTJrxiPh6mlZ1Vd9kv1b9OWmh2i+93O6tXYg2M
 dko+Iqiq/FHbYJJIWW67bWkzHr/0r2JtEU/ZdVWWMw5FMUl6X7zD1zkT8zS3CV7N
 /3R0gnPpsW+bSw8sRWDuoQi2QAZkJT+qiRmEFUwpxvForTRbRXGTqN3U255AxIG0
 3YlY5evsFV4H05VEjCqh3rEmWoqMqUr/vibe3Q3QEHfa61Y7WLzHotljGk7+bNk7
 IW0npsNst31TfdV4ID9QbsZ8EQvA/dL4f+2/fBb5T13BHbwAjw==
 =0KD+
 -----END PGP SIGNATURE-----

Merge tag 'ti-driver-soc-for-v6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/drivers

TI SoC driver updates for v6.19

- ti_sci: Add Partial-IO poweroff support and sys_off handler integration
- ti_sci: Gate IO isolation programming on firmware capability flag
- ti_sci: cleanup by replacing ifdeffery in PM ops with pm_sleep_ptr() macro

* tag 'ti-driver-soc-for-v6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
  firmware: ti_sci: Partial-IO support
  firmware: ti_sci: Support transfers without response
  firmware: ti_sci: Set IO Isolation only if the firmware is capable
  firmware: ti_sci: Replace ifdeffery by pm_sleep_ptr() macro

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-25 11:33:10 +01:00
Arnd Bergmann
16e8af6c03 i.MX drivers update for 6.19:
- A series from Peng Fan to to improve i.MX SCU firmware drivers
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmkbDRkACgkQUFdYWoew
 fM4P0Qf7BNHm+UMhOtNsKpydwY6D5IqFt1NlN6x95IAKOX6A1BrF55og5A61YVdi
 G9vW8PtTG3jo4UwBJj9HKgSDyew1iPVfXHOpLw8/6d7D5swIqNXoQw7TPIWu/1B5
 Jp9Vt3JCJGSxMXd8UW5gh/j9TONbMEghhHlp0C+evCtGZBnDpX4S/dKkpajkh55r
 WDYJYwuFFcY6xdmULPe419ggHlMxbG4/JvA27HzlOdPJUvEsz6tw5qaWgQOlPoZm
 lurKgaubtgpFkvsR8pF0yVg82ZVsGHtuliNh3ODUcVDTIACjF493BlYBNVe2DRSb
 JPato2KOYbJVCkBgEfo408C8zjAh+g==
 =nbkK
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmklhb8ACgkQmmx57+YA
 GNmXuA//bpO26LLMBWg7+QOYPPqYxl2xA8k5LNQTJuXm5ZgtPZrcl7z+TTUYo7lD
 3+2DYAa2O9fm9QOav8l82jteb+VaPiKDpJ+F3kD1TtuNtvKUWDxev6ncGTDY2Jfv
 DrEuecZiVT75ZqcIx5o94BuSiqzk5NcJi0wd2x4e3F+YtACEqou3giAortWcjaTn
 h9+j9X0MWR8jKGLq+qWr2KL1sJDpqeAFNaRgailuDzRbvA0RRRE6JwQo2bl7yNiv
 BsaMizpnLP3O8JU1swFWPGzzMBgi9R0RlASg4Z2X0UZjsqtR82hDhUoVFteE4hlx
 qRAf2ZQfiyYOFmNRf8vzGSrEItYNHWBsHaP9FGurO8N0gEpPNai38feiND+spwLb
 d30R5qcjfD+goKDPnLKuEnZ00Sa/ZiCR7X2jNEURgYL8yVABxiDRvZ/wKi1ZPgVG
 mPIh+2QCl2VB2pOAnMnJRXAjeAgDCT0KGREptRIm5d7Ti7CDwy7Ne27JfhMzKx2S
 4jqVnDU6Sn1/GeCgc3Y7IXkQWb2ZEombEM/sUiPZU9jkKsru//1bjS2d9Tbc7Uc7
 FVitD1oxC/9AAhUCP3rZ9qd8orwYn18BKGZcO1imXEQepkRQpvgVmw+6h9Rz/bv1
 BMKkbbmD/peHIaytNmKq7wtjDQDw+K6/wJxgoVudvM3do6RVPas=
 =3ZOr
 -----END PGP SIGNATURE-----

Merge tag 'imx-drivers-6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/drivers

i.MX drivers update for 6.19:

- A series from Peng Fan to to improve i.MX SCU firmware drivers

* tag 'imx-drivers-6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  firmware: imx: scu: Use devm_mutex_init
  firmware: imx: scu: Suppress bind attrs
  firmware: imx: scu: Update error code
  firmware: imx: scu-irq: Remove unused export of imx_scu_enable_general_irq_channel
  firmware: imx: scu-irq: Set mu_resource_id before get handle
  firmware: imx: scu-irq: Init workqueue before request mbox channel
  firmware: imx: scu-irq: Free mailbox client on failure at imx_scu_enable_general_irq_channel()
  firmware: imx: scu-irq: fix OF node leak in

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-25 11:32:27 +01:00
Arnd Bergmann
e7ec4df222 Allwinner driver changes for 6.19
Just one cleanup change that is part of tree wide cleanup of redundant
 pm_runtime_mark_last_busy() calls.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAmkZfWMQHHdlbnNAa2Vy
 bmVsLm9yZwAKCRA4mlQhnA8kMOgsEAClgjHeKwclck1jmiauM8iFjCmtwuRDJHW3
 45wPa88K15ZoloxgIZuBLgslwvr6hb+HVjZhyyt3558yyycmU1VU9+Q8mgRiBu6v
 di3FcJhiYjU77+woHzxxseOJVm8vm+OopEO9wFwSB8CwJzdqgpnLI7yQQ9LE0NIW
 SjuN1aKxg2kh0x9TzRediA9wvn/N0M93YDc9b9QzJk4faxntnymIyhm6JlOBNrLF
 ZnkqkpJ1Tlrk5FytXZ2vepCSTKun/v8HK9iUuLkbgBFEe5OarmpdhH8eDIiDPOnc
 IqplNiUHjDw/rqrMQKXiN4qmLP+kK3dOkRrcyhS1pxXzZOlpQ+ylS4xF8PyzUB8u
 7U6hgOctYfHJSwC769p3yjQTypaZj/f6HBQhHaXUvI19kYivuNiAVFMt4DnVZ8EL
 QYhZi5l7T7KlTODeITL6QLWVGGPRT5kc6YivSsJwpjuIeTUkXPmOjas1orp9y2Pr
 R+aOo7ybCRf3MgIgC3QBWnzcGa5c+Yij2Vf9btFPcls6MO+eSf2a3A+YCPse4law
 XqwJAs3DbCsq81zPAfCizy7YRiX7MYuP6xgo+mYBICI5s+l0suBisuEdT7LLVB9Q
 mvEwVTKR9GCpppdbsFrN7V/Cn+jyqSXYbFbY3L42O7yGJddfoD0MuIrkastW1tlP
 Wo+G2AnD9Q==
 =X4bH
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmklhZgACgkQmmx57+YA
 GNlLRRAAqy4g6OoOpbM2+BFoz93ywblI03pDUCRmbf+FSVETVAAwkpk1RAgF6WnH
 Z3s62qaTpN+fAk/w9Ro+XKYnXTO8PB0xIf68batfsHQlqxxXVN8tRTSBufI45TMr
 AFQeIDuKkmY8ZZxa18p0FgpOs+i6M65flkyOq1Wtx/ai1abJF8f/y1Cop3zXqZty
 Adh4Jw20Lk+o9jd8qzSCnjmCPWBK0REHDNP51cySSXQbTKBc8AkeQzIu3GD2Tfdb
 oj6yLhjyod8LtDeVjWbM9sG0Zq9E/y6UY8OI+NO4S0n9ZzZYi4pjLnJZi3xMECGX
 pnh2By1tSNDX+l2XxZoubJiTbTzhRE49Fdpaie0RjRPNOXoHpD5H1GMoaz12eqnO
 fC3PgbknsNHINVFrCoJD87AhhU1rfnWp7ipo0DD85unHDb1X9/qJoaxdt+7dtdHC
 mrYho5p8X1d8fxRCWWR86jjGObgTE9wE4YhQwSn3WC2yKPe9v9wmHeF5CWllxvqK
 gngRHVmP9WhGGS7adFaZNsAsgh6bDVWjhHfPkustZpLzMZ/qjzFNhdZvI8J89L1o
 /BXb40Mr3pYv2JzbNODAxRziTz5oN5AsXKFewvzLeG1TV6EUp5PUmVcavhOK0/Wg
 GXDwFGuPZXq2lI8WMORLZLtv7WBrgmjY0E2GtV0H0SBz8Utx/uo=
 =ucy4
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-drivers-for-6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/drivers

Allwinner driver changes for 6.19

Just one cleanup change that is part of tree wide cleanup of redundant
pm_runtime_mark_last_busy() calls.

* tag 'sunxi-drivers-for-6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  bus: sunxi-rsb: Remove redundant pm_runtime_mark_last_busy() calls

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-25 11:26:00 +01:00
Bartosz Golaszewski
194832dcb1 string: use __attribute__((nonnull())) in strends()
The arguments of strends() must not be NULL so annotate the function
with the nonnull attribute.

Suggested-by: Kees Cook <kees@kernel.org>
Link: https://lore.kernel.org/r/20251118-strends-follow-up-v1-2-d3f8ef750f59@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2025-11-25 11:22:08 +01:00
Thomas Zimmermann
63c971af40 drm/fb-helper: Allocate and release fb_info in single place
Move the calls to drm_fb_helper_alloc_info() from drivers into a
single place in fbdev helpers. Allocates struct fb_info for a new
framebuffer device. Then call drm_fb_helper_single_fb_probe() to
create an fbdev screen buffer. Also release the instance on errors
by calling drm_fb_helper_release_info().

Simplifies the code and fixes the error cleanup for some of the
drivers.

Regular release of the struct fb_info instance still happens in
drm_fb_helper_fini() as before.

v2:
- remove error rollback in driver implementations (kernel test robot)
- initialize info in TTM implementation (kernel test robot)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Christian König <christian.koenig@amd.com> # radeon
Acked-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> # msm
Acked-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patch.msgid.link/20251027081245.80262-1-tzimmermann@suse.de
2025-11-25 11:02:43 +01:00
Malaya Kumar Rout
16e802667e tools/thermal/thermal-engine: Fix format string bug in thermal-engine
The error message in the daemon() failure path uses %p format specifier
without providing a corresponding pointer argument, resulting in undefined
behavior and printing garbage values.

Replace %p with %m to properly print the errno error message, which is
the intended behavior when daemon() fails.

This fix ensures proper error reporting when daemonization fails.

Signed-off-by: Malaya Kumar Rout <mrout@redhat.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://patch.msgid.link/20251124104401.374856-1-mrout@redhat.com
2025-11-25 11:00:28 +01:00
Arnd Bergmann
aee7ea4681 soc/tegra: Changes for v6.19-rc1
A couple of small fixes across the board: ACPI support on FUSE no longer
 exposes duplicate SoC information, speedo IDs for Tegra210 are updated,
 some comments see typo fixes or kerneldoc additions. Finally, support
 for USB wake events is added on Tegra234, which allow these systems to
 resume from suspend on USB activity.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmkYO7YACgkQ3SOs138+
 s6GjLhAAtZYYBEib28eSySwVdXp7EJj4HZadp0c54h0Q7UUOUkj6Wcvly7H9Tds6
 qaIc+LpakgDbIJXfYS1uEe1L69QqR0BhUrLPxQFxJB/QDJOsqt7LGrCAV9ylQWSM
 K6hD9/+vFpri4hPajM51kuyuZO7a5Df5keooq1/jQyVJ1I6N19m2NR1IygrO/wEt
 gY271o64eFL0gsUX4rjB+N9DrWHVON8f8O9NIEvdKYF5Zkg5/PY+y6KKkZhpf38H
 0J4yo8+EQObObx9RVvcy3wJ9Xq49P+aWMxXeP64VlcRhyXiiTGnIIplAoYvhOzNv
 zqLF7R4YhmV+DLIEgw4MAnVVR59lRZKcNaLbd0Uq9uaeKazvg5hUZdOAU92Bxp0N
 nRNbkeXekE0KSMTQtAd3Chu8Qukbjs+KtT9EUJhtPOLOp7yB7M1IpfGMbQ4bB8+0
 mHmzA2atEcC1e0l7dhhfwyjG5+BnV8wcVvSOSmO+uRyKbuSXM1XiRPBXXfO3dAfY
 wPDqGMhUIonPRt9mmCYVWruBRGC+dwcdzIFURsHFFNjBdzFD4ksTnBBsaDWr0RxH
 Zy5AYssL/DB7ivjzj7OMotKkHS/fnY4CV4E1b/67ecCeLHhnAL2ljE+a7YE1EDuO
 fZKDySQ/pYTAWtT5EV1uauDScOHC6icV+oton4zoq5bkCh3wdew=
 =qeBh
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmklgCIACgkQmmx57+YA
 GNmvEQ//ae9ERAzSzw4iW+HIdYKy3rCZvE6uayruQilYRB9c4PbpcLa3L9c9yj1R
 BFskUE9SBTBOtH+fRteS1Y/DugzC/8AiZ0TnwZ7b/2ynsTOCy/+5WlFYMUGGOauP
 qCrwRwbxVDN0OQD8avfqgAfiahvRz7mfDAmJ4jCqNwwTwJqsOl820WSZlOgUl3cX
 F3wGBKDc2ggcNNYbFarJQRLGV8yPF1o++w4JqUbPhz7wThYp0q12l4uTFm766GpM
 O3JhH8bqeVRrmU0oyOQjXQNFJ/36egcR3yIvrLf97XMAkDPNXuW6+zRLfDF1jZE/
 A6Wr2gHBya2pUxayGYNqitcCYDBUxjG3NluHYDGWBmbh7TGXO8MPWP2Qyw3hDzxi
 Jcv6ObNt3+MVZzQIn5xR+8lxIWCHb51CRywMbNuQGcpu3/+gFBuP2S3kWOI4UhrL
 miMqkKi2OuUi1JoRKxkvC3mKDFmM8Oq2qVxidirAXKfwVj7Uksd9xpRX9reRa8Z0
 SaEQKr+RwWXKTumct8aVaPVtXVLhDaYiNATypyqR3YQ0CI1uRAlAdvMZRX6QLTn0
 lncBmN79svBtawBhZbSZtJHdqVtdKPWjgTiV8UW5CpNUevSNbMwVN3Q5DVnNjzD9
 xV135iOl8GfptFFS4gqO2Loca1tClPDv8qHIXG8KPOE0MCppr9w=
 =Eh4e
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-6.19-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

soc/tegra: Changes for v6.19-rc1

A couple of small fixes across the board: ACPI support on FUSE no longer
exposes duplicate SoC information, speedo IDs for Tegra210 are updated,
some comments see typo fixes or kerneldoc additions. Finally, support
for USB wake events is added on Tegra234, which allow these systems to
resume from suspend on USB activity.

* tag 'tegra-for-6.19-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  soc/tegra: pmc: Add USB wake events for Tegra234
  soc/tegra: pmc: Document tegra_pmc.syscore field
  soc/tegra: pmc: Don't fail if "aotag" is not present
  soc/tegra: fuse: speedo-tegra210: Add SoC speedo 2
  soc/tegra: fuse: speedo-tegra210: Update speedo IDs
  soc/tegra: Resolve a spelling error in the tegra194-cbb.c
  soc/tegra: fuse: Do not register SoC device on ACPI boot

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-25 10:49:10 +01:00
Christian König
ac364014fd dma-buf: cleanup dma_fence_describe v3
The driver and timeline name are meaningless for signaled fences.

Drop them and also print the context number.

v2: avoid the calls when the BO is already signaled.
v3: use same format as trace points for context and seqno.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Link: https://lore.kernel.org/r/20251113145332.16805-2-christian.koenig@amd.com
2025-11-25 10:46:55 +01:00
Randy Dunlap
1c6a92a5a5 wifi: nl80211: vendor-cmd: intel: fix a blank kernel-doc line warning
Delete an empty line prevent a kernel-doc warning:

Warning: ../include/uapi/linux/nl80211-vnd-intel.h:86 bad line:

Fixes: 3d2a2544ea ("nl80211: vendor-cmd: add Intel vendor commands for iwlmei usage")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20251125022834.3171742-1-rdunlap@infradead.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-11-25 10:34:55 +01:00
Mateusz Guzik
003a660730
fs: push list presence check into inode_io_list_del()
For consistency with sb routines.

ext4 is the only consumer outside of evict(). Damage-controlling it is
outside of the scope of this cleanup.

Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link: https://patch.msgid.link/20251103230911.516866-1-mjguzik@gmail.com
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-11-25 10:34:49 +01:00
Mateusz Guzik
4c6b40877b
fs: cosmetic fixes to lru handling
1. inode_bit_waitqueue() was somehow placed between __inode_add_lru() and
   inode_add_lru(). move it up
2. assert ->i_lock is held in __inode_add_lru instead of just claiming it is
   needed
3. s/__inode_add_lru/__inode_lru_list_add/ for consistency with itself
   (inode_lru_list_del()) and similar routines for sb and io list
   management
4. push list presence check into inode_lru_list_del(), just like sb and
   io list

Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link: https://patch.msgid.link/20251029131428.654761-2-mjguzik@gmail.com
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-11-25 10:34:49 +01:00
Mateusz Guzik
a27628f436
fs: rework I_NEW handling to operate without fences
In the inode hash code grab the state while ->i_lock is held. If found
to be set, synchronize the sleep once more with the lock held.

In the real world the flag is not set most of the time.

Apart from being simpler to reason about, it comes with a minor speed up
as now clearing the flag does not require the smp_mb() fence.

While here rename wait_on_inode() to wait_on_new_inode() to line it up
with __wait_on_freeing_inode().

Christian Brauner <brauner@kernel.org> says:

As per the discussion in [1] I folded in the diff sent in [2].

Link: https://lore.kernel.org/69238e4d.a70a0220.d98e3.006e.GAE@google.com [1]
Link: https://lore.kernel.org/c2kpawomkbvtahjm7y5mposbhckb7wxthi3iqy5yr22ggpucrm@ufvxwy233qxo [2]
Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link: https://patch.msgid.link/20251010221737.1403539-1-mjguzik@gmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-11-25 10:32:39 +01:00
Lachlan Hodges
cba1ba11c1 wifi: cfg80211: include s1g_primary_2mhz when comparing chandefs
When comparing chandefs, ensure we include s1g_primary_2mhz.

Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com>
Link: https://patch.msgid.link/20251125025927.245280-3-lachlan.hodges@morsemicro.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-11-25 10:31:28 +01:00
Lachlan Hodges
3fc830cd8c wifi: cfg80211: include s1g_primary_2mhz when sending chandef
The chandef now includes a flag denoting the use of a 2MHz primary
channel for S1G interfaces, include this when sending the chandef.

Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com>
Link: https://patch.msgid.link/20251125025927.245280-2-lachlan.hodges@morsemicro.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-11-25 10:31:11 +01:00
Ria Thomas
24d4da5c25 wifi: ieee80211: correct FILS status codes
The FILS status codes are set to 108/109, but the IEEE 802.11-2020
spec defines them as 112/113. Update the enum so it matches the
specification and keeps the kernel consistent with standard values.

Fixes: a3caf7440d ("cfg80211: Add support for FILS shared key authentication offload")
Signed-off-by: Ria Thomas <ria.thomas@morsemicro.com>
Reviewed-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
Link: https://patch.msgid.link/20251124125637.3936154-1-ria.thomas@morsemicro.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-11-25 10:28:20 +01:00
Johannes Berg
cf1d7dc28c mt76 patches for 6.19
- relicense to BSD-3-Clause-Clear
 - fixes
 - support WED on devices which exceed 32-bit DMA
 - airoha NPU support
 - mt7925 regd improvements
 - more mt7996 MLO work
 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - http://gpgtools.org
 
 iF0EABECAB0WIQR10Rp9kadxD0kAQu/XfRQdAqdu9QUCaSRorgAKCRDXfRQdAqdu
 9X+NAKCQZC5gtZELHdvSJNAB5MwOJP5H1QCgvC+LUxf0etHH3ukChZm0WOen/S0=
 =DXR8
 -----END PGP SIGNATURE-----

Merge tag 'mt76-next-2025-11-24' of https://github.com/nbd168/wireless

Felix Fietkau says:
===================
mt76 patches for 6.19

- relicense to BSD-3-Clause-Clear
- fixes
- support WED on devices which exceed 32-bit DMA
- airoha NPU support
- mt7925 regd improvements
- more mt7996 MLO work
===================

Link: https://patch.msgid.link/6b6d1033-dddf-4cc9-b240-93da7f8b8773@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-11-25 10:27:19 +01:00
Arnd Bergmann
d34a71ba21 syscore: Changes for v6.19-rc1
Add a parameter to syscore operations to allow passing contextual data,
 which in turn enables refactoring of drivers to make them independent of
 global data. This initially only contains the API changes along with the
 updates for existing drivers. Subsequent work will make use of this to
 improve drivers.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmkYOjQACgkQ3SOs138+
 s6F7rRAAhUpjKYoZeht0i0x7B0aXsWzSyR4Mp5crHypKLuJSzglcuo82MrVk2kwj
 nBliQelCNUjkvRI4fIQq4Ci8GnkfkbACCw6JKzEeue13j0V1YiJ7de2/DILfi36I
 un4DXuxghH5kWbiinrYr5I4pi9yOcc9Ev1vdB1cxcWqtEcmCx7JpCtL7dCm9pMgN
 y5obnXECKCLyuWexh0XNHl3YKKs9jfocGBrpEAEMCB5pz2OdUIeWaZjRP6l0Gfhl
 kdRY/5WAlkAJV3ZAzQ3QN1RUufj1k2GCt4riY+u10sJHXJkBosz2fjWq5e/Omn0R
 FS2uMbJrUiXmN4URKmHcUuuOf0AysWmKjmUS9DrnaQs1LvYhXmu9a4NpjAts+roD
 E1G7KrU++/P/dR5weIa/6wP2fyfIlfKKrNHWaMZSQcJtqT5OoDol9pZGcMwPGvpv
 rNa4Yk30mo27ShzqIDqDPeNo/2rpDdOaN1AqvtVSFpsQGTdPfjrdv5IS6/zyKUs3
 pAYQvoxExq93N2hyfFr4PWzSHtbEoTFXWXkIOVK6FEIxxvo4q94+u05YYEkaeAWv
 SvZq/X//j4yafRwmE5zAgavbmwoTh+LUwyEfxa/YRzsVt66GT9ahVuAYkgHSRgoy
 bKYwyrtOwKL0swrFvBsaIjY8fqnrdbghFL/KikR1g8pKG8SyGf0=
 =dbAm
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmkldigACgkQmmx57+YA
 GNls9Q/+O0T9T9YF3I1lfTQUFa80gx+BaNt/tFGxIeZxQYfUCT5pY8dv6atlqLhU
 QbPnQrAT74wyBjAVFxnUZlQL5qRfsayrRTSYV3hzEEyCVIfg+8DdOjma8io0M8J3
 v5y74cpUSOYAyJUHtuuhC6TA071+YfBaTLLkYNvwTaOQNCkiTq2tQM75uEuYatYZ
 W1cepjh5/YKEHUCW1ETiT1hbSJSmUq5BAS/9mSzVBAcFDKxMLfop/6VQk/PgefUq
 0xz0A52VtJS+sGAJEGcKysZKFbWLVcdT1hSk2Y6biCSR25TEhhxnRkmvgiiLjzTR
 HexdiHaV/5GbK3EcWiZE1KOg6lqR/HmuLWokEQZ0oR2vy7N8a/CE9Rjy+z6Y/xku
 qSYq2VdgTMAOXxTqkkLMEp4av3Kzgrl4A7IdP89ATEPnJt05vt9zAgJ5CAbsL7KG
 xci9GtA4sKs9uoStm5jy0aTfxxDQ2s2cVkOy//b/C3RM517aY17qQIeJtpARYL1D
 /WDQI8Lbx9vEJ8Y6jNpEkVZThCMNMSfQCHWIcoPtsikYlb2IPxF6Rwc3Esm2J7iY
 lY4dPkCHQMJwMvH683BdYNInhG6bUyUfffhiuzDEoZ1srizvOoqkIqma25btFhuC
 g45iHw6Z+xszx1X35RpS50hzUj02WGyu1VXEqEcmMapMlKBenns=
 =4jOh
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-6.19-syscore' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

syscore: Changes for v6.19-rc1

Add a parameter to syscore operations to allow passing contextual data,
which in turn enables refactoring of drivers to make them independent of
global data. This initially only contains the API changes along with the
updates for existing drivers. Subsequent work will make use of this to
improve drivers.

* tag 'tegra-for-6.19-syscore' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  syscore: Pass context data to callbacks

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-25 10:25:56 +01:00
Arnd Bergmann
5d5b056ba3 amba: Fixes for v6.19-rc1
Fix a device leak. Could go into v6.18 as a fix, but since this problem
 has existed for a long time and nobody has reported it before it doesn't
 seem critical enough and sufficient to get it into 6.19 and then
 backported.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmkYOwEACgkQ3SOs138+
 s6GteRAAv4iX1cWTP20qI6lQVbr1/nTpmsL1e+QfaHHLIi8+KZpXpSLyMnhK0ZKS
 EJh+0iANiZALdA9oMEdodxKD1CAPj17g1CIUPAFWzqUYPNZQY3FIZFvKRwvbPIeq
 Nickloe3H8+sRnb1D3mGX9XMlwVco1vS9F3L1TtHV9MhNzlsLh47QL+zkaqWLedk
 A/68obiSWA2Q7b5AtELNvD0z+cjw7B4G4zmXCdM3lfpZC0hFyc3drVcc7ozylrqA
 DGEBb85Sp1IlPpyYRz9vuwc1u/Nb3wj3v5RwFGB1S0Hn541fPWE7PlQGn8jkNb5E
 laPGJV3sOUi31G0lEwBwTmN8EMCfdcif6xwrhqYdxWUm3wNuL3f4gBVZh0tpFLRk
 TDF0Ye1SDjk+eWTVqM33Kzn7d5QmRH18OxPBpSfg5/IFdJmOh1tjW/nF7qhklB4Q
 vwKvOm868Pbi30gko0/hH8ry7g+9dGcnyd2bPf67PU4i1qUdKKsBVX+uvL8Ld28W
 ggvklt10bZoeBLnq+bPLn6DExnmJJWd6Jpmo5mFXiGYv6ZWojQosf1ycg+O0qb4s
 yYKiod/AfXuCQLxu6EOi58JLGEikF3iVoWq+0uaXY7olCO+lFAieoHAnJ5QsjkjJ
 opS/mmzl39IbmQhsBZD+B0aHpzHeFtA+ayQ0WxBZAbYOGcqGsxY=
 =OCIb
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmkldeAACgkQmmx57+YA
 GNmSPRAAtpCj8X3yhYmG88mrp67WshDnSd77k9lTd4Hihp//d9zhyQlkZDBZc9Bh
 0P3Zt4JVjCmNqV/coBG8swpkj4ytw3yScvK473EQb+9Gz8g9Lj1Ou3qtJhcKHPdZ
 IZOhwFG1R+Q6DMfdOq8Sx4jkX7gvaSEJ6+kWb8HNDwMmSfuZ/33On6ybI9u+87y/
 9HcuT4Hmn45zfISBFaZ8wajNsMDsdiOxvYouAIxtMeU6JQnn/WzyXsxgx5C2KzzS
 RhgIs9kVi0LIWXKTIYr+7HDuwTJU1KRFKn5rMivlSszV0cnCfJLAEi4sBf9YjwTL
 13zsrNoYj5PUBeriOt+Ui4oLCwgZ2i/Jm1kzRLxDIakzOxqHU0OFu6Gdiz3GTVrg
 5FP8RU92ATeQysvoDVFM2KUvM30+i4mCCC0fpErK0fOYdGktFLUkkNaaEZG8v9ZQ
 keIwFi+0/CMwfVSk5J8PWVqc5qvmBT/PyY8ciUVuLc66zMSjjK1oGAj+A7MZaSw4
 Gxcja5lAVXr8I/x8aqb0SYYW4n3wBWhYD/T0M6jkedmwhqlXMgifp7/Hnl3BgWMa
 L72srVfWbTTmWAyrdXO6gAib3WxxzDFJP1HMCx6m9DMUq1OYykRvwyWRlUf9YbkT
 DGFHTqravdZcYmt+LGeypaF7AwbMiANa5kbFdwpDKRf8sJxGo70=
 =c/dC
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-6.19-core' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

amba: Fixes for v6.19-rc1

Fix a device leak. Could go into v6.18 as a fix, but since this problem
has existed for a long time and nobody has reported it before it doesn't
seem critical enough and sufficient to get it into 6.19 and then
backported.

* tag 'tegra-for-6.19-core' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  amba: tegra-ahb: Fix device leak on SMMU enable

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-25 10:24:21 +01:00
Arnd Bergmann
9b26d16d79 Renesas driver updates for v6.19 (take two)
- Fix accessing forbidden registers from regmap debugfs on RZ/G3E,
     RZ/G3S, RZ/V2H, and RZ/V2N.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCaRb87wAKCRCKwlD9ZEnx
 cLprAQDZ0tKpmFAX237dW6jyxrUB/vD25Lq3lDA128RkET2p9wEAqncw7Agpfx2J
 EorBJz3a1uzEctP/etvT756ETRCuVQM=
 =iw3Z
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmkldZEACgkQmmx57+YA
 GNlBHA/9Epbc4OGykDRCYgU/chbLC6C2lxe+oPyrCu8AuP+r1G+Nhfi0bBXmfgHd
 MeQrQnu0LXnhFuEegiumFam51X9YNsd2NlKiKnVArglHhPPnuMGbJ3IthKn4upnG
 SRxhLdlZpg38uCgspdCzE63yUBvfxwVnQWiqBTzqqWe5yxnr1K6BHmGU1VKffzev
 ubE8OOzwLkzjAAqia6KkWkGSlRslYNP7JRK2qqNC36TDfFiQKC/X7z8s9V9+c6rC
 Q5277hx+m7ynYZBscMPdt2b9qLtgFSjkIgBcfn/b2IvtF/NPOfAYR/a4lY4mLkB5
 r2jlzsOXWHLyTk1p8c5SvrnuNcaiZ7NEAqcOo8esutqPqYE+Bu8ObUjV6BnA4esp
 bd3mUCqDcLJf2ezqV679ULPkbqT5Hb4GoJzzPLJGGxbn0ZDuc4B3WHlb5CUvF8yy
 eIp2vBxDWgRHzG5P8NwEw5mQ2EtLlTSaWkxEEwbfovpDCJ+FDkvDdXb5a9QNKkbU
 JIYhoWfmtfVowe8+1ToYz92gTm6jDctl5dNPO1h7w6pWV1K/c7+4vWxiq6B0F5z9
 G73gZaxR/VobgkY/ySasEhL6KUHlixvQNhZDLKBovwqfaHlepeqgdWVCI2uh26gW
 /INc9pIgd3ptpXUMNtUszAqH1ntM4QSURHkNP3Wpd84Af2sLwdQ=
 =bARn
 -----END PGP SIGNATURE-----

Merge tag 'renesas-drivers-for-v6.19-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/drivers

Renesas driver updates for v6.19 (take two)

  - Fix accessing forbidden registers from regmap debugfs on RZ/G3E,
    RZ/G3S, RZ/V2H, and RZ/V2N.

* tag 'renesas-drivers-for-v6.19-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  soc: renesas: rz-sysc: Populate readable_reg/writeable_reg in regmap config
  soc: renesas: r9a09g056-sys: Populate max_register

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-25 10:23:26 +01:00
Christoph Hellwig
7fd8720dff
iomap: allocate s_dio_done_wq for async reads as well
Since commit 222f2c7c6d14 ("iomap: always run error completions in user
context"), read error completions are deferred to s_dio_done_wq.  This
means the workqueue also needs to be allocated for async reads.

Fixes: 222f2c7c6d14 ("iomap: always run error completions in user context")
Reported-by: syzbot+a2b9a4ed0d61b1efb3f5@syzkaller.appspotmail.com
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20251124140013.902853-1-hch@lst.de
Tested-by: syzbot+a2b9a4ed0d61b1efb3f5@syzkaller.appspotmail.com
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-11-25 10:22:19 +01:00
Joanne Koong
d7ff85d4b8
iomap: fix iomap_read_end() for already uptodate folios
There are some cases where when iomap_read_end() is called, the folio
may already have been marked uptodate. For example, if the iomap block
needed zeroing, then the folio may have been marked uptodate after the
zeroing.

iomap_read_end() should unlock the folio instead of calling
folio_end_read(), which is how these cases were handled prior to commit
f8eaf79406 ("iomap: simplify ->read_folio_range() error handling for
reads"). Calling folio_end_read() on an uptodate folio leads to buggy
behavior where marking an already uptodate folio as uptodate will XOR it
to be marked nonuptodate.

Fixes: f8eaf79406 ("iomap: simplify ->read_folio_range() error handling for reads")
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
Link: https://patch.msgid.link/20251118211111.1027272-2-joannelkoong@gmail.com
Tested-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reported-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-11-25 10:22:19 +01:00
Christian Brauner
5ec58e6acd
Merge patch series "enable iomap dio write completions from interrupt context v2"
Christoph Hellwig <hch@lst.de> says:

Currently iomap defers all write completions to interrupt context.  This
was based on my assumption that no one cares about the latency of those
to simplify the code vs the old direct-io.c.  It turns out someone cared,
as Avi reported a lot of context switches with ScyllaDB, which at least
in older kernels with workqueue scheduling issues caused really high
tail latencies.

Fortunately allowing the direct completions is pretty easy with all the
other iomap changes we had since.

While doing this I've also found dead code which gets removed (patch 1)
and an incorrect assumption in zonefs that read completions are called
in user context, which it assumes for it's error handling.  Fix this by
always calling error completions from user context (patch 2).
Against the vfs-6.19.iomap branch.

* patches from https://patch.msgid.link/20251113170633.1453259-1-hch@lst.de:
  iomap: invert the polarity of IOMAP_DIO_INLINE_COMP
  iomap: support write completions from interrupt context
  iomap: rework REQ_FUA selection
  iomap: always run error completions in user context
  fs, iomap: remove IOCB_DIO_CALLER_COMP

Link: https://patch.msgid.link/20251113170633.1453259-1-hch@lst.de
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-11-25 10:22:19 +01:00
Christoph Hellwig
76192a42c2
iomap: invert the polarity of IOMAP_DIO_INLINE_COMP
Replace IOMAP_DIO_INLINE_COMP with a flag to indicate that the
completion should be offloaded.  This removes a tiny bit of boilerplate
code, but more importantly just makes the code easier to follow as this
new flag gets set most of the time and only cleared in one place, while
it was the inverse for the old version.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20251113170633.1453259-6-hch@lst.de
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-11-25 10:22:19 +01:00
Christoph Hellwig
eca9dc2089
iomap: support write completions from interrupt context
Completions for pure overwrites don't need to be deferred to a workqueue
as there is no work to be done, or at least no work that needs a user
context.  Set the IOMAP_DIO_INLINE_COMP by default for writes like we
already do for reads, and the clear it for all the cases that actually
do need a user context for completions to update the inode size or
record updates to the logical to physical mapping.

I've audited all users of the ->end_io callback, and they only require
user context for I/O that involves unwritten extents, COW, size
extensions, or error handling and all those are still run from workqueue
context.

This restores the behavior of the old pre-iomap direct I/O code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20251113170633.1453259-5-hch@lst.de
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-11-25 10:22:19 +01:00
Christoph Hellwig
29086a31b3
iomap: rework REQ_FUA selection
The way how iomap_dio_can_use_fua and the caller is structured is
a bit confusing, as the main guarding condition is hidden in the
helper, and the secondary conditions are split between caller and
callee.

Refactor the code, so that iomap_dio_bio_iter itself tracks if a write
might need metadata updates based on the iomap type and flags, and
then have a condition based on that to use the FUA flag.

Note that this also moves the REQ_OP_WRITE assignment to the end of
the branch to improve readability a bit.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20251113170633.1453259-4-hch@lst.de
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-11-25 10:22:18 +01:00