Commit graph

1,447,411 commits

Author SHA1 Message Date
Thierry Reding
0732dffeb0 soc/tegra: pmc: Store PMC context in clocks
Clocks exposed by the PMC need to reference the PMC context for register
programming. Store a reference to the context in the data structure for
each clock to avoid the need for a global variable.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2026-01-18 08:48:29 +01:00
Thierry Reding
1c672945ce soc/tegra: pmc: Pass struct tegra_pmc to tegra_powergate_state()
By using the generic read_poll_timeout() instead of readx_poll_timeout()
we can pass additional parameters, which allows us to pass an additional
PMC context structure and avoid relying on a global variable for this.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2026-01-18 08:48:29 +01:00
Thierry Reding
f59dbd0c93 soc/tegra: pmc: Use contextual data instead of global variable
Pass the driver-specific data via the syscore struct and use it in the
syscore ops.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2026-01-18 08:48:28 +01:00
Prathamesh Shete
e6d96073af soc/tegra: pmc: Fix unsafe generic_handle_irq() call
Currently, when resuming from system suspend on Tegra platforms,
the following warning is observed:

WARNING: CPU: 0 PID: 14459 at kernel/irq/irqdesc.c:666
Call trace:
 handle_irq_desc+0x20/0x58 (P)
 tegra186_pmc_wake_syscore_resume+0xe4/0x15c
 syscore_resume+0x3c/0xb8
 suspend_devices_and_enter+0x510/0x540
 pm_suspend+0x16c/0x1d8

The warning occurs because generic_handle_irq() is being called from
a non-interrupt context which is considered as unsafe.

Fix this warning by deferring generic_handle_irq() call to an IRQ work
which gets executed in hard IRQ context where generic_handle_irq()
can be called safely.

When PREEMPT_RT kernels are used, regular IRQ work (initialized with
init_irq_work) is deferred to run in per-CPU kthreads in preemptible
context rather than hard IRQ context. Hence, use the IRQ_WORK_INIT_HARD
variant so that with PREEMPT_RT kernels, the IRQ work is processed in
hardirq context instead of being deferred to a thread which is required
for calling generic_handle_irq().

On non-PREEMPT_RT kernels, both init_irq_work() and IRQ_WORK_INIT_HARD()
execute in IRQ context, so this change has no functional impact for
standard kernel configurations.

Signed-off-by: Petlozu Pravareshwar <petlozup@nvidia.com>
Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
[treding@nvidia.com: miscellaneous cleanups]
Signed-off-by: Thierry Reding <treding@nvidia.com>
2026-01-18 08:48:21 +01:00
Lei Xu
9bdfeed989 arm64: dts: freescale: imx95: Add support for i.MX95 15x15 FRDM board
The i.MX95 15x15 FRDM board is a compact and cost-effective development
platform based on the i.MX95 applications processor.

Add device tree support for this board, including:
 - LPUART1 and LPUART5
 - NETC
 - USB
 - PCIe
 - uSDHC1, uSDHC2 and uSDHC3
 - FlexCAN2 and FlexCAN5
 - LPI2C2, LPI2C3, LPI2C4 and their child nodes
 - Watchdog3

Reviewed-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Signed-off-by: Lei Xu <lei.xu@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 14:39:44 +08:00
Lei Xu
b17171492e dt-bindings: arm: fsl: Add compatible for i.MX95 15x15 FRDM board
Introduce a new DT compatible string for the NXP i.MX95 15x15 FRDM
development board, a compact and cost-effective platform based on
the i.MX95 applications processor.

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Signed-off-by: Lei Xu <lei.xu@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 14:39:15 +08:00
Francesco Valla
868f5c154c arm64: dts: imx91-11x11-frdm: fix CAN transceiver gpio
According to the HW schematic, the CAN transceiver does not have an
enable pin but a silent one. Fix the GPIO property name and polarity.

