Commit graph

1,468,510 commits

Author SHA1 Message Date
Lars Randers
ecc0eb5e95 hwmon: Driver for the temp/voltage sensor on PolarFire SoC
Add a driver for the temperature and voltage sensors on PolarFire SoC.
The temperature reports how hot the die is, and the voltages are the
SoC's 1.05, 1.8 and 2.5 volt rails respectively.

The hardware supports alarms in theory, but there is an erratum that
prevents clearing them once triggered, so no support is added for them.

The hardware measures voltage with 16 bits, of which 1 is a sign bit and
the remainder holds the voltage as a fixed point integer value. It's
improbable that the hardware will work if the voltages are negative, so
the driver ignores the sign bits.

There's no dt support etc here because this is the child of a simple-mfd
syscon.

Signed-off-by: Lars Randers <lranders@mail.dk>
Co-developed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20260629-wriggle-headscarf-c85a4070dddb@spud
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Sudeep Holla
92ead3c1f1 hwmon: (xgene) Stop writing PCC shared memory signature
ACPI specification defines the generic PCC shared memory signature as
the PCC base signature ORed with the subspace ID.

ACPI 6.6 added clarification that the signature is populated by the
platform and verified by OSPM.

The PCC mailbox controller now validates the signature when the channel
is requested. Stop rewriting the signature before each command and
leave the platform-populated value intact.

Cc: Guenter Roeck <linux@roeck-us.net>
Cc: linux-hwmon@vger.kernel.org
Signed-off-by: Sudeep Holla <sudeep.holla@kernel.org>
Link: https://lore.kernel.org/r/20260627-acpi_pcc_signature-v1-2-c1b7268d4fdc@kernel.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Matti Vaittinen
73a76fa6e8 hwmon: (pmbus/adm1275) Support ROHM BD12790
Add support for ROHM BD12790 hot-swap controller which is largely
similar to Analog Devices adm1272.

The BD12790 uses the same selectable 60V/100V voltage ranges and
15mV/30mV current-sense ranges as the ADM1272, and the same VRANGE
(bit 5) and IRANGE (bit 0) layout in PMON_CONFIG. It therefore uses
a dedicated coefficient table that mirrors adm1272_coefficients, with
the following differences derived from BD12790 datasheet Table 1 (p.18):
- power 60V/30mV: m=17560 (vs. 17561)
- power 100V/30mV: m=10536 (vs. 10535)
- temperature: b=31880 (vs. 31871, reflecting T[11:0] = 4.2*T + 3188)

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Assisted-by: GitHub Copilot:claude-sonnet-4.6
Link: https://lore.kernel.org/r/b209c1b47712b69f17b52cfd7a7a38ed76024ca7.1782458224.git.mazziesaccount@gmail.com
[groeck: Fixed comment describing BD12790 coefficients]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Matti Vaittinen
b66f500d62 dt-bindings: adm1275: ROHM BD12790 hot-swap controller
Support ROHM BD12790 hot-swap controller which is largely compatible
with the Analog Devices adm1272.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/753a6ded3e1aff1aaba7d932f0a883f789d9dfaa.1782458224.git.mazziesaccount@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Matti Vaittinen
1170dfa0c3 doc: adm1275: Add ROHM BD12790
Add the ROHM BD12790 to the list of the ICs supported by the adm1275
driver.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Link: https://lore.kernel.org/r/9bafcfe37190b5a3925e8dcfa3b59f8d240234ba.1782458224.git.mazziesaccount@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Matti Vaittinen
5a419373bc hwmon: (pmbus/adm1275) Support ROHM BD12780
ROHM BD12780 and BD12780A are hot-swap controllers. They are largely
similar to Analog Devices ADM1278. Besides the ID registers and some
added functionality, the BD12780 and BD12780A mark PMON_CONFIG bits
[15:14] as reserved. Hence TSFILT setting must be omitted on these ICs.

The BD12780 has 3 pins usable for configuring the I2C address. The
BD12780A lists the ADDR3-pin as "not connect".

Support ROHM BD12780 and BD12780A controllers.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Link: https://lore.kernel.org/r/e1e6e6218c08b562311356ef9c57378d32c26b08.1782458224.git.mazziesaccount@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Matti Vaittinen
3f48a6ffe1 doc: hwmon: Add ROHM BD12780 and BD12780A
Add the ROHM BD12780 and the BD12780A to the list of the ICs supported by
the adm1275 driver.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Link: https://lore.kernel.org/r/5ff4a4a7a939cd642522fde407b5c9fa123a7089.1782458224.git.mazziesaccount@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Matti Vaittinen
d475fcefbb hwmon: (pmbus/adm1275) Support module auto-loading
Populating the i2c_device_id -table is not enough to make the
driver module automatically load when device-tree node for the
power-monitor is parsed at boot.

Adding the of_device_id tables causes the driver module to be
automatically load at boot. Testing has been done with rather old Debian
system.

When inspecting the generated module-aliases with the insmod, following
entries seem to be the difference:

alias:          of:N*T*Cadi,adm1075C*
alias:          of:N*T*Cadi,adm1075

I suspect these are required for the module loading to work.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Link: https://lore.kernel.org/r/9eca6831f9fe2d781bb88337397c39b10e36f5c6.1782458224.git.mazziesaccount@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Matti Vaittinen
b0374b52b4 dt-bindings: adm1275: ROHM BD12780 hot-swap controller
Support ROHM BD12780 and BD12780A hot-swap controllers, which are largely
compatible with the Analog Devices adm1278. Main difference between
the BD12780 and the BD12780A is, that the BD12780 has one I2C address
configuration pin more (ADDR3) than the BD12780A.

Introduce own compatibles for both variants but require the BD12780A to
always have the BD12780 as a fall-back.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/2b7d5bb8cba773d0bba1d6779f0e6daa6a40eed4.1782458224.git.mazziesaccount@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Flaviu Nistor
5a260163e1 hwmon: (chipcap2) Add support for label
Add support for label sysfs attribute similar to other hwmon devices.
This is particularly useful for systems with multiple sensors on the
same board, where identifying individual sensors is much easier since
labels can be defined via device tree.

Signed-off-by: Flaviu Nistor <flaviu.nistor@gmail.com>
Reviewed-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Link: https://lore.kernel.org/r/20260625160423.17882-2-flaviu.nistor@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Flaviu Nistor
aa28a6c3a2 dt-bindings: hwmon: chipcap2: Add label property
Add support for an optional label property similar to other hwmon devices.
This allows, in case of boards with multiple CHIPCAP2 sensors, to assign
distinct names to each instance.

