Commit graph

1,403,262 commits

Author SHA1 Message Date
Niklas Schnelle
47c3978448 s390/pci: Prevent self deletion in disable_slot()
As disable_slot() takes a struct zpci_dev from the Configured to the
Standby state. In Standby there is still a hotplug slot so this is not
usually a case of sysfs self deletion. This is important because self
deletion gets very hairy in terms of locking (see for example
recover_store() in arch/s390/pci/pci_sysfs.c).

Because the pci_dev_put() is not within the critical section of the
zdev->state_lock however, disable_slot() can turn into a case of self
deletion if zPCI device event handling slips between the mutex_unlock()
and the pci_dev_put(). If the latter is the last put and
zpci_release_device() is called this then tries to remove the hotplug
slot via zpci_exit_slot() which will try to remove the hotplug slot
directory the disable_slot() is part of i.e. self deletion.

Prevent this by widening the zdev->state_lock critical section to
include the pci_dev_put() which is then guaranteed to happen with the
struct zpci_dev still in Standby state ensuring it will not lead to
a zpci_release_device() call as at least the zPCI event handling code
still holds a reference.

Cc: stable@vger.kernel.org
Fixes: a46044a92a ("s390/pci: fix zpci_zdev_put() on reserve")
Reviewed-by: Gerd Bayer <gbayer@linux.ibm.com>
Tested-by: Gerd Bayer <gbayer@linux.ibm.com>
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2025-05-22 16:12:41 +02:00
Niklas Schnelle
d76f963329 s390/pci: Remove redundant bus removal and disable from zpci_release_device()
Remove zpci_bus_remove_device() and zpci_disable_device() calls from
zpci_release_device(). These calls were done when the device
transitioned into the ZPCI_FN_STATE_STANDBY state which is guaranteed to
happen before it enters the ZPCI_FN_STATE_RESERVED state. When
zpci_release_device() is called the device is known to be in the
ZPCI_FN_STATE_RESERVED state which is also checked by a WARN_ON().