Fixes: b4bf5e5589 ("arm64: dts: freescale: Add FRDM-IMX91 basic support")
Signed-off-by: Francesco Valla <francesco@valla.it>
Acked-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 14:31:41 +08:00
Francesco Valla
1a7d97c2d3 arm64: dts: imx93-11x11-frdm: enable additional devices
Enable additional devices on the i.MX93 FRDM board:

  - CAN port and associated transceiver
  - Bluetooth portion of the IW612 chipset
  - WiFi SDIO port
  - user buttons

The WiFi portion of the on-board IW612 chipset is still not supported
upstream, but since SDIO is a discoverable bus it will be probed once it
is.

Signed-off-by: Francesco Valla <francesco@valla.it>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 14:30:11 +08:00
Linus Torvalds
e84d960149 for-6.19-rc5-tag
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE8rQSAMVO+zA4DBdWxWXV+ddtWDsFAmlsRSEACgkQxWXV+ddt
 WDtXqg/+IGNYVrdRU6Ds/m1T7RO7uAYTTk9X4+21u7cYfVtZzC2gkBVfRwjv3gkD
 JVVCjXrKmdcQl1QMazeALauF0NBjLtA46SH4mm6tF9ZJu2TNxOmumCYpqjMtGjRG
 npAJW3LrdNxyClm9AbtJrvGcEQ78XuaGoctIHIvJH5NakA7pgOjEGMTGuCcKMMGH
 e/cQ6rEriOIAl9hPVJRx4odI1zd7AY0MMiLsSLKJdad1/TcJxFT36lg7SNc2Eqvz
 bBUlRqb6KOWLItU1c+KBx3yMuFpGYe7OLLqOtZo1Xdb0jDF0cU54eM0OgSkgMhRJ
 pFGFnGjfGtmpwDuthjNObnLTUzfsR2Yj7Yc56e0Ah7KAbhvWr7npAkN7bid+bagP
 1MnnRNrb4zqGNbzZ5EwX2MYcHV5EiwlzSZx9H0MIP0umCNVa4vubQ9S4UCHk4Twj
 BbAK7No3pgicwXvp0HI/4lYQldYBhp6ni+lh1HLgScYVReUCpmG1X2rDkf8viJ9d
 dYnKHnoyzPDIDQcVDkPOMIDnBofTGHux3aUIhE9va/ysALyNHn5uDr+idQt+eM1E
 SwnK+l8V+0kr55cHNZ0l3+e9gnDuD27pgQv0oHCDe2KKiUJCMBwaepH+P+QZjsHx
 bgCXnau6897qjxc3oDjQUZArkPPXw+8rqvkzv2aSFEMnhSOBqmI=
 =qIBc
 -----END PGP SIGNATURE-----

Merge tag 'for-6.19-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux

Pull btrfs fixes from David Sterba:

 - with large folios in use, fix partial incorrect update of a reflinked
   range

 - fix potential deadlock in iget when lookup fails and eviction is
   needed

 - in send, validate inline extent type while detecting file holes

 - fix memory leak after an error when creating a space info

 - remove zone statistics from sysfs again, the output size limitations
   make it unusable, we'll do it in another way in another release

 - test fixes:
     - return proper error codes from block remapping tests
     - fix tree root leaks in qgroup tests after errors

* tag 'for-6.19-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
  btrfs: remove zoned statistics from sysfs
  btrfs: fix memory leaks in create_space_info() error paths
  btrfs: invalidate pages instead of truncate after reflinking
  btrfs: update the Kconfig string for CONFIG_BTRFS_EXPERIMENTAL
  btrfs: send: check for inline extents in range_is_hole_in_parent()
  btrfs: tests: fix return 0 on rmap test failure
  btrfs: tests: fix root tree leak in btrfs_test_qgroups()
  btrfs: release path before iget_failed() in btrfs_read_locked_inode()