Signed-off-by: Flaviu Nistor <flaviu.nistor@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260625160423.17882-1-flaviu.nistor@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Abdurrahman Hussain
bee42c6311 hwmon: (pmbus/xdpe1a2g7b) Add regulator support
Register both dual-loop output channels with the regulator framework by
populating regulator_desc[] and num_regulators in pmbus_driver_info.
This exposes the standard PMBus OPERATION-based on/off control and
status reporting to consumer drivers.

Signed-off-by: Abdurrahman Hussain <abdurrahman@nexthop.ai>
Link: https://lore.kernel.org/r/20260619-xdpe1a2g7b-v1-1-428c3847be0d@nexthop.ai
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Ximing Zhang
6a9ad0ac9b hwmon: (coretemp) Clarify attr_size comment
The attr_size field stores the number of sysfs attributes created for a
temperature data group. Clarify the comment to describe the field directly.

No functional change intended.

Signed-off-by: Ximing Zhang <xzhangjr@gmail.com>
Link: https://lore.kernel.org/r/20260616125631.35537-1-xzhangjr@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Ximing Zhang
bf74d14fba hwmon: coretemp: Fix documentation wording
Fix two minor wording issues in the coretemp documentation.

Signed-off-by: Ximing Zhang <xzhangjr@gmail.com>
Link: https://lore.kernel.org/r/20260616121549.29484-1-xzhangjr@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Potin Lai
a86e9ca4ed hwmon: (pmbus/lm25066) add current limit configuration support
Add support for the 'ti,current-range' devicetree property to configure
the current limit via the DEVICE_SETUP (0xD9) register, overriding the
physical CL pin setting.

This configuration is supported on all chips in this driver (LM25066,
LM5064, LM5066, LM5066i) except LM25056.

The property values "low" and "high" map to:
- LM25066: low = 25 mV, high = 46 mV
- LM5064, LM5066, LM5066i: low = 26 mV, high = 50 mV

The Bit 4 mapping to High/Low current limit is handled dynamically on
probe because it is swapped for LM25066 compared to the other supported
chips.

Signed-off-by: Potin Lai <potin.lai.pt@gmail.com>
Link: https://lore.kernel.org/r/20260615-lm25066-cl-config-v3-2-decb4f5b0b77@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Potin Lai
47afef9f4c dt-bindings: hwmon: pmbus: ti,lm25066: add current limit properties
Add a 'ti,current-range' string property to configure the device's Current
Limit (CL) behavior to "high" or "low" via the register, overriding the
physical CL pin setting.

This configuration is supported on LM25066, LM5064, LM5066, and LM5066i.
LM25056 is excluded because it does not support configuring the current
limit via the DEVICE_SETUP register (bit 2 of DEVICE_SETUP is reserved).

The values "low" and "high" map to the respective low/high threshold
voltages of the chips:
- LM25066: low = 25 mV, high = 46 mV
- LM5064, LM5066, LM5066i: low = 26 mV, high = 50 mV

Signed-off-by: Potin Lai <potin.lai.pt@gmail.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20260615-lm25066-cl-config-v3-1-decb4f5b0b77@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Ziming Zhu
efd053e3f6 hwmon: Add documentation for SQ24860
Document the supported sysfs attributes for the Silergy SQ24860 PMBus
hwmon driver.

Signed-off-by: Ziming Zhu <ziming.zhu@silergycorp.com>
Link: https://lore.kernel.org/r/20260612030304.5165-4-zmzhu0630@163.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Ziming Zhu
93ab13d896 hwmon: (pmbus) Add support for Silergy SQ24860
Add PMBus hwmon support for the Silergy SQ24860 eFuse.

The driver reports input voltage, output voltage, auxiliary voltage,
input current, input power, and temperature. It also exposes peak,
average, and minimum history attributes, sample count configuration,
and maps the manufacturer-specific VIREF register to the generic input
over-current fault limit attribute.

The IMON resistor value is read from the silergy,rimon-micro-ohms device
property and used to configure the input current calibration gain.

Signed-off-by: Ziming Zhu <ziming.zhu@silergycorp.com>
Link: https://lore.kernel.org/r/20260612030304.5165-3-zmzhu0630@163.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Ziming Zhu
4cbf6f017a dt-bindings: hwmon: pmbus: Add bindings for Silergy SQ24860
Add devicetree binding documentation for the Silergy SQ24860 eFuse.

The device is a PMBus hardware monitoring device which reports voltage,
current, power, and temperature telemetry. The board-specific IMON
resistor value is described with silergy,rimon-micro-ohms.

Signed-off-by: Ziming Zhu <ziming.zhu@silergycorp.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20260612030304.5165-2-zmzhu0630@163.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Martino Facchin
d1db9b08fb hwmon: (ina2xx) Add support for INA232
The INA232 is a current/power monitor. It shares the same register
layout as the other chips in the series and uses the INA226 default
configuration, but differs in its electrical characteristics:

Signed-off-by: Martino Facchin <m.facchin@arduino.cc>
Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260611-monza-ina232-v2-2-e4375ce652d0@oss.qualcomm.com
[groeck: Rephrased commit message]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:40 -07:00
Martino Facchin
6fe4043c16 dt-bindings: hwmon: ina2xx: add ina232 compatible
The INA232 is a current/power monitor from Texas Instruments sharing
the same register map as the other INA2xx.