Cc: stable@vger.kernel.org
Fixes: a46044a92a ("s390/pci: fix zpci_zdev_put() on reserve")
Reviewed-by: Gerd Bayer <gbayer@linux.ibm.com>
Reviewed-by: Julian Ruess <julianr@linux.ibm.com>
Tested-by: Gerd Bayer <gbayer@linux.ibm.com>
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2025-05-22 16:12:25 +02:00
Wolfram Sang
370f86bc07 drm: renesas: rcar-du: use proper naming for R-Car
Not RCAR, but R-Car.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Link: https://lore.kernel.org/r/20250522103530.51972-2-wsa+renesas@sang-engineering.com
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
2025-05-22 17:06:04 +03:00
Mikulas Patocka
050a3e71ce dm mpath: replace spin_lock_irqsave with spin_lock_irq
Replace spin_lock_irqsave/spin_unlock_irqrestore with
spin_lock_irq/spin_unlock_irq at places where it is known that interrupts
are enabled.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2025-05-22 15:56:42 +02:00
Greg Kroah-Hartman
0ca7cb7089 IIO: New device support, features and cleanup for 6.16 - take 2
Note - last minute rebase was to drop a typo patch that I'd accidentally
 picked up (in the microblaze arch Kconfig)
 Take 2 is due to that rebase messing up some fixes tags that were
 referring to patches after that point.
 
 There is a known merge conflict due to changes in neighbouring lines.
 
 Stephen's resolution in linux-next is:
 https://lore.kernel.org/linux-next/20250506155728.65605bae@canb.auug.org.au/
 
 Added 3 named IIO reviewers to MAINTAINERS. This is a reflection of those
 who have been doing much of this work for some time. Lars-Peter is
 removed from the entry having moved on to other topics.  Thanks
 Nuno, David and Andy for stepping up and Lars-Peter for all your
 hard work in the past!
 
 Includes the usual mix of new device support, features and general
 cleanup.
 
 This time we also have some tree wide changes.
 
 - Rip out the iio_device_claim_direct_scoped() as it proved hard to work
   with.  This series includes quite a few related cleanups such as use
   of guard or factoring code out to allow direct returns.
 - Switch from iio_device_claim/release_direct_mode() to new
   iio_device_claim/release_direct() which is structured so that sparse
   can warn on failed releases. There were a few false positives but
   those were mostly in code that benefited from being cleaned up as part
   of this process.
 - Introduce iio_push_to_buffers_with_ts() to replace the _timestamp()
   version over time. This version takes the size of the supplied buffer
   which the core checks is at least as big as expected by calculation
   from channel descriptions of those channels enabled. Use this in
   an initial set of drivers.
 - Add macros for IIO_DECLARE_BUFFER_WITH_TS() and
   IIO_DECLARE_DMA_BUFFER_WITH_TS() to avoid lots of fiddly code to ensure
   correctly aligned buffers for timestamps being added onto the end of
   channel data.
 
 New device support
 ------------------
 
 adi,ad3530r
 - New driver for AD3530, AD3530R, AD3531 and AD3531R DACs with
   programmable gain controls. R variants have internal references.
 adi,ad7476
 - Add support (dt compatible only) for the Rohm BU79100G ADC which is
   fully compatible with the ti,ads7866.
 adi,ad7606
 - Support ad7606c-16 and ad7606c-18 devices. Includes switch to dynamic
   channel information allocation.
 adi,ad7380
 - Add support for the AD7389-4
 dfrobot,sen0322
 - New driver for this oxygen sensor.
 mediatek,mt2701-auxadc
 - Add binding for MT6893 which is fully compatible with already supported
   MT8173.
 meson-saradc
 - Support the GXLX SoCs.  Mostly this is a workaround for some unrelated
   clock control bits found in the ADC register map.
 nuvoton,nct7201
 - New driver for NCT7201 and NCT7202 I2C ADCs.
 rohm,bd79124
 - New driver for this 12-bit, 8-channel SAR ADC.
 - Switch to new set_rv etc gpio callbacks that were added in 6.15.
 rohm,bd79703
 - Add support for BD79700, BD79701 and BD79702 DACs that have subsets of
   functionality of the already supported bd79703.  Included making this
   driver suitable for support device variants.
 st,stm32-lptimer
 - Add support for stm32pm25 to this trigger.
 
 Features
 --------
 
 Beyond IIO
 - Property iterator for named children.
 core
 - Enable writes for 64 bit integers used for standard IIO ABI elements.
   Previously these could be read only.
 - Helper library that should avoid code duplication for simpler ADC
   bindings that have a child node per channel.
 - Enforce that IIO_DMA_MINALIGN is always at least 8 (almost always true
   and simplifies code on all significant architectures)
 core/backend
 - Add support to control source of data - useful when the HDL includes
   things like generated ramps for testing purposes. Enable this for
   adi-axi-dac
 adi,ad3552-hs
 - Add debugfs related callbacks to allow debug access to register contents.
 adi,ad4000
 - Support SPI offload with appropriate FPGA firmware along with improving
   documentation.
 adi,ad7293
 - Add support for external reference voltage.
 adi,ad7606
 - Support SPI offload.
 adi,ad7768-1
 - Support reset GPIO.
 adi,admv8818
 - Support filter frequencies beyond 2^32.
 adi,adxl345
 - Add single and double tap events.
 hid-sensor-prox
 - Support 16-bit report sizes as seen on some Intel platforms.
 invensense,icm42600
 - Enable use of named interrupts to avoid problems with some wiring choices.
   Get the interrupt by name, but fallback to previous assumption on the first
   being INT1 if no names are supplied.
 microchip,mcp3911
 - Add reset gpio support.
 rohm,bh7150
 - Add reset gpio support.
 st,stm32
 - Add support to control oversampling.
 ti,adc128s052
 - Add support for ROHM BD79104 which is early compatible with the TI
   parts already supported by this driver. Includes some general driver
   cleanup and a separate dt binding.
 - Simplify reference voltage handling by assuming it is fixed after enabling
   the supply.
 winsen,mhz19b
 - New driver for this C02 sensor.
 
 Cleanup and minor fixes
 -----------------------
 
 dt-bindings
 - Correct indentation and style for DTS examples.
 - Use unevalutateProperties for SPI devices instead of additionalProperties
   to allow generic SPI properties from spi-peripheral-props.yaml
 ABI Docs
 - Add missing docs for sampling_frequency when it applies only to events.
 Treewide
 - Various minor tweaks, comment fixes and similar.
 - Sort TI ADCs in Kconfig that had gotten out of order.
 - Switch various drives that provide GPIO chip functionality to the new
   callbacks with return values.
 - Standardize on { } formatting for all array sentinels.
 - Make use of aligned_s64 in a few places to replace either wrong types
   or manually defined equivalents.
 - Drop places where spi bits_per_word is set to 8 because that is the
   default anyway.
 
 adi,ad_sigma_delta library
 - Avoid a potential use of uninitialized data if reg_size has a value
   that is not supported (no drivers hit this but it is reasonable hardening)
 adi,ad4030
 - Add error checking for scan types and no longer store it in state.
 - Rework code to reduce duplication.
 - Move setting the mode from buffer preenable() to update_scan_mode(),
   better matching expected semantics of the two different callbacks.
 - Improve data marshalling comments.
 adi,ad4695
 - Use u16 for buffer elements as oversampling is not yet supported except
   with SPI offload (which doesn't use this path).
 adi,ad5592r
 - Clean up destruction of mutexes.
 - Use lock guards to simplify code (later patch fixes a missed unlock)
 adi,ad5933
 - Correct some incorrect settling times.
 adi,ad7091
 - Deduplicate handling of writable vs volatile registers as they are the
   inverse of each other for this device.
 adi,ad7124
 - Fix 3db Filter frequency.
 - Remove ability to directly write the filter frequency (which was broken)
 - Register naming improvements.
 adi,ad7606
 - Add a missing return value check.
 - Fill in max sampling rates for all chips.
 - Use devm_mutex_init()
 - Fix up some kernel-doc formatting issues.
 - Remove some camel case that snuck in.
 - Drop setting address field in channels as easily established from other
   fields.
 - Drop unnecessary parameter to ad76060_scale_setup_cb_t.
 adi,ad7768-1
 - Convert to regmap.
 - Factor out buffer allocation.
 - Tidy up headers.
 adi,ad7944
 - Stop setting bits_per_word in SPI xfers with no data.
 adi,ad9832
 - Add of_device_id table rather than just relying on fallbacks.
 - Use FIELD_PREP() to set values of fields.
 adi,admv1013
 - Cleanup a pointless ternary.
 adi,admv8818
 - Fix up LPF Band 5 frequency which was slightly wrong.
 - Fix an integer overflow.
 - Fix range calculation
 adi,adt7316
 - Replace irqd_get_trigger_type(irq_get_irq_data()) with simpler
   irq_get_trigger_type()
 adi,adxl345
 - Use regmap cache instead of various state variables that were there to
   reduce bus accesses.
 - Make regmap return value checking consistent across all call sites.
 adi,axi-dac
 - Add a check on number of channels (0 to 15 valid)
 allwinner,sun20i
 - Use new adc-helpers to replace local parsing code for channel nodes.
 bosch,bmp290
 - Move to local variables for sensor data marshalling removing the need
   for a messy definition that has to work for all supported parts.
   Follow up fix adds a missing initialization.
 dynaimage,al3010 and dynaimage,al3320a
 - Various minor cleanup to bring these drivers inline with reviewed feedback
   given on a new driver.
 - Fix an error path in which power down is not called when it should be.
 - Switch to regmap.
 google,cros_ec
 - Fix up a flexible array in middle of structure warning.
 - Flush fifo when changing the timeout to avoid potential long wait
   for samples.
 hid-sensor-rotation
 - Remove an __aligned(16) marking that doesn't seem to be justified.
 kionix,kxcjk-1013
 - Deduplicate code for setting up interrupts.
 microchip,mcp3911
 - Fix handling of conversion results register which differs across supported
   devices.
 idt,zopt2201
 - Avoid duplicating register lists as all volatile registers are the
   inverse of writeable registers on this device.
 renesas,rzg2l
 - Use new adc-helpers to replace local parsing code for channel nodes.
 ti,ads1298
 - Fix a missing Kconfig dependency.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAmgt1EgRHGppYzIzQGtl
 cm5lbC5vcmcACgkQVIU0mcT0Foii3g//bZJT2/rHGIkU/MKUsYQCZGh5ux7X59Kk
 DT8R7i8RYg2dshbtkkHUn/S6yC3OX84q3Legzy8TtHkPvGMK1NSwWCrn2cqkCZdG
 4kksfq3P41FmRrpSfm4p+WSAD9nYzA/LToSLdwGIOa44lKxlCElBgsIDz/HxwXLB
 N08H5jniST+cmSWAkkxCj15jcKXGtuIUS3XSCffwlzQZNPHp7guk4u+5EiUaPwvy
 X75iZ6SthUo9GfE6QyhE4rdOceix6S5wsQrKVpGKB7ZuQbXYQxlvNVt/l5p6MGdY
 teoqB7CyUADD1yHZp9L85+JSqjbodxm5a/Y9b0wQKHV33dxphEVZeli9t+VZYg6K
 fSM5xq0Cmt0msXLGRgB1uvZcEfj+vlkn7SN9nyyfTN2nXoac1E/MYCEiCLMhOj6D
 jxwc1aQDwaT+f6U6mRyRab2+TPea7AOv81x0MyRclOArqY4NCOPIG+XvC2nouYXk
 9MSyK4FIysbINjenFCZdpdibp3HKWGqc8rTv3NWrx7CejAYQoEkYW5WA9qyzy/I8
 8gDbcQskcYcehrI8ztc1ratfKl5k0QJPCgcLvuTpxK3PkQCgX+dGnL1EXW7D4BRx
 7Gl6O7gW7JR6kVx7LidJAxUSykoCdtPyiDxfEU8ypERiype2E6EJN/Bn11o1P8zr
 VZ/PdGti5gg=
 =vLKV
 -----END PGP SIGNATURE-----

Merge tag 'iio-for-6.16a-take2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next

Jonathan writes:

IIO: New device support, features and cleanup for 6.16 - take 2

Note - last minute rebase was to drop a typo patch that I'd accidentally
picked up (in the microblaze arch Kconfig)
Take 2 is due to that rebase messing up some fixes tags that were
referring to patches after that point.

There is a known merge conflict due to changes in neighbouring lines.

Stephen's resolution in linux-next is:
https://lore.kernel.org/linux-next/20250506155728.65605bae@canb.auug.org.au/

Added 3 named IIO reviewers to MAINTAINERS. This is a reflection of those
who have been doing much of this work for some time. Lars-Peter is
removed from the entry having moved on to other topics.  Thanks
Nuno, David and Andy for stepping up and Lars-Peter for all your
hard work in the past!

Includes the usual mix of new device support, features and general
cleanup.

This time we also have some tree wide changes.

- Rip out the iio_device_claim_direct_scoped() as it proved hard to work
  with.  This series includes quite a few related cleanups such as use
  of guard or factoring code out to allow direct returns.
- Switch from iio_device_claim/release_direct_mode() to new
  iio_device_claim/release_direct() which is structured so that sparse
  can warn on failed releases. There were a few false positives but
  those were mostly in code that benefited from being cleaned up as part
  of this process.
- Introduce iio_push_to_buffers_with_ts() to replace the _timestamp()
  version over time. This version takes the size of the supplied buffer
  which the core checks is at least as big as expected by calculation
  from channel descriptions of those channels enabled. Use this in
  an initial set of drivers.
- Add macros for IIO_DECLARE_BUFFER_WITH_TS() and
  IIO_DECLARE_DMA_BUFFER_WITH_TS() to avoid lots of fiddly code to ensure
  correctly aligned buffers for timestamps being added onto the end of
  channel data.

New device support
------------------

adi,ad3530r
- New driver for AD3530, AD3530R, AD3531 and AD3531R DACs with
  programmable gain controls. R variants have internal references.
adi,ad7476
- Add support (dt compatible only) for the Rohm BU79100G ADC which is
  fully compatible with the ti,ads7866.
adi,ad7606
- Support ad7606c-16 and ad7606c-18 devices. Includes switch to dynamic
  channel information allocation.
adi,ad7380
- Add support for the AD7389-4
dfrobot,sen0322
- New driver for this oxygen sensor.
mediatek,mt2701-auxadc
- Add binding for MT6893 which is fully compatible with already supported
  MT8173.
meson-saradc
- Support the GXLX SoCs.  Mostly this is a workaround for some unrelated
  clock control bits found in the ADC register map.
nuvoton,nct7201
- New driver for NCT7201 and NCT7202 I2C ADCs.
rohm,bd79124
- New driver for this 12-bit, 8-channel SAR ADC.
- Switch to new set_rv etc gpio callbacks that were added in 6.15.
rohm,bd79703
- Add support for BD79700, BD79701 and BD79702 DACs that have subsets of
  functionality of the already supported bd79703.  Included making this
  driver suitable for support device variants.
st,stm32-lptimer
- Add support for stm32pm25 to this trigger.

Features
--------

Beyond IIO
- Property iterator for named children.
core
- Enable writes for 64 bit integers used for standard IIO ABI elements.
  Previously these could be read only.
- Helper library that should avoid code duplication for simpler ADC
  bindings that have a child node per channel.
- Enforce that IIO_DMA_MINALIGN is always at least 8 (almost always true
  and simplifies code on all significant architectures)
core/backend
- Add support to control source of data - useful when the HDL includes
  things like generated ramps for testing purposes. Enable this for
  adi-axi-dac
adi,ad3552-hs
- Add debugfs related callbacks to allow debug access to register contents.
adi,ad4000
- Support SPI offload with appropriate FPGA firmware along with improving
  documentation.
adi,ad7293
- Add support for external reference voltage.
adi,ad7606
- Support SPI offload.
adi,ad7768-1
- Support reset GPIO.
adi,admv8818
- Support filter frequencies beyond 2^32.
adi,adxl345
- Add single and double tap events.
hid-sensor-prox
- Support 16-bit report sizes as seen on some Intel platforms.
invensense,icm42600
- Enable use of named interrupts to avoid problems with some wiring choices.
  Get the interrupt by name, but fallback to previous assumption on the first
  being INT1 if no names are supplied.
microchip,mcp3911
- Add reset gpio support.
rohm,bh7150
- Add reset gpio support.
st,stm32
- Add support to control oversampling.
ti,adc128s052
- Add support for ROHM BD79104 which is early compatible with the TI
  parts already supported by this driver. Includes some general driver
  cleanup and a separate dt binding.
- Simplify reference voltage handling by assuming it is fixed after enabling
  the supply.
winsen,mhz19b
- New driver for this C02 sensor.

Cleanup and minor fixes
-----------------------

dt-bindings
- Correct indentation and style for DTS examples.
- Use unevalutateProperties for SPI devices instead of additionalProperties
  to allow generic SPI properties from spi-peripheral-props.yaml
ABI Docs
- Add missing docs for sampling_frequency when it applies only to events.
Treewide
- Various minor tweaks, comment fixes and similar.
- Sort TI ADCs in Kconfig that had gotten out of order.
- Switch various drives that provide GPIO chip functionality to the new
  callbacks with return values.
- Standardize on { } formatting for all array sentinels.
- Make use of aligned_s64 in a few places to replace either wrong types
  or manually defined equivalents.
- Drop places where spi bits_per_word is set to 8 because that is the
  default anyway.

adi,ad_sigma_delta library
- Avoid a potential use of uninitialized data if reg_size has a value
  that is not supported (no drivers hit this but it is reasonable hardening)
adi,ad4030
- Add error checking for scan types and no longer store it in state.
- Rework code to reduce duplication.
- Move setting the mode from buffer preenable() to update_scan_mode(),
  better matching expected semantics of the two different callbacks.
- Improve data marshalling comments.
adi,ad4695
- Use u16 for buffer elements as oversampling is not yet supported except
  with SPI offload (which doesn't use this path).
adi,ad5592r
- Clean up destruction of mutexes.
- Use lock guards to simplify code (later patch fixes a missed unlock)
adi,ad5933
- Correct some incorrect settling times.
adi,ad7091
- Deduplicate handling of writable vs volatile registers as they are the
  inverse of each other for this device.
adi,ad7124
- Fix 3db Filter frequency.
- Remove ability to directly write the filter frequency (which was broken)
- Register naming improvements.
adi,ad7606
- Add a missing return value check.
- Fill in max sampling rates for all chips.
- Use devm_mutex_init()
- Fix up some kernel-doc formatting issues.
- Remove some camel case that snuck in.
- Drop setting address field in channels as easily established from other
  fields.
- Drop unnecessary parameter to ad76060_scale_setup_cb_t.
adi,ad7768-1
- Convert to regmap.
- Factor out buffer allocation.
- Tidy up headers.
adi,ad7944
- Stop setting bits_per_word in SPI xfers with no data.
adi,ad9832
- Add of_device_id table rather than just relying on fallbacks.
- Use FIELD_PREP() to set values of fields.
adi,admv1013
- Cleanup a pointless ternary.
adi,admv8818
- Fix up LPF Band 5 frequency which was slightly wrong.
- Fix an integer overflow.
- Fix range calculation
adi,adt7316
- Replace irqd_get_trigger_type(irq_get_irq_data()) with simpler
  irq_get_trigger_type()
adi,adxl345
- Use regmap cache instead of various state variables that were there to
  reduce bus accesses.
- Make regmap return value checking consistent across all call sites.
adi,axi-dac
- Add a check on number of channels (0 to 15 valid)
allwinner,sun20i
- Use new adc-helpers to replace local parsing code for channel nodes.
bosch,bmp290
- Move to local variables for sensor data marshalling removing the need
  for a messy definition that has to work for all supported parts.
  Follow up fix adds a missing initialization.
dynaimage,al3010 and dynaimage,al3320a
- Various minor cleanup to bring these drivers inline with reviewed feedback
  given on a new driver.
- Fix an error path in which power down is not called when it should be.
- Switch to regmap.
google,cros_ec
- Fix up a flexible array in middle of structure warning.
- Flush fifo when changing the timeout to avoid potential long wait
  for samples.
hid-sensor-rotation
- Remove an __aligned(16) marking that doesn't seem to be justified.
kionix,kxcjk-1013
- Deduplicate code for setting up interrupts.
microchip,mcp3911
- Fix handling of conversion results register which differs across supported
  devices.
idt,zopt2201
- Avoid duplicating register lists as all volatile registers are the
  inverse of writeable registers on this device.
renesas,rzg2l
- Use new adc-helpers to replace local parsing code for channel nodes.
ti,ads1298
- Fix a missing Kconfig dependency.

* tag 'iio-for-6.16a-take2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (260 commits)
  dt-bindings: iio: adc: Add ROHM BD79100G
  iio: adc: add support for Nuvoton NCT7201
  dt-bindings: iio: adc: add NCT7201 ADCs
  iio: chemical: Add driver for SEN0322
  dt-bindings: trivial-devices: Document SEN0322
  iio: adc: ad7768-1: reorganize driver headers
  iio: bmp280: zero-init buffer
  iio: ssp_sensors: optimalize -> optimize
  HID: sensor-hub: Fix typo and improve documentation
  iio: admv1013: replace redundant ternary operator with just len
  iio: chemical: mhz19b: Fix error code in probe()
  iio: adc: at91-sama5d2: use IIO_DECLARE_BUFFER_WITH_TS
  iio: accel: sca3300: use IIO_DECLARE_BUFFER_WITH_TS
  iio: adc: ad7380: use IIO_DECLARE_DMA_BUFFER_WITH_TS
  iio: adc: ad4695: rename AD4695_MAX_VIN_CHANNELS
  iio: adc: ad4695: use IIO_DECLARE_DMA_BUFFER_WITH_TS
  iio: introduce IIO_DECLARE_BUFFER_WITH_TS macros
  iio: make IIO_DMA_MINALIGN minimum of 8 bytes
  iio: pressure: zpa2326_spi: remove bits_per_word = 8
  iio: pressure: ms5611_spi: remove bits_per_word = 8
  ...
2025-05-22 15:54:52 +02:00
Miguel Ojeda
8cbc95f983 rust: workaround bindgen issue with forward references to enum types
`bindgen` currently generates the wrong type for an `enum` when there
is a forward reference to it. For instance:

    enum E;
    enum E { A };

generates:

    pub const E_A: E = 0;
    pub type E = i32;

instead of the expected:

    pub const E_A: E = 0;
    pub type E = ffi::c_uint;

The issue was reported to upstream `bindgen` [1].

Now, both GCC and Clang support silently these forward references to
`enum` types, unless `-Wpedantic` is passed, and it turns out that some
headers in the kernel depend on them.

Thus, depending on how the headers are included, which in turn may depend
on the kernel configuration or the architecture, we may get a different
type on the Rust side for a given C `enum`.

That can be quite confusing, to say the least, especially since
developers may only notice issues when building for other architectures
like in [2]. In particular, they may end up forcing a cast and adding
an `#[allow(clippy::unnecessary_cast)]` like it was done in commit
94e05a66ea ("rust: hrtimer: allow timer restart from timer handler"),
which isn't great.

Instead, let's have a section at the top of our `bindings_helper.h` that
`#include`s the headers with the affected types -- hopefully there are
not many cases and there is a single ordering that covers all cases.

This allows us to remove the cast and the `#[allow]`, thus keeping the
correct code in the source files. When the issue gets resolved in upstream
`bindgen` (and we update our minimum `bindgen` version), we can easily
remove this section at the top.

Link: https://github.com/rust-lang/rust-bindgen/issues/3179 [1]
Link: https://lore.kernel.org/rust-for-linux/87tt7md1s6.fsf@kernel.org/ [2]
Acked-by: Andreas Hindborg <a.hindborg@kernel.org>
Link: https://lore.kernel.org/r/20250325184309.97170-1-ojeda@kernel.org
[ Added extra paragraph on the comment to clarify that the workaround may
  not be possible in some cases. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2025-05-22 15:39:16 +02:00
Mark Brown
7ce3bf76c3
Add Tegra264 support in AHUB drivers
Merge series from "Sheetal ." <sheetal@nvidia.com>:

The patch series includes the necessary changes to enable
support for the Tegra264 platforms in AHUB drivers.
2025-05-22 14:38:05 +01:00
Kory Maincent
4ff4d86f6c net: Add support for providing the PTP hardware source in tsinfo
Multi-PTP source support within a network topology has been merged,
but the hardware timestamp source is not yet exposed to users.
Currently, users only see the PTP index, which does not indicate
whether the timestamp comes from a PHY or a MAC.

Add support for reporting the hwtstamp source using a
hwtstamp-source field, alongside hwtstamp-phyindex, to describe
the origin of the hardware timestamp.

Remove HWTSTAMP_SOURCE_UNSPEC enum value as it is not used at all.

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
Link: https://patch.msgid.link/20250519-feature_ptp_source-v4-1-5d10e19a0265@bootlin.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-05-22 15:32:00 +02:00
Chaoyi Chen
70a299ed2e dt-bindings: display: rockchip: Convert cdn-dp-rockchip.txt to yaml
Convert cdn-dp-rockchip.txt to yaml.

Add new "port@1" property which represents the CDN DP output to keep
the same style as the other display interfaces.

This patch also changes the constraints for "phys" and "extcon". For
the original binding, only one phy and the corresponding extcon can
be specified. In the new binding, one or two phys can be specified.
Since the RK3399 has two DP-USB PHYs, specifying one allows output
via the corresponding PHY, while specifying two lets the driver
choose one PHY for output. This rule also applies to extcon, which
provides the cable state for the corresponding PHY.

Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20250520024718.142-3-kernel@airkyi.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2025-05-22 07:19:20 -05:00
Mathieu Dubois-Briand
1c12fbdf40
regmap: irq: Add support for chips without separate IRQ status
Some GPIO chips allow to rise an IRQ on GPIO level changes but do not
provide an IRQ status for each separate line: only the current gpio
level can be retrieved.

Add support for these chips, emulating IRQ status by comparing GPIO
levels with the levels during the previous interrupt.

Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20250522-mdb-max7360-support-v9-5-74fc03517e41@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-05-22 13:11:50 +01:00
Richard Fitzgerald
fd4b6c0fdf
ASoC: wm_adsp: Make cirrus_dir const
The cirrus_dir pointer should be const data but was missing the second
const needed to achieve this.

I haven't marked this as a 'Fixes' because it isn't causing any bugs,
it's only a code improvement.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20250522103816.543919-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-05-22 12:29:53 +01:00
Arnd Bergmann
5963edd98a FSL SOC Changes for 6.16:
- Various fixes and cleanups from Ioana on fsl-mc bus driver
   - Other misc fixes on fsl-mc bus driver
   - A build fix on DPAA2 driver
   - Some preparation work from Kees on qbman driver
   - Some cleanup on FSL qe interrupt driver init
 -----BEGIN PGP SIGNATURE-----
 
 iJIEABYKADoWIQQQ/+b4s5DeF6zCYyNoqS/rAbjdeAUCaChUGBwcY2hyaXN0b3Bo
 ZS5sZXJveUBjc2dyb3VwLmV1AAoJEGipL+sBuN14P8cBAIWy+9x5gfkg7ndHDYQk
 4DKYVuAC2ox4HRgQr/lAAyRzAP9zhtL/r8xjSeomn0Uk/vGbzdRNqQo5/l3vbp5i
 Tj8KDw==
 =lpqg
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmgvCN8ACgkQmmx57+YA
 GNmAFQ//e6MoQofsMrBvJWDOD20puXPYRJze7w34lzloAjffsU5qPDC+ggLdMogI
 9HLm+Fh0QUC7z8bfjTTGKMmE2nV0+apZE227orcvTzgSq/EV0VVPCEkPXmg+I3CK
 7bjP6BoTTZCZg1sxesEVnPz82Z0kGqKBSoG73pGYCw4VAkOXkbi1fFSTDGmlz1lY
 F6Yc54J32mTFni2IKw65wO5l2NOTGPXMUMkdjITyMjQqo8fjPfmenkp73qjBLPc2
 ansDK0ULiUtSNP+jTNDOxvRPHWowiKdUnK3SQwWPpngmhWUJyvtM+IhtsKpWyuPI
 g8i8xS+FI+hw5I0fd9vzbzlRzSyL0c0ryqcIuWyXnhS8O5h7gvgVqlSHamp0TrQ/
 ps1yTbeI0hHmcGWOHhJeNTnPal6o2zOSGqWBGxzXJ+iooAEP12xNh1/yE/BPcs+c
 lE39Y93I9kNvP28UptbOU3Z8Xpf9kj1hSV7W8c6alYCUcbZsuPL7qtf0cP6um/j2
 NtiRfCsIT+jvwgfsiVBJtA311qN3WGiJETMpAh5COm39SqBcaLWh9tUXNDx+pvjF
 FuO6w78E2BWofgEAq9jxg255CKCZD7mIq1590WY4ntviZw/tqHE/gMJP0c0jQr+3
 58d+NY7vLjPoF0fZpkVwNyPc9Yp3oyH0XuEZvTNb9fvSGVdHdj8=
 =StL6
 -----END PGP SIGNATURE-----

Merge tag 'soc_fsl-6.16-1' of https://github.com/chleroy/linux into soc/drivers

FSL SOC Changes for 6.16:
  - Various fixes and cleanups from Ioana on fsl-mc bus driver
  - Other misc fixes on fsl-mc bus driver
  - A build fix on DPAA2 driver
  - Some preparation work from Kees on qbman driver
  - Some cleanup on FSL qe interrupt driver init

* tag 'soc_fsl-6.16-1' of https://github.com/chleroy/linux:
  soc: fsl: qe: Consolidate chained IRQ handler install/remove
  bus: fsl-mc: Use strscpy() instead of strscpy_pad()
  soc: fsl: qbman: Remove const from portal->cgrs allocation type
  bus: fsl_mc: Fix driver_managed_dma check
  bus: fsl-mc: increase MC_CMD_COMPLETION_TIMEOUT_MS value
  bus: fsl-mc: drop useless cleanup
  bus: fsl-mc: add the dprc_get_mem() command to the whitelist
  bus: fsl-mc: fix GET/SET_TAILDROP command ids
  bus: fsl-mc: do not add a device-link for the UAPI used DPMCP device
  bus: fsl-mc: fix double-free on mc_dev
  soc: fsl: Do not enable DPAA2_CONSOLE by default during compile testing

Link: https://lore.kernel.org/r/9e5b3e8e-3280-4ff9-915b-9a8b934bac22@csgroup.eu
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 13:22:07 +02:00
Johannes Berg
ed73728fd1 mt76 patches for 6.16
- fixes
 - EHT improvements
 - new device ids
 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - http://gpgtools.org
 
 iF0EABECAB0WIQR10Rp9kadxD0kAQu/XfRQdAqdu9QUCaC8DIwAKCRDXfRQdAqdu
 9W+xAKCKbPHez4ZkcS/PldOHZatqUfpPVwCg2gTUuo3B9eOqoMKEREZ7gS6o/Fw=
 =cNGu
 -----END PGP SIGNATURE-----

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

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

- fixes
- EHT improvements
- new device ids
===================

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-05-22 13:13:22 +02:00
Johannes Berg
783e2a4753 ath.git patches for v6.16
ath12k:
 Add monitor mode support for WCN7850.
 Enhance regulatory support including 6 GHz power modes.
 
 In addition, perform the usual set of bug fixes and cleanups across
 all supported drivers.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQ/mtSHzPUi16IfDEksFbugiYzLewUCaC5IEwAKCRAsFbugiYzL
 ezMUAQCAH3sy0hJSraoLb+6+VMI/ClBquJVIgOBwVvlXJd4lIgEAwY+uYgSNWkYU
 KQ2Zxa8+whDx6oqFJF5qYJ+scMh9VA0=
 =b7Wk
 -----END PGP SIGNATURE-----

Merge tag 'ath-next-20250521' of git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath

Jeff Johnson says:
==================
ath.git patches for v6.16

ath12k:
Add monitor mode support for WCN7850.
Enhance regulatory support including 6 GHz power modes.

In addition, perform the usual set of bug fixes and cleanups across
all supported drivers.
==================

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-05-22 13:10:14 +02:00
Arnd Bergmann
16066e29d3 This pull request contains MAINTAINERS file update for Broadcom SoCs,
please pull the following for 6.16:
 
 - Krzysztof updates the BCM2711/BCM283X entry to also match on the
   bcm2712 pattern to cover the Raspberry Pi 5 files
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmgjUhUACgkQh9CWnEQH
 BwQktg/9EKay/eC8F3bQGU6PilDDLcLXBP8OQ9NZcuAZAn/vqP0i2vqMLzXuOjzf
 g/4yHWruMzzuZWeWnQgdv/fUnuXWYPBD9nf0a6C23KeFoXCKYUB0k7ySetv/n0Sp
 O83GLSlozmm1DOEK8fFHfdSCf3KQ4g/QvIAdD+PKc8v9C/Ic/yfWcerXPsn0n1zC
 80p0rbWDdS7ptMhy/WM7oqw9IxNIVc/dZDjVOJ/yOEhx6Jj4CEnhoN8LesM8W024
 kKJ2v/xTlwAaYiyKHsLsM0xXWhS4kc0RLc3nmcFPZTQWInJEC5O5GDxkB175yHUq
 9DNvfu0d00eN6irzTWaBnvBOZS9sl5IWJd8xH8olmCy8F8NFiegByZgXjL5ORgae
 dv3a/mB5Ce5tP17u1dIdVOyQTZ6Qq127CuMDVvOSZgxX/JAHpgSImf/EYOM5D0mM
 44bXNQgAAssgimEgisB0h92+RtokiAdVgnNlRlhCxLKbbitv9WVyIjvavkHBslTg
 ZenNOWkYzrbQOXvPcz+u6NO4SOjaTPmCYeKauXi3+AS0aKHRmlG6HitbmJFQQg8F
 R6m4nXKVLWWyVEWylJ/4jjntoAtMS3KhxuXuTvMXTUUK9DdlxJgYVT/f/1ULmCkg
 LvYMCzFbN/eUoYwDaT/Wa+m+syXjxz7EtSWweEs7ANd13ssW6MU=
 =W5h3
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmgvBTQACgkQmmx57+YA
 GNnA7w/9E5ChDDLJ1+ssYKU7RS6GbLQ3MR4UQY+TCO4mcjtNOKoXAIxEjs8FE9YZ
 vGDxaBcDKcCJBS7YH+Xp7R41ATWTtnmgcfGS5MbFR7QWMV2vMT/Qs+68FI3/J2nV
 2MH6rLZdv+hOigWLWm1r4nkRQWavGmx2WiZ+V1Ijk8Rv11Bc+Tnn0rkZ7pCNGGUT
 7rxZ8HDaBLIAIk9ZLfHDIyIp3T5uIr8nAfUszgHpefMvXgpAIvzU4/r6CXkLPN2O
 xYOghSKchJMwmZUeII8NC/cV20uWvy/gBx/7u4wi3AeR15KEvSWae0Oa/1iKpl8l
 Hp66e/jBpLIq+cq75ha3cMXJa3BZhIuXr/dh22idDeT1Cct9L7uwP+HoT0RY6++n
 OsZPgTHoaDo5t7J7zE3Hdo0IWJsREA/cmdTN5KNBqSV3F/90AVctedVIPaMv0MfO
 L8W060oC+B5jur37/Dd1/YUdglsprW1XUDOolRGAd6Fycm4DkI9zDokYDUEfDmZS
 J3b7FC4zlgTexxQ+K9jfgoikq5YfM6Q/7mUJgk13gv3KLRo/Voi4+OXkIYlu9x3D
 PCeWuoFIHrTzgFtwbEuBpW3L2vR/+QmcNkZ3gotbtI1vC4DguYUZ5h2XMVgIUxkM
 2YjoTu7A8LQbef1sZLT4C/pYVzL2R+LhcKkt6YzSPfBotS7HlYs=
 =UvjF
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-6.16/maintainers' of https://github.com/Broadcom/stblinux into soc/arm

This pull request contains MAINTAINERS file update for Broadcom SoCs,
please pull the following for 6.16:

- Krzysztof updates the BCM2711/BCM283X entry to also match on the
  bcm2712 pattern to cover the Raspberry Pi 5 files

* tag 'arm-soc/for-6.16/maintainers' of https://github.com/Broadcom/stblinux:
  ARM: broadcom: MAINTAINERS: Cover bcm2712 files

Link: https://lore.kernel.org/r/20250513140808.2047729-1-florian.fainelli@broadcom.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 13:06:28 +02:00
Arnd Bergmann
e32697dec4 TI DaVinci updates for v6.16-rc1
- remove support for the da830 SoC
 - increase the panel FIFO threshold in da850-evm
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEFp3rbAvDxGAT0sefEacuoBRx13IFAmgq8cIACgkQEacuoBRx
 13K/yg//RHQ3uCpT3ljnsNxw8eSIytl2dQB0K+2WBLYv/gmfYVaP5piPMxjeP382
 GYBO88vV6rNPlIoDKcFa916KOlCnU/DU2XrHjohZbmKDSwvc3iiQ+8Q7tDNvqzzG
 vrs66kGSVxVzNj3ANOz1nQp21lzFsFANPe3L/sA4L+pdTt7em/Qyi5Lad4iHFmi2
 WvAtCe7AKgpjl3w+mu6QgnpgBiSDvrPefHiJMoEzc1myfECNoGa8pWiZ381ipJOP
 1W2TDTvJpWvIDKxzBVyeJke/nyisAxjqKqL/U0lQISo1qxLpBOeTOGT20eCD3AXG
 jL6R9DHapdL9WAbo/IosZ+L4lEUIx69Yflfj4zg/Qk9chlZ+UX2r7OwyVaF40ObU
 sxlt51SGxX7ulVSAbWzO+Ru5emkTqqVQ03j87Y/bLAhKzQs4v3mHknY9ilRvLt9X
 6+Rp+UV8eD3M7kF42sda2igsXiJM1rG7HXxZO8kK8ycLxMB1scerDFvXUeh25F8Y
 28WUVyq6zqweZEJa0Hy57/q2ZV5J+rmyitbZ+CPQEx8xFA44PX6edk3mfFTKLnLu
 +T1RKFBRVr3AwnyMqw3hRq1LfUBJvUG1xErPzGvQgvl7vVV4V8Yr+zp8TdM+lt4P
 c3cBlostILTcyAyEugfRvH7hyHb51iosFX6T4NCTVHX5Jvqt91Y=
 =7gno
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmgvBPwACgkQmmx57+YA
 GNl5QxAAi7iE/43FyEOhxJcgKNFvSLX5i4M/hqlGm0F03Zb0MtC2KghsgPt6Wuxp
 Zy79dfo1IA5UunVlXMmFimXynB11jyZg4RA1Il38XtW12YkofMLooMmlZuKIms50
 9bwETd4MrUIpw9VLFsOmgeZ5ntfT34auObxwKZG3zTgXx8pT/trrXbSctgd4N13l
 J/cbYDPBNAm7NS/Z3KX9C2aeJoY3TgkRgKkSizC+6xSGMl4PVEZChe42rbXP7ZnH
 EtE/6JqgqjbyNB8wTvX525GxK5t0dh0v24d7pVukBCSPkqOO1L0i6ia0INlQ31Pb
 Y7ktvDrPvr3bIxzkUiaqiv0TuoARnpakO5l6H6zyrbmxKiSAKQS8W/KTNEhWGUkn
 oSbmYofanQf3O3s7TClhCngKUvzwpYSl2DmFRsdkj5RozkAeCwrPMY0qFRIjYfej
 X4yv5yZMTgQrlOWKV+2QSP1gjhSL3tKYhYcRoG3PmQJOTbCRuXocvwuCKZIDYw/s
 fwKdaBqt3M8BPCqNLs8qq3J0uM0P9pghC3bUHTfzYnuSBqvcYpvF+LP8eoEsrfuX
 IfkjanpazE8bDSj8myUPgB9izsKP8hBBlWYXXx5QvD0hlQn1RTbktB/qxDWJ3oBy
 vJ+lKXN1w4KrhsbGaWTr8AFO5cX3BMUbJQIqwQuWpz/6SqUzVTg=
 =CNS3
 -----END PGP SIGNATURE-----

Merge tag 'davinci-updates-for-v6.16-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into soc/arm

TI DaVinci updates for v6.16-rc1

- remove support for the da830 SoC
- increase the panel FIFO threshold in da850-evm

* tag 'davinci-updates-for-v6.16-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
  ARM: dts: davinci: da850-evm: Increase fifo threshold
  ARM: davinci: remove support for da830

Link: https://lore.kernel.org/r/20250519090232.13147-1-brgl@bgdev.pl
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 13:05:32 +02:00
Greg Kroah-Hartman
e7f3d11567
spi: loopback-test: fix up const pointer issue in rx_ranges_cmp()
When a list head is a const pointer, the list entry for that head also
must remain a const pointer, otherwise we are just "throwing it away"
for no good reason.  Fix this up by properly marking these structures as
const.

Cc: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/2025052213-semifinal-sublevel-d631@gregkh
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-05-22 12:03:35 +01:00
Greg Kroah-Hartman
2712a7d362
spi: gpio: fix const issue in spi_to_spi_gpio()
While the struct spi_device * passed into spi_to_spi_gpio() is a const
one, the struct spi_bitbang * that is retrieved from the controller
field in the spi_device is NOT a const pointer, as it is coming from the
spi_controller_get_devdata() call, and then passed to container_of()
which would strip off the const attribute for no good reason (i.e. if a
const pointer is passed to container_of() it still is const coming out).

Fix this all up by properly declaring the struct spi_bitbang * as not
const.

Cc: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/2025052225-scallion-ritzy-dbbd@gregkh
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-05-22 12:03:34 +01:00
Greg Kroah-Hartman
1007ae0d46
spi: use container_of_cont() for to_spi_device()
Some places in the spi core pass in a const pointer to a device and the
default container_of() casts that away, which is not a good idea.
Preserve the proper const attribute by using container_of_const() for
to_spi_device() instead, which is what it was designed for.

Note, this removes the NULL check for a device pointer in the call, but
no one was ever checking for that return value, and a device pointer
should never be NULL overall anyway, so this should be a safe change.

Cc: Mark Brown <broonie@kernel.org>
Fixes: d69d804845 ("driver core: have match() callback in struct bus_type take a const *")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/2025052230-fidgeting-stooge-66f5@gregkh
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-05-22 12:03:28 +01:00
Arnd Bergmann
ae006498a0 Enable Rockchip SAI and ES8328 modules.
-----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmguDFoQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgZNDB/9j230/nPFgmW+OnoUWWQZc+/UfK1REJPUR
 DFdcDowcbvaekrsC20UGmveKjExyvhX7AxTNj2PjZFY7mRgGQWfjiocifzwaUiiK
 q8HeYuPWv8gw+2qw2K3SFWHCcuUACU0CX8A9Fgu2jxDtnG7KC3xYrQspZvXSKqlH
 M4ipveL349OsvBImAkq4bA+gfy7rRrM7BD9JPy1my9DHHkgfyKun4N0VRwy+xpO/
 oNirZUDc0IVjUXhqAv+QMrkTaJZJKpRiEzByBKldcITjck723hQYcKj15I0xYUTk
 IE7gX8DluqV+F57dtKMCW4/9wcYDztf63vAk4vH08esPVyNrLUBA
 =qmef
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmgvBBUACgkQmmx57+YA
 GNmeTw//aP78x4/euAls48HNSOGj0c8hxkbJwYRD7K7HDvl+ngMCiUx9CgkgS/qi
 OBJ/YW4qLT0vMinFTz4g+XwxBcmvtBRmoKlcFjIp9wLvJo7hQRptufr4fJr1Y5Ar
 DkY1ocvBrXbIVEMmmLZRaBGseVUw62hKTwvjDHGQGkUPZJzDL9wfZMGZwHAkulJP
 3zf4J9Ppu8hpH3Ud3COEhIioDzGQNeoS5M3+TThJSiEKdNUU6aaGbmI/Yhv3xcKx
 GNUE4WrCsIwQwKFPl3/gLrFzEzZkKfB2yGgm0cm6rpviMfTdEMUL030LFc+V3yyF
 rW/mb5qo6+Mfhrifckw4H4Gmtw5rVEeMBWBxurZig3k9l+Jo7LlUxmIiLpfBQzto
 OskBAUt6rmQhqBFj5ObdEuixYCV/ySgXsO7hSE1+ZN9VNr7xgFO9Lqk6v2Wiejsb
 mX8Pd+u7d+yNWQkwlLZBK244ZDcsocRgiI4mSUlc1ujZ06dqZJv9Ul+3wGRc7cFW
 Oyt+6hlJjAJIRI9+E8RUcvmrncazw+GB8Os3vQVymEiR4eNMSrm+DhnpPWS+4W0m
 MpMObj/92VQoizrY6Scm75AlzyTyEWDzt26AUpwl/lG/2Ysrobqh6uYBcdE8Uxdt
 PJUucVdBw9ZDrMc9Tj1uYdM9Uf6TeNeIb2r8Ij1CbuRaC2eB3Uc=
 =RBGK
 -----END PGP SIGNATURE-----

Merge tag 'v6.16-rockchip-defconfig64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/defconfig

Enable Rockchip SAI and ES8328 modules.

* tag 'v6.16-rockchip-defconfig64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  arm64: defconfig: Enable Rockchip SAI and ES8328

Link: https://lore.kernel.org/r/4060740.R56niFO833@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 13:01:41 +02:00
Caleb Sander Mateos
5234f2c3e3 ublk: remove io argument from ublk_auto_buf_reg_fallback()
The argument has been unused since the function was added, so remove it.

Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20250521160720.1893326-1-csander@purestorage.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2025-05-22 05:01:14 -06:00
Arnd Bergmann
5c9876f9d1 MediaTek ARM64 defconfig updates for v6.16
This enables some drivers as modules to enable fully booting
 some of the supported MediaTek boards;
 
 In particular, this enables the following drivers as module:
  - PHYs for PCIe, HDMI, DSI and DisplayPort for all boards
  - MediaTek UART DMA Controller, also for all boards
  - MDP3 driver for MT8186/88/95 (Chromebooks and Genio variants)
  - Auxiliary ADC for the MT6357/58/59 PMICs found on both Genio EVK
    and Chromebooks based on designs with MT8183/86/88/92/95 SoCs
  - iTE IT5205 Type-C USB Alternate Mode Passive MUX, found
    on both Chromebooks and Genio EVKs with MT8188/95
  - Richtek RT1715 Type-C PD Controller, found on all Genio boards
  - Himax HX8279 DSI panel DriverIC and KD070FHFID015 panel, found
    on various revisions of the Genio Evaluation Kit boards.
 -----BEGIN PGP SIGNATURE-----
 
 iJ4EABYKAEYWIQQn3Xxr56ypAcSHzXSaNgTPrZeEeAUCaCxpdSgcYW5nZWxvZ2lv
 YWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tAAoJEJo2BM+tl4R4+7kA/j5c
 urmSN7qrFH6EWcguxQlDBIUvQebQm+4HeGC4bbHHAQCxiNrsAgzCsG4cYe8BN2Lz
 uzDsHBEJIn+T/rBHFfAwDg==
 =h8po
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmgvA7wACgkQmmx57+YA
 GNk5LhAAwQ+3FCFBCrpxV9ohzKJ9EpHHDMrKzCjLPS6Opulszk7YMfNcamk5934+
 D0FAZU5KQWv89w4UoFUB38TE8qpvHXRW6wWcqTDsFtUpzN3kXQyU/E7mzxU6Jek7
 oOwVbk4tIlv+Kyy7tuvy+BufoAPs24i24su5KNdEO/8FlxggBSWml7P+Iw9uGgcF
 V4ke0ojZvBKPnBSFkxCCDQ/DQBOKQkyPJT3n1vouxEHQoFhRcQchXxRsikrN4VSN
 o1R38LJ4v1iX4HtXqbflfgrofBTxAPPFxjobfZFXxVBpaX50jQTC6pg/OAH2bViH
 WDyAq+gEVESM2zvjyk89jyD307HojLlh/NOsL7Rdbwwx3FpAW/vAx1u/GONW9mLX
 Ku7Q6gnBRAnmks4Ic40lEP+mPomDLVvaocn3xd0Gyovun8vHTszLn6rPUGYYmEMo
 /wFYGCtiEPeYKxh+pX10WeGwNXUd/IN5GlyHHNIAa2eae9mSUesL0vCvIBK4dIu5
 0zUz+FePuoSbyep7R+Hc9ezaqQEmTTATK3tz1G6Nnp6RPGihBUvFkUNxRa2Nrrth
 RaVswHgst9xAcU8yn4Fb2WPNjPZpIuTQZteJDhDtRFFTScJs6uG9GinZeRAd5TfI
 IFdQpblo/I7spI3rRtx03OxLIK8nFhAIZ0yN7OOpAiq1TCIeENs=
 =GJ3+
 -----END PGP SIGNATURE-----

Merge tag 'mtk-defconfig-for-v6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/defconfig

MediaTek ARM64 defconfig updates for v6.16

This enables some drivers as modules to enable fully booting
some of the supported MediaTek boards;

In particular, this enables the following drivers as module:
 - PHYs for PCIe, HDMI, DSI and DisplayPort for all boards
 - MediaTek UART DMA Controller, also for all boards
 - MDP3 driver for MT8186/88/95 (Chromebooks and Genio variants)
 - Auxiliary ADC for the MT6357/58/59 PMICs found on both Genio EVK
   and Chromebooks based on designs with MT8183/86/88/92/95 SoCs
 - iTE IT5205 Type-C USB Alternate Mode Passive MUX, found
   on both Chromebooks and Genio EVKs with MT8188/95
 - Richtek RT1715 Type-C PD Controller, found on all Genio boards
 - Himax HX8279 DSI panel DriverIC and KD070FHFID015 panel, found
   on various revisions of the Genio Evaluation Kit boards.

* tag 'mtk-defconfig-for-v6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux:
  arm64: defconfig: Enable configs for MediaTek Genio EVK boards
  arm64: defconfig: mediatek: enable PHY drivers

Link: https://lore.kernel.org/r/20250520114356.1194450-2-angelogioacchino.delregno@collabora.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 13:00:11 +02:00
Zhe Qiao
631b2af2f3
PCI/ACPI: Fix allocated memory release on error in pci_acpi_scan_root()
In the pci_acpi_scan_root() function, when creating a PCI bus fails,
we need to free up the previously allocated memory, which can avoid
invalid memory usage and save resources.

Fixes: 789befdfa3 ("arm64: PCI: Migrate ACPI related functions to pci-acpi.c")
Signed-off-by: Zhe Qiao <qiaozhe@iscas.ac.cn>
[kwilczynski: commit log]
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://lore.kernel.org/r/20250430060603.381504-1-qiaozhe@iscas.ac.cn
2025-05-22 11:00:03 +00:00
Arnd Bergmann
a34a3ddc6b One more Qualcomm Arm64 defconfig update for v6.16
Enable global clock controller and TLMM pinctrl drivers for IPQ5424 to
 make this boot.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmgr7f0VHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FjsgP/Rz5VWfsMwCZejAub3yHEFA/HVcy
 U1JYYlNXl6BBPV8ta6LhC5AkhF8DMaKw850spzog1nDKdTdnI7jNU70ouprJW8G1
 mUQa1pM/VD5KyWeF67WH9sl9p/kcHSxyxWoIfpXbZ43cvGZ+bCk8dNGS6wMJJa9h
 ebjpQIFEX8tSPm+HnQuW9uExE0UJD/1zeB5f8Nr6YUv1J1P/Z1WHst2z4OY41atL
 aiNh/uaAWhqad6C6JWcvrFS2+O2dY3ZbB3n8NhgDM1pW6d9gFnRXS+NaE/zc4PtN
 GqSEo9wgxLJayvHfc5pp/glLqwq8G948IGVLN3aXl+ZZfsSJRnOWEwm5iHmjAQaW
 kFxH4ePDpctueiiMkxeqRRxt9IzLmoVc8JrQcpsHTECAJEsTx1kqzoLzPDy+ZUeK
 gbU+I1HmNRY+cIl916ShocF1MLfLgDnUimbWJg3+cfXi44EKsvvh0OHUKsePGo68
 wKmQXEYM5w8oR4caQIYaARkRSwTD9MxApUZK5PLWzAXepIGUkULKFyyh65eA1jya
 CL4UtI76AMVHqXpfGth7p3g4i3K6h9ZGOfb9dVKBHnsdbZmbvfo6tzg9tiD5UV52
 lPvwG3dpN8/YCj85J08PYQZYDTCZ8VVZseRWFctIHf+yFyf4sQxrJwfMuMrA7bQy
 gTdp2o4Ut/wxKIjC
 =sw/L
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmgvA6IACgkQmmx57+YA
 GNnrbA/+IXEZjtmuEV6o470/Jghi2f6GzSqQ+AXXXlayvSXspP25odjAFLjYWxwC
 MTlNERTktsJb2HffClhK+0kmcKRyy09edkjsfdZI0HJ9OpDnnsd+4CsHhxNQs/IF
 0Xz2/zpxsKwywlV5Av4MP7sT0YdWH8PnlwMZSczWc1cckD07zyL5drwpch7gJsSm
 pJQM7MCmDdiFZKjSji8mzveBFyOCiaKHtWrqEI2ZPxhbb2jpch3qaBNJgW1rvIZa
 Art4niZHoDMgSlI2RrYdXNr8oG9gayCchFy3FxhGhtqoeEZ/U2vNdHJOgAWDxLuL
 1HryRst1H/1zzf3Xl/XWpz6xaa1vBQromSzREh/XlpCE48MymgujLNhBBAZM/SDP
 sP2dW6Es1YL8O8BdyfKG/T61JNTj9o5aORmvAkiEtskfLc9AzPeizyfRmmHOqQru
 2yqRhF+R6I5ofko9BXVOWwXKOl2sKz197iTCmxOsh1U9u3old4ea/F60yKJlAc2c
 70zMmyPAXj3RBnwuo8FKFqt2v/LSVlSQbNGow+MO9mxHqtMiARG59LrlPex+pEHD
 qe/i61TbXqPTzbRVDM1Q5oCoRAy2oI0RpoB/YX3CUGZQjBy191RmD95RBJPDSzMx
 ONmA6BeUPGxVZoBaBsgsJNwBLhMecrDXcO8GqvpPydTpSDVFVVM=
 =HAVp
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-defconfig-for-6.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/defconfig

One more Qualcomm Arm64 defconfig update for v6.16

Enable global clock controller and TLMM pinctrl drivers for IPQ5424 to
make this boot.

* tag 'qcom-arm64-defconfig-for-6.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: defconfig: Enable IPQ5424 RDP466 base configs

Link: https://lore.kernel.org/r/20250520025119.40021-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 12:59:46 +02:00
Arnd Bergmann
74b1d172c3 RISC-V config for v6.16
PM_GENERIC_DOMAINS is enabled because T-Head SoCs need to use it and
 spacemit's gpio and clock controller are enabled for more obvious
 reasons.
 
 Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQRh246EGq/8RLhDjO14tDGHoIJi0gUCaCcUngAKCRB4tDGHoIJi
 0ql4AQDUpYnIHRMVnyc9wrFl80N+ZM/up31SxVantNXs4aY6DAD/Q11CxeJB8UM4
 QGsvAKvsNiySmr665PwgyUXj0SED9QQ=
 =+zzo
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmgvA3gACgkQmmx57+YA
 GNl8Mg//RWSc7kb88GT+f+XLvwgu0WIj0CZCh476qbHJ/Gp5hUIqMV4uJ7QETkp2
 9JPGhyQteUFXk3ZpjSzctQv6fjFzKgEYeoil4ZCo4upyPyAnFu2mmyKyJ9ypYbJ/
 hc5Mw/epwWX1S0bisMLW0bhRrq0ZBTAxEfKayoSynbKlE1JXjl1kYR7F+0hbTNFO
 iWKJGp5VWDiq+N6ASEv/bRy1tJXPL0cjHaIuw06VRHIZgfXo+Y3RKyMxodRA+rk2
 jHiPvEEeTUQBE+UUMOGESU09jOZOlF40bhMo5QLmmWOmCIeJ/mso7/FIqwPRP+ct
 5lv+aiXurhxUxG6SKSEXh2jZ2mJbC3GWcyf/DpF8+ajt0aQ0blmIPve/A5tRgsLz
 M2wz86Zlzb6Jvns7yYTTkQeGHAfdTxjZOHxgYJaOqgGH200elnpOGE1e5qRHJT9E
 cxPNmhtqUnCIVP6jiKHdYPGqOZtDn92MJf9fPiW2MeL+xQRUtPyF2x0V/o1nefnV
 xwicw1rCS21MDrc/K3Zi7zxMEQvv3oT9R0qw0fFIFP6s8o4+sRF/CNhqo8YgS6zL
 Ck/BJDQEuBXU3bt0g022kTPh+N9QRu3gPsCK+RqcFRmhwU5OVanKNAx3N1rYj1d7
 Jo8whaTm2nvBD/vxwdmMhSkZDQbfsBnC5iD4bPiSh/W5cnh1QeY=
 =Xv8S
 -----END PGP SIGNATURE-----

Merge tag 'riscv-config-for-v6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/defconfig

RISC-V config for v6.16

PM_GENERIC_DOMAINS is enabled because T-Head SoCs need to use it and
spacemit's gpio and clock controller are enabled for more obvious
reasons.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

* tag 'riscv-config-for-v6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux:
  riscv: defconfig: spacemit: enable clock controller driver for SpacemiT K1
  riscv: defconfig: spacemit: enable gpio support for K1 SoC
  riscv: Enable PM_GENERIC_DOMAINS for T-Head SoCs

Link: https://lore.kernel.org/r/20250516-joystick-mortified-385820b1ad0b@spud
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 12:59:04 +02:00
Allan Wang
e54b870212 wifi: mt76: mt7925: add rfkill_poll for hardware rfkill
Add mac80211 rfkill_poll ops to monitor hardware rfkill state
and state change will be updated.

Signed-off-by: Allan Wang <allan.wang@mediatek.com>
Link: https://patch.msgid.link/20250507053131.4173691-1-allan.wang@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:37 +02:00
Shayne Chen
56e38675c5 wifi: mt76: support power delta calculation for 5 TX paths
One variant of MT7992 has 5 TX paths, so extend the power delta function
to support it. Also, rename nss_delta to path_delta since the value is
based on the number of TX paths rather tha the number of spatial streams.
(path delta [0.5 dBm] = 10 * log(path number) [dBm] * 2)

Co-developed-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250515032952.1653494-9-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:37 +02:00
Shayne Chen
249173e94d wifi: mt76: fix available_antennas setting
Check if available_antennas_tx and available_antennas_rx are already set
during the per-chip initialization phase; otherwise, they could be
overwritten with incorrect values.

Fixes: 69d54ce749 ("wifi: mt76: mt7996: switch to single multi-radio wiphy")
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250515032952.1653494-8-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Shayne Chen
42cb27af34 wifi: mt76: mt7996: fix RX buffer size of MCU event
Some management frames are first processed by the firmware and then
passed to the driver through the MCU event rings. In CONNAC3, event rings
do not support scatter-gather and have a size limitation of 2048 bytes.
If a packet sized between 1728 and 2048 bytes arrives from an event ring,
the ring will hang because the driver attempts to use scatter-gather to
process it.

To fix this, include the size of struct skb_shared_info in the MCU RX
buffer size to prevent scatter-gather from being used for event skb in
mt76_dma_rx_fill_buf().

Fixes: 98686cd216 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices")
Co-developed-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250515032952.1653494-7-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Peter Chiu
79e788fcb2 wifi: mt76: mt7996: change max beacon size
According to hardware capability, the maximum beacon size is 2048 bytes
minus the size of TLV headers.

Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250515032952.1653494-6-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Peter Chiu
d5012734fc wifi: mt76: mt7996: fix invalid NSS setting when TX path differs from NSS
The maximum TX path and NSS may differ on a band. For example, one variant
of the MT7992 has 5 TX paths and 4 NSS on the 5 GHz band. To address this,
add orig_antenna_mask to record the maximum NSS and prevent setting an
invalid NSS in mt7996_set_antenna().

Fixes: 69d54ce749 ("wifi: mt76: mt7996: switch to single multi-radio wiphy")
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250515032952.1653494-5-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Benjamin Lin
80fda1cd7b wifi: mt76: mt7996: drop fragments with multicast or broadcast RA
IEEE 802.11 fragmentation can only be applied to unicast frames.
Therefore, drop fragments with multicast or broadcast RA. This patch
addresses vulnerabilities such as CVE-2020-26145.

Signed-off-by: Benjamin Lin <benjamin-jw.lin@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250515032952.1653494-4-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Peter Chiu
8b2f574845 wifi: mt76: mt7996: set EHT max ampdu length capability
Set the max AMPDU length in the EHT MAC CAP. Without this patch, the
peer station cannot obtain the correct capability, which prevents
achieving peak throughput on the 2 GHz band.

Fixes: 1816ad9381 ("wifi: mt76: mt7996: add max mpdu len capability")
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250515032952.1653494-3-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Howard Hsu
5c78949fc7 wifi: mt76: mt7996: fix beamformee SS field
Fix the beamformee SS field for the mt7996, mt7992 and mt7990 chipsets.
For the mt7992, this value shall be set to 0x4, while the others shall
be set to 0x3.

Fixes: 5b20557593 ("wifi: mt76: connac: adjust phy capabilities based on band constraints")
Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250515032952.1653494-2-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Howard Hsu
08419f9e9b wifi: mt76: remove capability of partial bandwidth UL MU-MIMO
The firmware only supports full bandwidth UL MU-MIMO, so remove the
partial bandwidth capability from HE PHY CAP.

Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250515032952.1653494-1-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Michael Lo
0a41b6751e wifi: mt76: mt7925: add test mode support
The test mode interface allows controlled execution of chip-level
operations such as continuous transmission, reception tests, and
register access, which are essential during bring-up, diagnostics,
and factory testing.

Co-developed-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Michael Lo <michael.lo@mediatek.com>
Link: https://patch.msgid.link/20250505233618.1951021-2-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Michael Lo
ba7fe3b064 wifi: mt76: mt7925: extend MCU support for testmode
Add MCU command and its handling needed for testmode support on
MT7925. This enables low-level chip testing features such as
continuous TX/RX..

Co-developed-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Michael Lo <michael.lo@mediatek.com>
Link: https://patch.msgid.link/20250505233618.1951021-1-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Michael Lo
aa97ff5782 wifi: mt76: mt7925: ensure all MCU commands wait for response
Modify MCU command sending functions to wait for a response,
ensuring consistent behavior across all commands and improves
reliability by confirming that each command is processed
successfully.

Fixes: c948b5da6b ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt7925 chips")
Signed-off-by: Michael Lo <michael.lo@mediatek.com>
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20250414013954.1151774-3-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Ming Yen Hsieh
bd02eebfc0 wifi: mt76: mt7925: refine the sniffer commnad
Remove a duplicate call to `mt76_mcu_send_msg` to fix redundant operations
in the sniffer command handling.

Fixes: c948b5da6b ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt7925 chips")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20250414013954.1151774-2-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Ming Yen Hsieh
122f270aca wifi: mt76: mt7925: prevent multiple scan commands
Add a check to ensure only one scan command is active at a time
by testing the MT76_HW_SCANNING state.

Fixes: c948b5da6b ("wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt7925 chips")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20250414013954.1151774-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Henry Martin
efb95439c1 wifi: mt76: mt7915: Fix null-ptr-deref in mt7915_mmio_wed_init()
devm_ioremap() returns NULL on error. Currently, mt7915_mmio_wed_init()
does not check for this case, which results in a NULL pointer
dereference.

Prevent null pointer dereference in mt7915_mmio_wed_init().

Fixes: 4f831d18d1 ("wifi: mt76: mt7915: enable WED RX support")
Signed-off-by: Henry Martin <bsdhenrymartin@gmail.com>
Link: https://patch.msgid.link/20250407061900.85317-1-bsdhenrymartin@gmail.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Henry Martin
8f30e2b059 wifi: mt76: mt7996: Fix null-ptr-deref in mt7996_mmio_wed_init()
devm_ioremap() returns NULL on error. Currently, mt7996_mmio_wed_init()
does not check for this case, which results in a NULL pointer
dereference.

Prevent null pointer dereference in mt7996_mmio_wed_init()

Fixes: 83eafc9251 ("wifi: mt76: mt7996: add wed tx support")
Signed-off-by: Henry Martin <bsdhenrymartin@gmail.com>
Link: https://patch.msgid.link/20250407032349.83360-1-bsdhenrymartin@gmail.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Ming Yen Hsieh
8284815ca1 wifi: mt76: mt7925: add RNR scan support for 6GHz
Enhance the mt7925 to include RNR scan support. It adds
the necessary RNR information to the scan command.

Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20250321013829.3598-2-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Ming Yen Hsieh
913a618267 wifi: mt76: add mt76_connac_mcu_build_rnr_scan_param routine
Introduce mt76_connac_mcu_build_rnr_scan_param routine for handling
RNR scan. This is a preliminary patch to enable RNR scan in mt7921 and
mt7925 driver.

Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20250321013829.3598-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:36 +02:00
Feng Jiang
7e1fcf687c wifi: mt76: scan: Fix 'mlink' dereferenced before IS_ERR_OR_NULL check
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/r/202504011739.HvUKtUUe-lkp@intel.com/
Fixes: 3ba20af886 ("wifi: mt76: scan: set vif offchannel link for scanning/roc")
Signed-off-by: Feng Jiang <jiangfeng@kylinos.cn>
Link: https://patch.msgid.link/20250402062415.25434-1-jiangfeng@kylinos.cn
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-05-22 12:57:32 +02:00
Arnd Bergmann
c48cd2e82b Armv8 Juno/FVP updates for v6.16
Few updates to the Arm FVP(Fixed Virtual Platform) device tree, enhancing
 support for system tracing, power management, and firmware coexistence:
 
 1. ETE and TRBE support
    Adds CoreSight ETE and TRBE nodes for the FVP Rev C model. These are
    disabled by default as they need to be enabled explicitly via model
    parameters.
 
 2. CPU idle states and system timer for idle broadcast
    Introduces CPU idle state definitions but disabled by default due to
    potential performance impact on the model. Also adds a system-level
    broadcast timer for use when CPUs enter deep idle states where local
    timers stop.
 
 3. Firmware memory reservation
    Reserves 64MB at the end of the first DRAM bank to prevent conflicts
    with FF-A firmware or similar configurations that rely on this region.
 
 4. Drop the unnecessary clock-frequency property in the timer nodes
    The boot/secure firmware must configure the timer clock frequency and
    the non-secure OS must be able to read the same. The clock-frequency is
    generally used when the firmware is broken which is not the case on
    most of the fast models and Juno platform.
 
 As noted above some of the changes are disabled by default where applicable
 to ensure backward compatibility and avoid unintended performance impact
 on platforms using default model parameters.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmgiNcUACgkQAEG6vDF+
 4pi4pA/9EoZFtzrkCmdEYvXeXwe8rkxUukR+kt8inwbZ1ES+BnaAop4qBWDfTQt/
 0d2B3jWy5PBtVSqmSVOnqJromiKMwvWCrmg7bHMz8yMaP8xGduuAcOpUgqX5eXmo
 VO/F3as9BXVYGQBSn4JqpHTpp7Y5WJBYVV+N8CZDABQXfMafDEXAxqiBEXGoTaiZ
 lECMNzTo5WLnRUL4PrZjIxSGoeh2NApPzoBi5V02G6lWa2Do1WsnKS6/wYAwiSlz
 rGkpCYp8g1qA+KxxOh9QUiUOPOndk8NwWH/ldgIUCYOR7C1tTp1ICBvhLNqbA596
 pv58Y8MYjX9R22n/MHGjzIXLVxWGm8b7HclDzwMNYt0pWdRrtSRIuf5ltdsbEW4S
 wlT5FuVrYUiLeLpGi77hqTlyHaAFS1e+wZJwEu1jcgUW73WAJnh+t6UPRfGtGf4L
 yXrVqEZQmABmX/IhYrpe6v623n+gS4qfxzM7Vz5TpzzApY057qbngD2d+ZUFpryt
 JuhRLl+pCo/EfMhrYap1QptxLc2Mjh+NkCnlN8D/ExpBevWxEY6vwRIagrmbD1km
 lO0T6QWpevahU4Wfl/tiyExW3ciE52RhQ2PlgX30edQKXlZZu5s2RISNYzXRCHmt
 cOiU6jVo2HE6iqxXhLgwYycl5rLWJl3FcJmNlXSkBxLWZYHrN10=
 =dPTB
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmgvArUACgkQmmx57+YA
 GNm4phAAoGrzPSjTSEThKNdD2p9PZ5ZL87b2zcI/SD+DVMsppv8AyOPL36u1YOUE
 eianNg/oYOlbGufN2hJyaZJ5it6Zm9vo9GblvBwq5ICc0ogY5uaMqaLUhsRddT5x
 FQwv7sWXDtbJRkFYDkiUpNx+a9p82tia8mb941R6EMCjoS5U/h6is5s52P53i/WX
 5UUAAbvtkiBV874P8RIbOXnZUEohYvrhs2UKW8pCUbPt7hU7SzDl8dpljNqFxBFF
 ZmQfJFCLulfJ1ObfxTu5Ixu6rDJnyDzAYyMXYXHBwzpYZbdDcvBOYKn6kCQMP70C
 6MJJvuQCsDy5TL5j19rrGP9EPO0fyLF4BP5giMBmZOUMTbcuJyhkzWucT4cPXeDB
 h4XAjPNa6oqeJ3wd+Ak5uxq/J73iLjdTfnahZLWCz5Q5mGfXBvicTWJY+ylqPys9
 sJdiVZZGdY287GzKrLKClL7ee9urdqazVdB/3WQUwK8pSJ+5OgC1DJzs0w1VRmgE
 HM615IOKKmM5amjJLJbCr370s6OtNQNThZWOJbIVv1YlyTyLaqFglIccGCGdRUfs
 h7ptiq+HwRUs7mrGGGOIETyk2tc/OcesDm+BHtTXxZWO76O8uC1mvTDUp810XPnj
 8myhcVslEjH+mR0SIbs+m8PNMgAo1l0YyN1YjgINpVbUx0WkiJM=
 =oTg4
 -----END PGP SIGNATURE-----

Merge tag 'juno-updates-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/dt

Armv8 Juno/FVP updates for v6.16

Few updates to the Arm FVP(Fixed Virtual Platform) device tree, enhancing
support for system tracing, power management, and firmware coexistence:

1. ETE and TRBE support
   Adds CoreSight ETE and TRBE nodes for the FVP Rev C model. These are
   disabled by default as they need to be enabled explicitly via model
   parameters.

2. CPU idle states and system timer for idle broadcast
   Introduces CPU idle state definitions but disabled by default due to
   potential performance impact on the model. Also adds a system-level
   broadcast timer for use when CPUs enter deep idle states where local
   timers stop.

3. Firmware memory reservation
   Reserves 64MB at the end of the first DRAM bank to prevent conflicts
   with FF-A firmware or similar configurations that rely on this region.

4. Drop the unnecessary clock-frequency property in the timer nodes
   The boot/secure firmware must configure the timer clock frequency and
   the non-secure OS must be able to read the same. The clock-frequency is
   generally used when the firmware is broken which is not the case on
   most of the fast models and Juno platform.

As noted above some of the changes are disabled by default where applicable
to ensure backward compatibility and avoid unintended performance impact
on platforms using default model parameters.

* tag 'juno-updates-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  arm64: dts: fvp: Add ETE and TRBE nodes for Rev C model
  arm64: dts: arm: Drop the clock-frequency property from timer nodes
  arm64: dts: fvp: Reserve 64MB for the FF-A firmware in memory map
  arm64: dts: fvp: Add CPU idle states for Rev C model
  arm64: dts: fvp: Add system timer for broadcast during CPU idle

Link: https://lore.kernel.org/r/20250513143827.3606686-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-22 12:55:49 +02:00
Philipp Stanner
dfc970ad61
PCI: Remove function pcim_intx() prototype from pci.h
The subsystem-internal header pci.h still contains the function
prototype of pcim_intx(), which has since been made public in the global
header.

Remove the redundant function prototype.

Signed-off-by: Philipp Stanner <phasta@kernel.org>
[kwilczynski: commit log]
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20250522084626.150148-2-phasta@kernel.org
2025-05-22 10:54:04 +00:00
Paolo Abeni
3fab2d2d90 linux-can-fixes-for-6.15-20250521
-----BEGIN PGP SIGNATURE-----
 
 iQFHBAABCgAxFiEEn/sM2K9nqF/8FWzzDHRl3/mQkZwFAmgtivcTHG1rbEBwZW5n
 dXRyb25peC5kZQAKCRAMdGXf+ZCRnHdfB/9xpi2QMYgjWn5CWHaRT5JAt1BTVTAW
 g7W1iddSkw18T/+FalxSjYPZKoE+6k2AcI/VTLbjEnv4bOPlmE48dItB8WsQnwHc
 1Jjbvc861HTYL51UuYH3oqXH4MrY2BiPk2aoCOuT7vPDsn/PISbfIZ41eBK3noTS
 TCY3DLV7u6tnureaCqGnl2M9lBfgF86rtn+d5vza2IFDu49b2J+Cv41CRkEIbP9P
 kujiCAxStN+neCKd1LtZgFbmfy63xUujPtZR2h0oYiOK9X/Nz2bjmFu40zyC+vCn
 z9P0oSXx2yaJCHiDrdzMM1McHhdpU4rNjVlYMKFQBNy/WfEvFHt+Eydy
 =dV2M
 -----END PGP SIGNATURE-----

Merge tag 'linux-can-fixes-for-6.15-20250521' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can

Marc Kleine-Budde says:

====================
pull-request: can 2025-05-22

this is a pull request of 4 patches for net/main.

The first 3 patches are by Axel Forsman and fix a ISR race condition
in the kvaser_pciefd driver.

The last patch is by Carlos Sanchez and fixes the reception of short
error messages in the slcan driver.

* tag 'linux-can-fixes-for-6.15-20250521' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can:
  can: slcan: allow reception of short error messages
  can: kvaser_pciefd: Continue parsing DMA buf after dropped RX
  can: kvaser_pciefd: Fix echo_skb race
  can: kvaser_pciefd: Force IRQ edge in case of nested IRQ
====================

Link: https://patch.msgid.link/20250522082344.490913-1-mkl@pengutronix.de
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-05-22 12:32:38 +02:00
Yicong Yang
226ff35039 arm64: cputype: Add cputype definition for HIP12
Add MIDR encoding for HiSilicon HIP12 which is used on HiSilicon
HIP12 SoCs.

Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
Link: https://lore.kernel.org/r/20250425033845.57671-2-yangyicong@huawei.com
Signed-off-by: Will Deacon <will@kernel.org>
2025-05-22 11:22:18 +01:00
Rob Herring (Arm)
8083499715 arm64: el2_setup.h: Make __init_el2_fgt labels consistent, again
Commit 5b39db6037 ("arm64: el2_setup.h: Rename some labels to be more
diff-friendly") reworked the labels in __init_el2_fgt to say what's
skipped rather than what the target location is. The exception was
"set_fgt_" which is where registers are written. In reviewing the BRBE
additions, Will suggested "set_debug_fgt_" where HDFGxTR_EL2 are
written. Doing that would partially revert commit 5b39db6037 undoing
the goal of minimizing additions here, but it would follow the
convention for labels where registers are written.

So let's do both. Branches that skip something go to a "skip" label and
places that set registers have a "set" label. This results in some
double labels, but it makes things entirely consistent.

While we're here, the SME skip label was incorrectly named, so fix it.

Reported-by: Will Deacon <will@kernel.org>
Cc: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20250520-arm-brbe-v19-v22-2-c1ddde38e7f8@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2025-05-22 11:20:59 +01:00