2026-01-17 19:29:32 -08:00
Linus Torvalds
47622aa8b6 LoongArch fixes for v6.19-rc6
-----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCAA0FiEEzOlt8mkP+tbeiYy5AoYrw/LiJnoFAmlq+z4WHGNoZW5odWFj
 YWlAa2VybmVsLm9yZwAKCRAChivD8uImeuiPEACvL76/lHI+5aww1PfokzjCdQYk
 /ked1m/3BmLhufqFvLDhraLTA/6rFF7j2KdHm2RESIS6bk/YaN7RMh9iAGpN+APu
 /pF0ppPMPuvpJGdWuWSPvTdwCMuA5ksvMl+CPRthSYqsQ42d1h5alirWOkbtLTW7
 EMmgnMZAL6VHnyiWHjMn86BCkvC/2DHyvtC7WsMh1LNa6Cqlcu/sxaMC73sBf9qZ
 FbB5dziLXjpkJp7QIJH0KbrRhtw8CzCbW4xuwJO2u/dR+9Xl3LT9HD8/aYa11aXE
 Q9QW3M7d1h8+cJIbdrTjLqSCV49hwPC4YpA5d4ElFcJJF68gpMfBs+ZLzLc5OkK3
 mapw0dMWlXbkOEAC0dq0NIf3jpIgVdlaZQcC6jFNNiAgWnQv+qqfvvtw7A/bK3K+
 xwM+wcSpMe0zEmxFKz4xhDJ3PdMvgyrSBkcItgcdiEd107fLskYHuMUzHPMwh6oA
 uGJ+4u0sCXLFubhjhkQGgTyUbk/cgOBcCAnqv0gTQfcTdF0fCLuSFcpUjtunq9wu
 AqKxr3kA4YkMW7uG2pliCJyUL1/jV2kIMhekxJN2Q8WQPhZ6antSUQhJZDOl8xj2
 QRaoprMZ/uUmH2vMmGMiO+7TTglDH8DrkVWdqo4kxZjvnIcXzkBs0bAvFdzo3mlS
 Mozpbd+D8LdURSMjhA==
 =0h8y
 -----END PGP SIGNATURE-----

Merge tag 'loongarch-fixes-6.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson

Pull LoongArch fixes from Huacai Chen:
 "Remove redundant code in head.S, fix PMU counter allocation for mixed-
  type event groups, fix a lot of dts build warnings, and fix kvm_device
  memory leaks"

* tag 'loongarch-fixes-6.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson:
  LoongArch: KVM: Fix kvm_device leak in kvm_pch_pic_destroy()
  LoongArch: KVM: Fix kvm_device leak in kvm_eiointc_destroy()
  LoongArch: KVM: Fix kvm_device leak in kvm_ipi_destroy()
  LoongArch: dts: loongson-2k1000: Fix i2c-gpio node names
  LoongArch: dts: loongson-2k2000: Add default interrupt controller address cells
  LoongArch: dts: loongson-2k1000: Add default interrupt controller address cells
  LoongArch: dts: loongson-2k0500: Add default interrupt controller address cells
  LoongArch: dts: Describe PCI sideband IRQ through interrupt-extended
  LoongArch: Fix PMU counter allocation for mixed-type event groups
  LoongArch: Remove redundant code in head.S
2026-01-17 19:24:48 -08:00
Peng Fan
f6ef3d9ff8 soc: imx8m: Fix error handling for clk_prepare_enable()
imx8m_soc_prepare() directly returns the result of clk_prepare_enable(),
which skips proper cleanup if the clock enable fails. Check the return
value of clk_prepare_enable() and release resources if failure.

Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <error27@gmail.com>
Closes: https://lore.kernel.org/r/202601111406.ZVV3YaiU-lkp@intel.com/
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 10:33:42 +08:00
Andreas Kemnade
f325a91895 ARM: dts: imx: e60k02: add tps65185
Wire up the TPS65185 regulator needed for the display.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 10:11:38 +08:00
Josua Mayer
9fcca3e285 ARM: dts: imx50-kobo-aura: add epd pmic description
Kobo Aura (N514) includes a TPS65185 PMIC for the epaper display.