Signed-off-by: Martino Facchin <m.facchin@arduino.cc>
Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260611-monza-ina232-v2-1-e4375ce652d0@oss.qualcomm.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10 08:59:39 -07:00
Arnd Bergmann
ae675a2963 Samsung DTS ARM64 changes for v7.3, part two
Several non-functional (white-space and style) changes to match with DTS
 coding style as reported by recent dt-check-style tool.  Goal is to get
 to no `dt-check-style --mode strict` warnings over time.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmp0QnEQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD1y3MD/49LDEei+r3N9p4j4L9nOKvEPgoEYo7hLUW
 IkXu6zHH5BwrRCotTRVs/FLnCrksT1xF8K0D9FABi7QCsfF0AGQ49iXUcad/ahgX
 oLseMSsw/+yI9nTfj27a70jF2jFV03841PEZsxZnoA1SqM8sJ3PKymZnBIqQyMVJ
 iM8O+iydWRskPofQ9I19QlEcovUNUnrfM7UZSob7dplUd5lMgzrpe5LORrApnCRq
 enEYW9kYib2aEVMgfLn4UM6LJRVLY//QnDCHd1MEkePcM+JveH16KBBzdAChXwUq
 J6fqqkJpmnDJ8c40lSFd41a8xtlmGN30wH3mdqcb0EMjsJvRDRYCSQbrPp8Py6Jf
 h3Ztu2ju7kwPjhQ3ph2b+zDYZP+MaS39UUHRARC6vKCU1l5CmN68SYTuQBLYYzw1
 RUdlrqzwk3QDFVGvmwwruTzJ0V8Nq3hEfZ6T6VWy04qYrA7HtmYmvTOh7HMye0U6
 kjuORcqxTeM6I/1U5HDAwdGEFYc8yWnjVnkMA+SPdlKqMbzaCvqYn0FUw4Guxdsd
 hkFuxdPdGAr/BrF7w/2HcLKBaWvpW3wAz1C4JNtwl5HL7pWEmzfFF+mILH50TmSU
 r4RKzUrQ2nWNUAsxL+HwaxPXV02/CauVZNZ4ETiQLuJ0HA3yrCabgJpo3y30Iwaw
 GhPRBOwx3A==
 =E6Qd
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmp59RgACgkQmmx57+YA
 GNmo6RAAwTDXcf1PZUXE8Sz9DQH0FITBu58nU6RzKYLwzwLwoR7yzv1wKDPmpA6/
 5pTOwyp6E2kuIMBxfCIKm/1dVXw7aRwLjKrgUij/XxBDI3Ci80OmH+mXgHika6bO
 +4G84JePxDg0J+h22YyIa70ElxXI5A6/gPS7JoQMQ4Shu8nLgPO1JUTWV/RIHuT3
 NH6QE8YcEAtLQJ0IvJhhfHJ618Wzg7t8KjaV33tUgaD5Tf4Rrfk5Tpob/Bf9qCcN
 yXo/El9UmOpY/itbULvBLyRuHlemrPG7gC5hJ0zWDr/69g5+oUAcQWTzlQ5Q2PbO
 l/YORSCsbc7bFqYxk1tdoqxCAVHtSQb5sVKN7tGQVcGJx6ht4MLa1q9nSiySBOHE
 XG1WySSjl7bwgQkx4FhT5CT2ogqJe6lFGPAMMRvmWQA3ZxB7s8VpMxyk8jnoRczc
 nhrqUu9U8/woJeXMXzbyzjkcmHAdn1eyp5rYniz58Qe5ZNZ7tJnwmpfaLvcFEWqZ
 gTsPuxA7h6n8gxf2g502WAdyd24mv8/oeaatS9RyxTOl0W1Ha+k76wpoEj+o+nTa
 2AfnfUJrO7b13rWh72nhsrq0aKK+3LKnb+4Oq899QV1DsZGsCAULiEn5dP8cvnik
 93AeDWQCiXU7wsm3IB/DHk4vcrtayuaDbcqiDO8wB9bkaTkP/xk=
 =Cr80
 -----END PGP SIGNATURE-----

Merge tag 'samsung-dt64-7.3-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt

Samsung DTS ARM64 changes for v7.3, part two

Several non-functional (white-space and style) changes to match with DTS
coding style as reported by recent dt-check-style tool.  Goal is to get
to no `dt-check-style --mode strict` warnings over time.

* tag 'samsung-dt64-7.3-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: exynos: Correct white-space style
  arm64: dts: fsd: Align continued properties and add missing blank lines
  arm64: dts: fsd: Move 'status' to the end to match coding style
  arm64: dts: google: Align continued properties and add missing blank lines
  arm64: dts: google: Move 'status' to the end to match coding style
  arm64: dts: exynos: Re-order clocks and align continued properties
  arm64: dts: exynos5433: Override thermal zones by phandle
  arm64: dts: exynos: Align continued properties and add missing blank lines
  arm64: dts: exynos: Move 'status' to the end to match coding style

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-10 17:58:11 +02:00
Arnd Bergmann
c26bfefed0 More new boards: LincStation E1, Vicharak Vaaman, EmbedFire LubanCat 4,
ArmSoM CM5 + IO-board and the Anbernic RG Vita-Pro handheld
 
 Apart from that some board-level changes and style fixes.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmpzdxcQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgdkmCACF8GcP7MHJJc2vs1uVSOzyHbFXI7oyr6Lb
 hY6VGRWXv1HzrKXIrM4pw3LgHv/NusDAMy8VOQS7DSDSVgo7YS8fBOjvG7AfEKl7
 Rqssz6CbmQ9gZOPdjuzJakvO/cNGEahcUSWXiibrZx5wq9dKXIzKww5DwhFSX8jX
 OIx4JR+r9uY/mx/S0UdIKgopYJMMrU4TJ3EPHZA6lxIxOgYsccbTr8JdYpq3cJaW
 RoLXsZzIWJfvIFdsss9Ke8Sb37Mllc0G4QcQxa0p12CEVVEE+hiURcCMjiZiFfmw
 oPGbCROBNGBew1kQ/4uy/s4FYhfIAKsWHAqJ/OqqEZ5R1P4QzuGG
 =oxHJ
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmp59HgACgkQmmx57+YA
 GNnRBA//Zq16dutiQkzCHOQ8lICTUfaAVgumr8RsfeM34O6QK+NQ0QUtSJS9xEsl
 6F8zoeTdmwQVrWhBv9H4LOLGgLqCBANnOUx0ZrTM2dm5ODRVd8wKfwyRrMtJZvGN
 EloKKzCP39fySoGUPpizcNIkwNPcPPwCj5w6bCISv7fiSD2AXbMSzGFjmDRAuAMX
 q5zEn9EHdR5c7kCStuh48KNZu7P6JUOYGJN8OO8UugFGIB2sj+E96Pm7QdQo9iB1
 EIFSUQNAYiiS5wAPTntoITCL6q6FHxnb7Fv/NZMeQSSYc81X0TLwVrNn0Bp/gt3H
 fU16abQ2xQu8slXvOPvOjeUaO7wHlZrzUjX2ZvTZzAXbiDuWAYQmnzSTtT4uvv4I
 nsO19qNVPInOjQbDVWzF/e02ZKHwOnoB31gtyUBt/39hUS4TPuPXOJEoqM6cxfZM
 rZdSNgiPzYLE/Uar8o3DNn5KRUzzPzsPVkVqZSj5gEydHpKf/NV8qIvYLe63ZX0T
 4kScTxlgCJ106a5eI6H8SQQ+4PfZaznEFhTU1d1N25IogIIClaY3xk3myX74U/lu
 qjmq6NtTI5laLjbG0rB5nqrVDrd3f8mrYVfkqFW/m1ehXY8qn/YPZX8RwWGVOxMb
 CovKkI8wSls8V0HIqyZerKrqinVN+YW6Z+NbeRMtNbx+Jb33Lys=
 =peeG
 -----END PGP SIGNATURE-----

Merge tag 'v7.3-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt

More new boards: LincStation E1, Vicharak Vaaman, EmbedFire LubanCat 4,
ArmSoM CM5 + IO-board and the Anbernic RG Vita-Pro handheld

Apart from that some board-level changes and style fixes.

* tag 'v7.3-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  arm64: dts: rockchip: Add LincStation E1
  dt-bindings: arm: rockchip: Add LincStation E1
  arm64: dts: rockchip: Add Vicharak Vaaman board
  dt-bindings: arm: rockchip: Add Vicharak Vaaman board
  arm64: dts: rockchip: Add icm42607p IMU for RG-DS
  arm64: dts: rockchip: Correct white-space style
  arm64: dts: rockchip: Add EmbedFire LubanCat 4 board
  dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board
  arm64: dts: rockchip: Keep rk3399-roc-pc-plus work LED on
  arm64: dts: rockchip: Enable wireless on rk3399-roc-pc-plus
  arm64: dts: rockchip: Fix rk3399-roc-pc-plus analog audio
  arm64: dts: rockchip: Add CSI-2 bus type to ROCK 5B+ camera overlays
  arm64: dts: rockchip: Drop data-mapping from Engicam PX30 Core
  arm64: dts: rockchip: Add Anbernic RG Vita-Pro
  dt-bindings: arm: rockchip: Add Anbernic RG Vita-Pro
  arm64: dts: rockchip: Add ArmSoM CM5 and CM5-IO
  dt-bindings: arm: rockchip: Add ArmSoM CM5 and CM5-IO

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-10 17:55:33 +02:00
Arnd Bergmann
59944d90a9 Whitespace fixes
-----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmpzdTgQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgZ6/B/9zrgtxbCfOAYPoXeJ21ZO8V/L2+n8sRY36
 bU6Z/E143JEaie9idpnwKEwOFnL4ubIO91l1PJ/Zfn8WvcIvapEdOlw0ECYWbSAa
 nJ2IG7oKh9146HaXPAZcksZQmcbiEn8uOc4dcYnlXu1AVyI06sPSE+MzCdYCrbvn
 Luo1f27Er/JGJxqS+/pvn518sX/jCw+kk0XKVHuYHwFQOQ3scl2jFqDdZGx+9mn6
 gjav9iBeYeDUXEqM7CVMK9SlPF+SQ3R4ZsAQG/f/CMnEKUQ3zAx+mwG21/far5t9
 FEByXxldc2fOHn+Ohcmp5J3MbHzN8ba5JqNVILMYcd5dYtk8739g
 =ywB6
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmp59CkACgkQmmx57+YA
 GNn09w/8DicHMpN+JM12lJDwt/R/mYM/LdN41AlrUypr+ab5wh1dBwUQN8EVBKrU
 2uo7G7KLT/WQt5zTlpQgcPke93g04KZIbDZDdGVUpdCbEO30gHzLcr6WQvQFmBLA
 uDF0AuJ3qrrFZWgZ3n5/fuwWtZC9BMKM61vsZPEMIuTr5oG13SFX/kGHeT8YRfNl
 VV+i6XL1nLA43HcnrcoN5IvSQAKsVWObyn7gpyDqmWyH0fY6GzHnB55SiSrltTpq
 JtaRx6bPI37aeSrhqC/nwOIfhEzIZO4cNAq3WRn78xC42spzhOoTuZVz3CzfFB1h
 FFmANlnSMU4rNmivU05++/2PvdL/gpArlFOqizBBpb20HS4NBhS/8Z5J2xCFB31v
 SoziuD58pCva1YCb6C+z7Yl6PlmyFWvdbiqmANKruqfB9ZneSUipCCeUMb0EdDFk
 kvndEC2VaBwP8OoWWfRFV3esAtkiV+FnGFrn/GvnMTf6Xj6l8RviieN1iNWnVgAM
 iH9s7BoFRkN3ghbDlWZg1L+VsVu8DEajfc5YnNlEdtEvfD+ZBJ9jmZS11fu3552s
 5DO6uYRGBn7q76uQbymTZhRGWo0aC6qByJ+UCg2AiBS3nPszAC8oV8Z2RxSWqwaV
 sBeg3Ca7shLiuD+erZPFQZEQKhI5uQ6onHF0xTW8uNWmIVO2MBc=
 =VMyL
 -----END PGP SIGNATURE-----

Merge tag 'v7.3-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt

Whitespace fixes

* tag 'v7.3-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  ARM: dts: rockchip: Correct white-space style

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-10 17:54:14 +02:00
Dennis Moshegov
d7fc133bf9 timekeeping: Use READ_ONCE/WRITE_ONCE() for xtime_sec to prevent tearing
The timekeeper update path uses a bulk memcpy() to synchronize the
timekeeper structure, which is not guaranteed to be atomic. This allows for
torn reads in ktime_get_real_seconds() on 64-bit systems, where the
sequence counter protection is bypassed for performance.

To prevent reading a torn 64-bit xtime_sec value, enforce atomic-like
access by using WRITE_ONCE() for the critical field before the bulk
memcpy() in timekeeping_update_from_shadow(). Correspondingly, use
READ_ONCE() in ktime_get_real_seconds() to ensure a fresh, consistent load
from memory.

[ tglx: Format changelog and add comment ]

Reported-by: syzbot+72789cd1697965e714ca@syzkaller.appspotmail.com
Signed-off-by: Dennis Moshegov <dennis@xzync.uk>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260724154405.70-1-dennis@xzync.uk
Closes: https://syzkaller.appspot.com/bug?extid=72789cd1697965e714ca
2026-08-10 17:52:19 +02:00
Arnd Bergmann
bfe9922bea ARM Devicetrees for v7.3
Sophgo:
 
 Add initial support for "Duo S" Board.
 This board uses SG2000(old codename CV181xH),
 which is dual-arch, RISC-V and ARM64. This
 patch adds the support for ARM64.
 
 Signed-off-by: Chen Wang <chen.wang@linux.dev>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTYPcWJ6By3aFu8IuKHG95Quc97dgUCanJ/4wAKCRCHG95Quc97
 djWDAQCHF2gqq9CdkNOCnd8S4rgJLoqcf/2ROKS013DaUU2VGwEAh/bXJz5r6mHw
 m7vz8DeYqHGlsSDcAM3QhUA3Ot8zngo=
 =T9De
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmp58WoACgkQmmx57+YA
 GNnagA/+Ig1OuY7L+/SejZdfDmODN4Qld7LZf1P31cYn6eL6rYZL0hmC37LwlpgL
 hQC1dHbpaPN4hd9Dl5I7ZEQizce9iIgOHy9Qt32yqpFNlYGcC7oM8tklJmXjMtOk
 31wl4crrl8+LUhRbcGEGIcrwUfZi+mV525Q9yA+yZ5ge9TvrtlEoPduzodzLGGt6
 MjRAqGKhhxFO17UeIai/ssWumnMFeO1SaUWdaEbfMB2Jg/1XMpyv33L8rydqK3wp
 MgnP94DdMX4sW63+3YTMLLoDPvBWWCVYRKEfC/0OkjfuYRJNXMAE+3IzU2pOsdI3
 6ykJLRYkns6fqsQpx/3faWb0gb8qq9ZGeNBpwiWKcH7ya9Ivde+4wYrEAGyn0V5e
 xf+HwQEdhSetjIdKcnVcjJ90br4q4cHP2vWkSeeiVgLIXwy9TwZniO/F/fg1gX5p
 qhTwXe+FJnQ4TfLIesvz0UI6i0bgjvhdRKPhpVzuFsENooceOiC+jJUvc/dsjQCV
 k6s7iCNJN3+510k/afKgpczxcvHrg1YlacwQXagqs0X7thN42nRbNb0mQ+pWkgX1
 y3h9Sm6OcddWGKjg1GQ52640Dn5xeacutq23GhDpZZx0tAV+z8x9hubk4Q8sDGXW
 ta+BKMIS1dJ6tD5tozeCYm6QP0HuspMZ/JtW5+hlrIfYyuthVBc=
 =hRBP
 -----END PGP SIGNATURE-----