Add description for this pmic and its vin power-supply.

Signed-off-by: Josua Mayer <josua.mayer@jm0.eu>
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 10:11:37 +08:00
Andreas Kemnade
e9c48e5586 ARM: dts: imx: tolino-shine2: add tps65185
Wire up the TPS65185 regulator needed for the display.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 10:11:37 +08:00
Jakub Kicinski
b4e486e2c4 Merge branch 'net-convert-drivers-to-get_rx_ring_count-part-2'
Breno Leitao says:

====================
net: convert drivers to .get_rx_ring_count (part 2)

Commit 84eaf4359c ("net: ethtool: add get_rx_ring_count callback to
optimize RX ring queries") added specific support for GRXRINGS callback,
simplifying .get_rxnfc.

Remove the handling of GRXRINGS in .get_rxnfc() by moving it to the new
.get_rx_ring_count().

This simplifies the RX ring count retrieval and aligns the following
drivers with the new ethtool API for querying RX ring parameters.
  * engleder/tsnep
  * mediatek
  * amazon/ena
  * microchip/lan743x
  * amd/xgbe
  * chelsio/cxgb4
  * wangxun/txgbe
  * cadence/macb

All of these change were compile-tested only.
====================

Link: https://patch.msgid.link/20260115-grxring_big_v2-v1-0-b3e1b58bced5@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:10:19 -08:00
Breno Leitao
c4279332f4 net: txgbe: convert to use .get_rx_ring_count
Use the newly introduced .get_rx_ring_count ethtool ops callback instead
of handling ETHTOOL_GRXRINGS directly in .get_rxnfc().

Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20260115-grxring_big_v2-v1-9-b3e1b58bced5@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:10:16 -08:00
Breno Leitao
d1c7ed5dfa net: macb: convert to use .get_rx_ring_count
Use the newly introduced .get_rx_ring_count ethtool ops callback instead
of handling ETHTOOL_GRXRINGS directly in .get_rxnfc().

Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20260115-grxring_big_v2-v1-8-b3e1b58bced5@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:10:16 -08:00
Breno Leitao
ceec168d03 net: cxgb4: convert to use .get_rx_ring_count
Use the newly introduced .get_rx_ring_count ethtool ops callback instead
of handling ETHTOOL_GRXRINGS directly in .get_rxnfc().

Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20260115-grxring_big_v2-v1-7-b3e1b58bced5@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:10:16 -08:00
Breno Leitao
507353bf84 net: xgbe: convert to use .get_rx_ring_count
Use the newly introduced .get_rx_ring_count ethtool ops callback instead
of handling ETHTOOL_GRXRINGS directly in .get_rxnfc().

Since ETHTOOL_GRXRINGS was the only command handled by xgbe_get_rxnfc(),
remove the function entirely.

Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20260115-grxring_big_v2-v1-6-b3e1b58bced5@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:10:16 -08:00
Breno Leitao
05ba304486 net: lan743x: convert to use .get_rx_ring_count
Use the newly introduced .get_rx_ring_count ethtool ops callback instead
of handling ETHTOOL_GRXRINGS directly in .get_rxnfc().

Since ETHTOOL_GRXRINGS was the only command handled by
lan743x_ethtool_get_rxnfc(), remove the function entirely.

Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20260115-grxring_big_v2-v1-5-b3e1b58bced5@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:10:16 -08:00
Breno Leitao
289f714a08 net: ena: convert to use .get_rx_ring_count
Use the newly introduced .get_rx_ring_count ethtool ops callback instead
of handling ETHTOOL_GRXRINGS directly in .get_rxnfc().

Since ETHTOOL_GRXRINGS was the only useful command handled by
ena_get_rxnfc(), remove the function entirely.

Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Arthur Kiyanovski <akiyano@amazon.com>
Link: https://patch.msgid.link/20260115-grxring_big_v2-v1-4-b3e1b58bced5@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:10:16 -08:00
Breno Leitao
e33bd8dd7f net: mediatek: convert to use .get_rx_ring_count
Use the newly introduced .get_rx_ring_count ethtool ops callback instead
of handling ETHTOOL_GRXRINGS directly in .get_rxnfc().

Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20260115-grxring_big_v2-v1-3-b3e1b58bced5@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:10:15 -08:00
Breno Leitao
efa375c440 net: tsnep: convert to use .get_rx_ring_count
Use the newly introduced .get_rx_ring_count ethtool ops callback instead
of handling ETHTOOL_GRXRINGS directly in .get_rxnfc().

Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20260115-grxring_big_v2-v1-2-b3e1b58bced5@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:10:15 -08:00
Thadeu Lima de Souza Cascardo
f40ddcc0c0 Revert "nfc/nci: Add the inconsistency check between the input data length and count"
This reverts commit 068648aab7.

NFC packets may have NUL-bytes. Checking for string length is not a correct
assumption here. As long as there is a check for the length copied from
copy_from_user, all should be fine.

The fix only prevented the syzbot reproducer from triggering the bug
because the packet is not enqueued anymore and the code that triggers the
bug is not exercised.

The fix even broke
testing/selftests/nci/nci_dev, making all tests there fail. After the
revert, 6 out of 8 tests pass.

Fixes: 068648aab7 ("nfc/nci: Add the inconsistency check between the input data length and count")
Cc: stable@vger.kernel.org
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Link: https://patch.msgid.link/20260113202458.449455-1-cascardo@igalia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:02:50 -08:00
Jakub Kicinski
aa5baafd33 Merge branch 'selftests-net-improve-error-handling-in-passive-tfo-test'
Yohei Kojima says:

====================
selftests: net: improve error handling in passive TFO test

This series improves error handling in the passive TFO test by (1)
fixing a broken behavior when the child processes failed (or timed out),
and (2) adding more error handlng code in the test program.

The first patch fixes the behavior that the test didn't report failure
even if the server or the client process exited with non-zero status.
The second patch adds error handling code in the test program to improve
reliability of the test.
====================

Link: https://patch.msgid.link/cover.1768312014.git.yk@y-koj.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:01:31 -08:00
Yohei Kojima
342e31254f selftests: net: improve error handling in passive TFO test
Improve the error handling in passive TFO test to check the return value
from sendto(), and to fail if read() or fprintf() failed.

Signed-off-by: Yohei Kojima <yk@y-koj.net>
Link: https://patch.msgid.link/24707c8133f7095c0e5a94afa69e75c3a80bf6e7.1768312014.git.yk@y-koj.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:01:26 -08:00
Yohei Kojima
52b4859730 selftests: net: fix passive TFO test to fail if child processes failed
Improve the passive TFO test to report failure if the server or the
client timed out or exited with non-zero status.

Before this commit, TFO test didn't fail even if exit(EXIT_FAILURE) is
added to the first line of the run_server() and run_client() functions.

Signed-off-by: Yohei Kojima <yk@y-koj.net>
Link: https://patch.msgid.link/214d399caec2e5de7738ced5736829915d507e4e.1768312014.git.yk@y-koj.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 18:01:26 -08:00
Daniel Baluta
8c89886980 arm64: dts: imx93-11x11-frdm: Add MQS audio support
Enable Medium Quality Sound (MQS) output on the i.MX93 FRDM 11x11 board
by adding sound card description and enabling sai1 and mqs1 dts nodes,
together with necessary clocks and pinmux.

This supports audio playback via SAI1 DAI which is connected to the MQS1
block.

Co-developed-by: Tom Zheng <haidong.zheng@nxp.com>
Signed-off-by: Tom Zheng <haidong.zheng@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Tested-by: Francesco Valla <francesco@valla.it>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:59:17 +08:00
Peng Fan
2da6336e94 arm64: dts: imx952-evk: Add nxp,ctrl-ids for scmi misc
Add nxp,ctrl-ids in scmi_misc node for wakeup notification.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:28 +08:00
Haibo Chen
aef607803e arm64: dts: imx952-evk: Add flexcan support
Add flexcan support, since flexcan1 share pins with PDM,
default disable flexcan1.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:28 +08:00
Peng Fan
13b56cf38f arm64: dts: imx952-evk: Enable TPM[3,6]
Enable TPM[3,6] for PWM.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:28 +08:00
Peng Fan
1f563af57f arm64: dts: imx952-evk: Enable wdog3
Enable wdog3 to allow System manager reset Linux.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:28 +08:00
Peng Fan
8e135b9d57 arm64: dts: imx952-evk: Enable USB[1,2]
Enable USB[1,2] and add ptn5110 connected to USB1.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:27 +08:00
Peng Fan
ba1d167451 arm64: dts: imx952-evk: Enable SPI7
Enable SPI7 for i.MX952-EVK.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:27 +08:00
Peng Fan
fc910b85b2 arm64: dts: imx952-evk: Enable UART5
Enable UART5 for using Bluetooth.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:27 +08:00
Peng Fan
b7f2743331 arm64: dts: imx952-evk: Enable I2C[2,3,4,6,7] bus
Enable I2C bus[2,3,4,6,7] and the io-expanders connected to each I2C bus.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:27 +08:00
Haibo Chen
570a0eb963 arm64: dts: imx952-evk: Change the usdhc1_200mhz drive strength to DSE4
Set usdhc1_200mhz drive strength need to use DSE4, according to validation
team's suggestion,

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:27 +08:00
Peng Fan
730f6b28cb arm64: dts: imx952: Add idle-states node
Add idle-states node and refer it in A55 nodes to enable cpuidle.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:27 +08:00
Fedor Ross
5eb7405db9 arm64: dts: imx8mn: Add ifm VHIP4 EvalBoard v1 and v2
Add support for ifm i.MX8MN VHIP4 EvalBoard v1 and v2 reference design.
This system exists in two generations, v1 and v2, which share a lot of
commonality. The boards come with either single gigabit ethernet or an
KSZ8794 fast-ethernet switch, boot from eMMC, and offer CAN interfaces
via Microchip MCP25xx SPI CAN controllers, UART, and USB host. The GPU
is not available in the SoC populated on these devices.

Signed-off-by: Fedor Ross <fedor.ross@ifm.com>
Signed-off-by: Marek Vasut <marex@nabladev.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:06 +08:00
Marek Vasut
347e8b20ac arm64: dts: imx8mn: Add SNVS LPGPR
Add SNVS LPGPR bindings to MX8M Nano, the LPGPR is used to store
boot counter.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Marek Vasut <marex@nabladev.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:06 +08:00
Sebastian Krzyszkowiak
507d920800 arm64: dts: imx8mq-librem5: Don't set mic-cfg for wm8962
The default values are fine, and MICDET_ENA is handled by the driver on
its own anyway.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:06 +08:00
Sebastian Krzyszkowiak
f8d3da15a9 arm64: dts: imx8mq-librem5: Set cap-power-off-card for usdhc2
This is needed for brcmfmac to turn the card off in suspend
since 8c3170628a.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:06 +08:00
Sebastian Krzyszkowiak
f9774d6d4b arm64: dts: imx8mq-librem5: Limit uSDHC2 frequency to 50MHz
SparkLAN card has stability issues at 100MHz. It still appears to be
able to max out its throughput this way, so limit the frequency to
ensure stable operation.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:06 +08:00
Sebastian Krzyszkowiak
1361bfee8d arm64: dts: imx8mq-librem5: Enable SNVS RTC
It has been disabled because it was being used for system clock instead
of the discrete RTC. However, SNVS has some features that the discrete
RTC does not, such as being able to turn the device on. Solve that issue
with aliases instead and reenable SNVS RTC.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:06 +08:00
Sebastian Krzyszkowiak
bb01a42b1b arm64: dts: imx8mq-librem5: Set vibrator's PWM frequency to 20kHz
1Hz as used previously was way too long.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:05 +08:00
Sebastian Krzyszkowiak
6429d40e51 arm64: dts: imx8mq-librem5: Enable I2C recovery
i2c-imx can perform bus recovery by temporarily switching I2C pins
into GPIO mode. To do so, it needs GPIO and pinctrl handles to be
provided in the device tree.

Suggested-by: Denis Sergeevich <galilley@gmail.com>
Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2026-01-18 09:55:05 +08:00
Hamza Mahfooz
a92a6c50e3 net: sfp: add potron quirk to the H-COM SPP425H-GAB4 SFP+ Stick
This is another one of those XGSPON ONU sticks that's using the
X-ONU-SFPP internally, thus it also requires the potron quirk to avoid tx
faults. So, add an entry for it in sfp_quirks[].

Cc: stable@vger.kernel.org
Signed-off-by: Hamza Mahfooz <someguy@effective-light.com>
Link: https://patch.msgid.link/20260113232957.609642-1-someguy@effective-light.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 16:45:40 -08:00
David Yang
b47adaab8b veth: fix data race in veth_get_ethtool_stats
In veth_get_ethtool_stats(), some statistics protected by
u64_stats_sync, are read and accumulated in ignorance of possible
u64_stats_fetch_retry() events. These statistics, peer_tq_xdp_xmit and
peer_tq_xdp_xmit_err, are already accumulated by veth_xdp_xmit(). Fix
this by reading them into a temporary buffer first.

Fixes: 5fe6e56776 ("veth: rely on peer veth_rq for ndo_xdp_xmit accounting")
Signed-off-by: David Yang <mmyangfl@gmail.com>
Link: https://patch.msgid.link/20260114122450.227982-1-mmyangfl@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 16:22:18 -08:00
Jakub Kicinski
ba4550d5d7 Merge branch 'net-phy-realtek-simplify-and-reunify-c22-c45-drivers'
Daniel Golle says:

====================
net: phy: realtek: simplify and reunify C22/C45 drivers

The RTL8221B PHY variants (VB-CG and VM-CG) were previously split into
separate C22 and C45 driver instances to support copper SFP modules
using the RollBall MDIO-over-I2C protocol, which only supports Clause-45
access. However, this split created significant code duplication and
complexity.

Commit 8af2136e77 ("net: phy: realtek: add helper
RTL822X_VND2_C22_REG") exposed that RealTek PHYs map all standard
Clause-22 registers into MDIO_MMD_VEND2 at offset 0xa400.

With commit 1850ec20d6 ("net: phy: realtek: use paged access for
MDIO_MMD_VEND2 in C22 mode") it is now possible to access all MMD
registers transparently, regardless of whether the PHY is accessed via
C22 or C45 MDIO.

Further improve the translation logic for this register mapping, so a
single unified driver works efficiently with both access methods,
reducing code duplication.

The series also includes cleanup to remove unnecessary paged operations
on registers that aren't actually affected by page selection.

Testing was done on RTL8211F and RTL8221B-VB-CG (the latter in both
C22 and C45 modes).
====================

Link: https://patch.msgid.link/cover.1768275364.git.daniel@makrotopia.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 16:12:18 -08:00
Daniel Golle
650e55f224 net: phy: realtek: simplify bogus paged operations
Only registers 0x10~0x17 are affected by the value in the page
selection register 0x1f. Hence there is no point in using paged
operations when accessing any other registers.
Simplify the driver by using the normal phy_read and phy_write
operations for registers which are anyway not affected by paging.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Link: https://patch.msgid.link/0c5cbb66ce3e72a011d76f8c3d61ebcac44483bb.1768275364.git.daniel@makrotopia.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-17 16:12:16 -08:00