Merge tag 'arm-sophgo-dt-for-v7.3' of https://github.com/sophgo/linux into soc/dt

ARM Devicetrees for v7.3

Sophgo:

Add initial support for "Duo S" Board.
This board uses SG2000(old codename CV181xH),
which is dual-arch, RISC-V and ARM64. This
patch adds the support for ARM64.

Signed-off-by: Chen Wang <chen.wang@linux.dev>

* tag 'arm-sophgo-dt-for-v7.3' of https://github.com/sophgo/linux:
  arm64: dts: sophgo: add initial Milk-V Duo S board support

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-10 17:42:17 +02:00
Linus Torvalds
5eabf07a0b This push contains the following changes:
- Fix lockdep warning regression in rhashtable.
 - Fix default authsize in rfc4309.
 - Fix gcm cryptlen calculation in tegra.
 - Fix qce registration error-path bug.
 - Fix incorrect use of sg_dma_len before mapping in starfive.
 - Allow cbc(paes) to be used with af_alg.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEn51F/lCuNhUwmDeSxycdCkmxi6cFAmpsT0oACgkQxycdCkmx
 i6daNA/+J02CNtbzTpBDOJX/mwY6W3QZFqslzoaywgterDAC72o3tkg9/bEtqbih
 2y1UDh5RTzGoMdoB2BV9Fw8TbwSEFgzNIY7IBzvSxLu0Fu1CWvJmiJkFpY9waVBq
 mj4iCe2U1i3QFXXBd61GDoS1WGMt2exm2QWSxn9tiADwz76w13+84mEH5i+1cn5S
 Ufyz4312hZaeNBYsON2bQ4xeuMbZuxcyE+eIZQ849G2CvjMVbgrE+wNN77n2a6wo
 UI+XHkT/XpiTCYkbFA5ATTWKn/fyEnGQ0IofqdGdj+75Ch1wrswXwb697WzMQwf5
 VrxgWIFhHgzpUjJFlZNx6yd1zs978dyjw3VonILuBKUeris3yQhoYGQ1r89dshrD
 2oL8SFjHR5iSjqtowthO02kWwl9w6U4LnNGNBsXyRz5aYJJtG9ctxchqcIZe8kA5
 YQ2UnQHIfGAYIlSCcpijBGUGXCPJiDXo5ovt7PcNgtkB+/tedPhCWrznRio2ECD3
 Ebi8d48fp3cx9eS5t4C91YP+wG9T7mEgICec6H9xMLhu3MPh0oyP/i2A1e64QPv8
 VVzPbsJMvJRU5wa0/+FkJ922WLp9OkHfcGU8FUx49/zjkskMAhjTcuIEwlqOm7TI
 tsa9AlM6PrNT122WauCvnxDQ4PglsKeuYnAEhqrsbmfpJumd9kM=
 =rHls
 -----END PGP SIGNATURE-----

Merge tag 'v7.2-p3' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6

Pull crypto fixes from Herbert Xu:

 - Fix lockdep warning regression in rhashtable

 - Fix default authsize in rfc4309

 - Fix gcm cryptlen calculation in tegra

 - Fix qce registration error-path bug

 - Fix incorrect use of sg_dma_len before mapping in starfive

 - Allow cbc(paes) to be used with af_alg

* tag 'v7.2-p3' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
  crypto: af_alg - Allow cbc(paes)
  crypto: starfive - use scatterlist length before DMA mapping
  crypto: qce - fix error path in devm_qce_register_algs
  rhashtable: fix false-positive lockdep splat on rhltable destruction
  crypto: tegra - fix rctx->cryptlen calculation in tegra_gcm_do_one_req()
  crypto: ccm - Set rfc4309 maxauthsize from child
2026-08-10 08:36:22 -07:00
Arnd Bergmann
545ecc3577 RISC-V Devicetrees for v7.3
Sophgo:
 
 The changes of this PR are all for CV18xx serials.
 There are three major changes. The first is to allow
 DMA multiplexer setting channel number for DMA controller;
 the second is to add initial RISC-V support for "Duo S"
 board, which uses SG2000, a dual-arch SoC (RISC-V and
 ARM64); the third is to add support for "Duo 256M"
 board, another dev-board based on SG2002 SoC.
 
 Signed-off-by: Chen Wang <chen.wang@linux.dev>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTYPcWJ6By3aFu8IuKHG95Quc97dgUCanKEvQAKCRCHG95Quc97
 dn44AP9HHp2ut8rY0UnmS/s+rCAbWX/2YkhGWdWPPk1o4VkSdQEArt9F9RpXg/Mp
 RfmT/LEx81g7zR7wqpGlpy1a5F+TBw4=
 =SAg0
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmp57JAACgkQmmx57+YA
 GNla7xAAqMRFdMgCOH74zaNtohonnSgbmJi4dL6RakzJHCjZO+VWMnxavg/A8qTb
 DrSugeW0SV1pe/NbOKaJbqZ6xa/gJJitivPNJIgn8uM3WauetzE55isGPb+smR1r
 soqTG/3AYocT88fy7FgLL3GmvY9yd1dAOHA/CFdTpmBdrqfV5fSSmed08wM0lVQe
 O1EgjHe7eNk+v3DYo80buRxwljiW0gpbhFFsz84hbdFoL/Cf/GAXWP1xhZjCTKo1
 9/Zex3J7SsdNAaZjDzMyF0S0eolyAPJW0SzToDkMniE/tSYc2lkjW7R1I55iuQvi
 BJ+kKK1k2/TrSbmvjuvqCEnwfOh9BzXPf4UWuLrUrEVTpdEBtpe0otFGRBqzg0lO
 RkgUPdHWR8uhL57Oos8HM4WH2VN4s0jqP0FN1sUp46fnnQFCEi/nO4vRTnOt+ppy
 HxNjJyQRrP97OH7s7zpUTyCVVJBZPL3EF3NuNCzioooXK3LHI4MSApTtDIt9bPBi
 yS5U1SaUaNm4RwCaFH9QZSQHXdoEXKe0DPX/P9cROr62T6eSyDhZnIIcucveMw+6
 tJie38mJChficq8mCo3/S1P3gMELy5lmBw68XCg/UMBcdV76Mq4AgFq6o5Ow+oXp
 KS/sO+RkxZPD7ImnGLKrSuurJnIsMpOR/69lLFBkZ0LBtdZY9W4=
 =CrHg
 -----END PGP SIGNATURE-----

Merge tag 'riscv-sophgo-dt-for-v7.3' of https://github.com/sophgo/linux into soc/dt

RISC-V Devicetrees for v7.3

Sophgo:

The changes of this PR are all for CV18xx serials.
There are three major changes. The first is to allow
DMA multiplexer setting channel number for DMA controller;
the second is to add initial RISC-V support for "Duo S"
board, which uses SG2000, a dual-arch SoC (RISC-V and
ARM64); the third is to add support for "Duo 256M"
board, another dev-board based on SG2002 SoC.

Signed-off-by: Chen Wang <chen.wang@linux.dev>

* tag 'riscv-sophgo-dt-for-v7.3' of https://github.com/sophgo/linux:
  riscv: dts: sophgo: Add Milk-V Duo 256M board support
  riscv: dts: sophgo: cv180x: Add PWR_GPIO controller
  dt-bindings: soc: sophgo: add Milk-V Duo 256M board
  riscv64: dts: sophgo: add initial Milk-V Duo S board support
  riscv64: dts: sophgo: add SG2000 dtsi
  riscv: dts: sophgo: cv180x: Allow the DMA multiplexer to set channel number for DMA controller

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-10 17:21:50 +02:00
Arnd Bergmann
1f5d8228ca Revert "riscv: dts: spacemit: k3: add i2s0-i2s5 nodes"
This reverts commit cd01c67786, which
caused a build failure:

Lexical error: ../arch/riscv/boot/dts/spacemit/k3.dtsi:1181.20-39 Unexpected 'CLK_MPMU_I2S_SYSCLK'

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-10 17:20:09 +02:00
Marco Elver
5eaec4cf41 arm64: Disable KCSAN instrumentation in delay.o
KCSAN relies on udelay() for injecting delays. To avoid recursively
triggering a watchpoint, where KCSAN sets up watchpoint on an address
that is accessed by udelay() in the same thread, disable instrumentation
in arm64's delay implementation.

Paul found a manifestation of this as follows:

| BUG: KCSAN: data-race in __delay / set_need_resched_current
|
| read (marked) to 0xffff000005899b48 of 8 bytes by interrupt on cpu 8:
|  __delay+0xb0/0x378
|  __udelay+0x4c/0x60
|  kcsan_setup_watchpoint+0x3b4/0x820
|  __tsan_unaligned_write4+0x228/0x26c
|  set_need_resched_current+0x138/0x1a8
|  rcu_exp_handler+0x418/0x4a0
|  __flush_smp_call_function_queue+0x36c/0x4a0
|  generic_smp_call_function_single_interrupt+0x20/0x30
|  ipi_handler+0xec/0x558
|  handle_percpu_devid_irq+0x220/0x2a0
|  generic_handle_domain_irq+0x84/0xb4
|  gic_handle_irq+0x64/0x144
|  call_on_irq_stack+0x30/0x48
|  do_interrupt_handler+0x80/0xb8
|  el1_interrupt+0x3c/0x60
|  el1h_64_irq_handler+0x18/0x24
|  el1h_64_irq+0x6c/0x70
|  smp_call_function_single+0x18c/0x25c
|  sync_rcu_exp_select_node_cpus+0x534/0x8bc
|  rcu_exp_sel_wait_wake+0x358/0xef4
|  wait_rcu_exp_gp+0x30/0x44
|  kthread_worker_fn+0x1b4/0x5dc
|  kthread+0x1d8/0x204
|  ret_from_fork+0x10/0x20
|
| write to 0xffff000005899b4c of 4 bytes by interrupt on cpu 8:
|  set_need_resched_current+0x138/0x1a8
|  [...]

This matches what is already done in arch/x86/lib/Makefile.

Reported-by: "Paul E. McKenney" <paulmck@kernel.org>
Fixes: dd03762ab6 ("arm64: Enable KCSAN")
Signed-off-by: Marco Elver <elver@google.com>
Signed-off-by: Will Deacon <will@kernel.org>
2026-08-10 15:14:13 +00:00
Sergey Lebedev
9b30521074
ASoC: rt1320: run the initialisation preset on the first hardware init
rt1320_io_init() applies the vendor initialisation preset only when the
amplifier's SDCA function status has FUNCTION_NEEDS_INITIALIZATION set:

	if ((amp_func_status & FUNCTION_NEEDS_INITIALIZATION)) {

Its two sibling drivers guard the same write differently, also running
the preset on the first hardware init:

  rt712-sdca.c:  if ((amp_func_status & FUNCTION_NEEDS_INITIALIZATION) ||
                     (!rt712->first_hw_init)) {
  rt722-sdca.c:  if ((amp_func_status & FUNCTION_NEEDS_INITIALIZATION) ||
                     (!rt722->first_hw_init)) {

On the Microsoft Surface Pro 11 (Intel) the RT1320 never sets that bit.
Its function status reads back 0x41 on every boot, cold or warm:

  rt1320-sdca sdw:0:0:025d:1320:01: rt1320_io_init amp func_status=0x41

which is NEWLY_ATTACHED | FUNCTION_HAS_BEEN_RESET: the function reports
that it has been reset and does not consider itself in need of
initialisation. Bit 5 is never set, so the preset never runs,
rt1320_vc_preset() and the MCU patch load are skipped, and the amplifier
is left unprogrammed. rt712 and rt722 would have run it via their
first_hw_init fallback.

Add the same fallback. With it rt1320_vc_preset() executes and the
amplifier reports RT1320_KR0_INT_READY=0x1f where previously it did not.

Signed-off-by: Sergey Lebedev <lsa.uz@pm.me>
Link: https://patch.msgid.link/20260804225853.31585-2-lsa.uz@pm.me
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-10 15:46:13 +01:00
Eshaan Deshmukh
977991fdc4 x86/platform/geode: Remove old TODO message about leds-net5501.c
The TODO comment in alix.c and geos.c mentions moving leds-net5501.c to
platform code. But, leds-net5501.c was already replaced by
arch/x86/platform/geode/net5501.c.

Signed-off-by: Eshaan Deshmukh <eshaan2031@icloud.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Link: https://patch.msgid.link/20260810064953.2048373-1-eshaan2031@icloud.com
2026-08-10 07:39:37 -07:00
Karl Mehltretter
45f8dffc07 tick: Include ktime.h and jiffies.h in linux/tick.h
The !CONFIG_NO_HZ_COMMON stubs use ktime_add(), ktime_get() and TICK_NSEC,
but tick.h includes neither <linux/ktime.h> nor <linux/jiffies.h>. Most
configurations build only because those declarations arrive transitively.

Commit 6440966067 ("cpuset: Remove cpuset_cpu_is_isolated()") removed
<linux/cpuset.h> from <linux/sched/isolation.h>. The <linux/cpuset.h>
include chain had been satisfying these declarations before <linux/tick.h>
was parsed. Commit 8aa76aa415 ("ring-buffer: Use a housekeeping CPU to
wake up waiters") then added <linux/sched/isolation.h> to ring_buffer.c
ahead of any header which provides them. Neither change is wrong on its
own: the failure requires both and appeared in v7.0.

ARM rpc_defconfig + CONFIG_FUNCTION_TRACER fails to build:

  $ make ARCH=arm rpc_defconfig
  $ ./scripts/config -e FTRACE -e FUNCTION_TRACER
  $ make ARCH=arm olddefconfig
  $ make ARCH=arm kernel/trace/ring_buffer.o
  In file included from include/linux/sched/isolation.h:6,
                   from kernel/trace/ring_buffer.c:8:
  include/linux/tick.h: In function 'tick_nohz_get_next_hrtimer':
  include/linux/tick.h:156:9: error: implicit declaration of function
      'ktime_add'; did you mean 'size_add'?
  include/linux/tick.h:156:19: error: implicit declaration of function
      'ktime_get'; did you mean 'time_init'?
  include/linux/tick.h:156:32: error: 'TICK_NSEC' undeclared

Include the headers the file actually uses.

Fixes: 8aa76aa415 ("ring-buffer: Use a housekeeping CPU to wake up waiters")
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Assisted-by: Codex:gpt-5.6-sol
Link: https://patch.msgid.link/20260722062141.19671-1-kmehltretter@gmail.com
2026-08-10 16:38:33 +02:00
Thomas Weißschuh
92e785d887 random: vDSO: Drop custom PAGE_SIZE definitions
These custom definitions where added in commit 7f053812da ("random:
vDSO: minimize and simplify header includes") to avoid pulling in
non-vDSO-safe headers from linux/page.h.

vdso/page.h provides these definitions for the vDSO now. Use that instead.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260724-vdso-random-page-size-v1-1-e69283d36b2f@linutronix.de
2026-08-10 16:27:14 +02:00
Thomas Weißschuh
1f8258de23 LoongArch: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
Now that there is a definition of VDSO_CLOCKMODE_CPU even if no
vDSO is built, the ugly ifdeffery can be removed.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260724-vdso-arch-clockmodes-v4-7-ddbe447be860@linutronix.de
2026-08-10 16:25:22 +02:00
Thomas Weißschuh
f9217a8cc4 clocksource/drivers/timer-riscv: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
Now that there is a definition of VDSO_CLOCKMODE_ARCHTIMER
even if no vDSO is built, the ugly ifdeffery can be removed.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260724-vdso-arch-clockmodes-v4-6-ddbe447be860@linutronix.de
2026-08-10 16:25:21 +02:00
Thomas Weißschuh
3e56253e0c clocksource/drivers/arm_arch_timer: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
Now that there is a definition of VDSO_CLOCKMODE_ARCHTIMER
even if no vDSO is built, the ugly ifdeffery can be removed.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Acked-by: Marc Zyngier <maz@kernel.org>
Link: https://patch.msgid.link/20260724-vdso-arch-clockmodes-v4-5-ddbe447be860@linutronix.de
2026-08-10 16:25:21 +02:00
Thomas Weißschuh
02e7d58cdd clocksource/drivers/mips-gic-timer: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
Now that there is a definition of VDSO_CLOCKMODE_GIC even if no
vDSO is built, the ugly ifdeffery can be removed.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260724-vdso-arch-clockmodes-v4-4-ddbe447be860@linutronix.de
2026-08-10 16:25:21 +02:00
Thomas Weißschuh
b86aefb11c MIPS: csrc-r4k: Remove CONFIG_GENERIC_GETTIMEOFDAY ifdeffery
Now that there is a definition of VDSO_CLOCKMODE_R4K even if no
vDSO is built, the ugly ifdeffery can be removed.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260724-vdso-arch-clockmodes-v4-3-ddbe447be860@linutronix.de
2026-08-10 16:25:21 +02:00
Thomas Weißschuh
1bafc1f659 vDSO: Make clockmode constants available without CONFIG_GENERIC_GETTIMEOFDAY
Some code, for example clocksource drivers, may want to use the vDSO
clockmode constants even when CONFIG_GENERIC_GETTIMEOFDAY=n.
But the symbols are completely hidden in that case, making ugly
ifdeffery necessary.

Always provide the enum definitions.

As not all architectures provide asm/vdso/clocksource.h,
provide an empty stub in asm-generic for it.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Link: https://patch.msgid.link/20260724-vdso-arch-clockmodes-v4-2-ddbe447be860@linutronix.de
2026-08-10 16:25:21 +02:00
Thomas Weißschuh
2d69b891e6 kbuild: Support generated asm-headers in subdirectories
Extend the asm-header stub generation to also handle subdirectories.
An upcoming vdso/ header refactoring requires this.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Reviewed-by: Nicolas Schier <nsc@kernel.org>
Link: https://patch.msgid.link/20260724-vdso-arch-clockmodes-v4-1-ddbe447be860@linutronix.de
2026-08-10 16:25:21 +02:00
Ulf Hansson
79e6c01180 pmdomain: Merge branch fixes into next
Merge the pmdomain fixes for v7.2-rc[n] into the next branch, to allow
them to get tested together with the pmdomain changes that are targeted
for the next release.

Signed-off-by: Ulf Hansson <ulfh@kernel.org>
2026-08-10 16:11:56 +02:00
Rik van Riel
abe7c8b09b x86/CPU: Add a tlbi= cmdline switch
With the recently found INVLPGB / TLBSYNC issue, there has been some
interest in disabling INVLPGB-based TLB flushing, in order to rule out
that CPU issue as a cause of userspace crashes.

Add a kernel command line option to control the TLB flushing behavior.

If the need arises, we will add a "tlbi=broadcast" for the case when TLB
invalidation broadcasts need to be explicitly selected, but this is not
needed now yet.

  [ bp: Rewrite commit message, move to cpu/common.c, add documentation. ]

Fixes: 767ae437a3 ("x86/mm: Add INVLPGB feature and Kconfig entry")
Suggested-by: Borislav Petkov <bp@alien8.de>
Signed-off-by: Rik van Riel <riel@surriel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Cc: <stable@kernel.org>
Link: https://patch.msgid.link/20260729204341.3eb0b5ea@fangorn
2026-08-10 07:09:18 -07:00
Ulf Hansson
98dc55dc05 pmdomain: Merge branch dt into next
Merge the immutable branch dt into next, to allow the updated DT bindings
to be tested together with the pmdomain changes that are targeted for the
next release.

Signed-off-by: Ulf Hansson <ulfh@kernel.org>
2026-08-10 16:05:53 +02:00
Geert Uytterhoeven
4a096d54f9 dt-bindings: power: Document Renesas R-Car X5H Module Controller
Document support for Renesas R-Car X5H Module Controllers, and add
binding definitions for power domains not backed by registers.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Ulf Hansson <ulfh@kernel.org>
2026-08-10 16:05:00 +02:00
Praveen Talari
3314c90a2e pmdomain: arm: Fix -EINVAL from scmi_pd_set_perf_state() on state 0
Currently, scmi_pd_set_perf_state() treats a performance state of 0 as
invalid and returns -EINVAL. As a result, devices attached to SCMI
performance domains can report failures when relinquishing their
performance vote.

The OPP framework use performance state 0 to indicate that no performance
vote is required. For example, dev_pm_opp_set_rate(dev, 0) is commonly
used (by firmware or linux)  when a device is runtime suspended.

A zero performance state does not require any SCMI performance request
to be sent. Treat it as a no-op and return success instead of reporting
an error.

Signed-off-by: Praveen Talari <praveen.talari@oss.qualcomm.com>
Fixes: 2af23ceb86 ("pmdomain: arm: Add the SCMI performance domain")
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulfh@kernel.org>
2026-08-10 15:59:19 +02:00
Rudi Heitbaum
54b2796992
ASoC: rt5645: Perform the initial jack detect at probe
The only initial jack detect is the rt5645_irq(0, rt5645) at the end of
rt5645_set_jack_detect(). A card described with simple-audio-card has no
machine driver to call that, so jack state is only ever sampled from an
edge on hp-detect-gpios.

A headphone already in the socket at boot is therefore never noticed, and
the card is silent with every mixer control set correctly.
rt5645_jack_detect() is what force enables the "LDO2" and "Mic Det Power"
supplies that the "HP amp" widget depends on, and what programs
RT5645_CHARGE_PUMP away from its reset value, so without it "HP amp"
cannot power up. Unplugging and replugging the jack is the only way to
recover.

Do the detect at the end of the component probe when the driver owns a
hp-detect GPIO and the codec's own jack detect is unused, which is the
case that has no other trigger. A machine driver calling
rt5645_set_jack_detect() later just repeats it.

Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
Link: https://patch.msgid.link/anNU3tOUR7rOReSB@5e001e58230e
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-10 14:07:22 +01:00
Dapeng Mi
917d558b15 perf/x86: Optimize ACR handling in match_prev_assignment()
match_prev_assignment() currently forces a mismatch for ACR events, so
ACR counter indices are reprogrammed on every scheduling pass. That
causes avoidable overhead because disable and enable paths must touch
multiple MSRs.

The previous ACR assignment is already cached in acr_cfg_b[]. Use that
state to compare the newly computed ACR counter indices in hwc->config1
against the cached value in acr_cfg_b[hwc->idx]. If they match, skip
unnecessary disable and enable work.

Also tighten is_acr_self_reload_event() so it first verifies the event
is an ACR event before testing for the self-reload case.

Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Thomas Falcon <thomas.falcon@intel.com>
Reviewed-by: Zide Chen <zide.chen@intel.com>
Link: https://patch.msgid.link/20260717080342.1879573-8-dapeng1.mi@linux.intel.com
2026-08-10 15:05:48 +02:00
Dapeng Mi
dd384d661f perf/x86/intel: Fix intel_cap handling on hybrid PMUs
intel_cap (IA32_PERF_CAPABILITIES) updates are currently tied to
X86_FEATURE_ARCH_PERFMON_EXT, but these are independent feature paths.
As a result, hybrid PMU capability state can be updated under the wrong
condition.

Also, intel_pmu_broken_perf_cap() is too narrow. Per RPL018, the missing
PERF_METRICS_AVAILABLE bit affects both Raptor Lake and Meteor Lake
parts, not only the currently covered subset.

Move intel_cap updates out of the ARCH_PERFMON_EXT-gated path, extend
intel_pmu_broken_perf_cap() coverage to both RPL and MTL families, and
introduce intel_update_pmu_caps() to centralize PMU capability updates.

Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Thomas Falcon <thomas.falcon@intel.com>
Reviewed-by: Zide Chen <zide.chen@intel.com>
Link: https://patch.msgid.link/20260717080342.1879573-7-dapeng1.mi@linux.intel.com
2026-08-10 15:05:48 +02:00
Dapeng Mi
3ba87c5bf1 perf/x86: Remove stale fixed counter helper and fix hybrid PMU access
On hybrid systems, init_hw_perf_events() can call check_hw_exists() with
the global PMU pointer after perf_is_hybrid is set. In that case,
fixed_counter_disabled() uses hybrid() on a non-hybrid PMU object, so the
intel_ctrl access is taken from the wrong layout and can read out of
bounds.

fixed_counter_disabled() was added in commit 32451614da
("perf/x86/intel: Support CPUID 10.ECX to disable fixed counters"), when
fixed counters were tracked via num_fixed_counters. Today fixed counters
are represented by fixed_cntr_mask, so this helper is obsolete.

Remove fixed_counter_disabled() and its callers, and rely directly on the
fixed-counter bitmask. With the helper gone, check_hw_exists() no longer
needs a PMU argument, so drop that parameter as well. This removes the
invalid hybrid access and closes the out-of-bounds read risk.

Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Thomas Falcon <thomas.falcon@intel.com>
Reviewed-by: Zide Chen <zide.chen@intel.com>
Link: https://patch.msgid.link/20260717080342.1879573-6-dapeng1.mi@linux.intel.com
2026-08-10 15:05:48 +02:00