Commit graph

1295809 commits

Author SHA1 Message Date
zhangjiao
dfc58f467f tools: iio: rm .*.cmd when make clean
rm .*.cmd when make clean

Signed-off-by: zhangjiao <zhangjiao2@cmss.chinamobile.com>
Link: https://patch.msgid.link/20240829053309.10563-1-zhangjiao2@cmss.chinamobile.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-05 19:27:13 +01:00
Jonathan Cameron
09e3bdfe49 iio: adc: standardize on formatting for id match tables
This is a frequent minor comment in reviews, so start cleaning up
existing drivers in the hope we get fewer cases of cut and paste.

There are not kernel wide rules for these, but for IIO the style
that I prefer (and hence most common) is:

- Space after { and before }
- No comma after terminator { }

This may cause merge conflicts but they should be trivial to resolve
hence I have not broken this into per driver patches.

Link: https://patch.msgid.link/20240818180912.719399-1-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-05 19:27:13 +01:00
shuaijie wang
07b241262d iio: proximity: aw96103: Add support for aw96103/aw96105 proximity sensor
AW96103 is a low power consumption capacitive touch and proximity controller.
Each channel can be independently config as sensor input, shield output.

Channel Information:
  aw96103: 3-channel
  aw96105: 5-channel

Signed-off-by: shuaijie wang <wangshuaijie@awinic.com>
Link: https://patch.msgid.link/20240827080229.1431784-3-wangshuaijie@awinic.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-05 19:27:06 +01:00
shuaijie wang
61075d0cbf dt-bindings: iio: aw96103: Add bindings for aw96103/aw96105 sensor
Add device tree bindings for aw96103/aw96105 proximity sensor.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: shuaijie wang <wangshuaijie@awinic.com>
Link: https://patch.msgid.link/20240827080229.1431784-2-wangshuaijie@awinic.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 20:05:13 +01:00
Thomas Bonnefille
d1022ff5f9 iio: adc: sophgo-saradc: Add driver for Sophgo CV1800B SARADC
This adds a driver for the Sophgo CV1800B SARADC.

Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
Link: https://patch.msgid.link/20240829-sg2002-adc-v5-2-aacb381e869b@bootlin.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 20:05:03 +01:00
Thomas Bonnefille
cf082dbeda dt-bindings: iio: adc: sophgo,cv1800b-saradc: Add Sophgo CV1800B SARADC
The Sophgo CV1800B SARADC is a Successive Approximation ADC that can be
found in the Sophgo CV1800B SoC.

Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20240829-sg2002-adc-v5-1-aacb381e869b@bootlin.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:44 +01:00
Zhu Jun
3c6b818b09 tools/iio: Add memory allocation failure check for trigger_name
Added a check to handle memory allocation failure for `trigger_name`
and return `-ENOMEM`.

Signed-off-by: Zhu Jun <zhujun2@cmss.chinamobile.com>
Link: https://patch.msgid.link/20240828093129.3040-1-zhujun2@cmss.chinamobile.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:44 +01:00
Andy Shevchenko
da83fd152e iio: imu: st_lsm6dsx: Remove useless dev_fwnode() calls
The device property APIs designed that way that they will return an error when
there is no valid fwnode provided. Moreover, the check for NULL of dev_fwnode()
is not fully correct as in some (currently rare) cases it may contain an error
pointer. This is not a problem anyway (see keyword 'valid' above) that's why
the code works properly even without this change.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://patch.msgid.link/20240826212344.866928-3-andy.shevchenko@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:44 +01:00
Andy Shevchenko
17601ab9d7 iio: imu: st_lsm6dsx: Use iio_read_acpi_mount_matrix() helper
Replace the duplicate ACPI "ROTM" data parsing code with the new
shared iio_read_acpi_mount_matrix() helper.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://patch.msgid.link/20240826212344.866928-2-andy.shevchenko@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:44 +01:00
Rob Herring (Arm)
2f1dddc922 iio: adc: mcp320x: Drop vendorless compatible strings
The vendorless compatible strings are deprecated and weren't retained
when the binding was converted to schema. As a result, they are listed
as undocumented when running "make dt_compatible_check". Rather than add
them back to the schema, let's just drop them as they are unnecessary.
Furthermore, they are unnecessary as the SPI matching will strip the
vendor prefix on compatible string and match that against the
spi_device_id table.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20240826191728.1415189-1-robh@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:44 +01:00
Bartosz Golaszewski
631598c419 iio: dac: ad5449: drop support for platform data
There are no longer any users of the platform data struct. Remove
support for it from the driver.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://patch.msgid.link/20240814092629.9862-1-brgl@bgdev.pl
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:44 +01:00
Javier Carrasco
31c022a4f4 iio: adc: xilinx-ams: use device_* to iterate over device child nodes
Use `device_for_each_child_node_scoped()` in `ams_parse_firmware()`
to explicitly state device child node access, and simplify the child
node handling as it is not required outside the loop.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Link: https://patch.msgid.link/20240820-device_child_node_access-v3-1-1ee09bdedb9e@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:44 +01:00
David Lechner
192be24574 iio: ABI: document ad4695 new attributes
The ad4695 driver now supports calibration using the
in_voltageY_calib{scale,bias}[_available] attributes.

Only one of these was documented before. This adds rest.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20240820-ad4695-gain-offset-v1-4-c8f6e3b47551@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:43 +01:00
David Lechner
b5fe2f7bac doc: iio: ad4695: update for calibration support
Calibration support has been added to the ad4695 driver, so update the
documentation to reflect this.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20240820-ad4695-gain-offset-v1-3-c8f6e3b47551@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:43 +01:00
David Lechner
7763e40f35 iio: adc: ad4695: implement calibration support
The AD4695 has a calibration feature that allows the user to compensate
for variations in the analog front end. This implements this feature in
the driver using the standard `calibgain` and `calibbias` attributes.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20240820-ad4695-gain-offset-v1-2-c8f6e3b47551@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:43 +01:00
David Lechner
2ba49fc41b iio: adc: ad4695: add 2nd regmap for 16-bit registers
The AD4695 and similar chips have some multibyte registers that have
to be read/written in a single operation. So we need to add a 2nd regmap
for these registers.

These registers are removed from the 8-bit regmap allowable ranges and
AD4695_MAX_REG is dropped since it would be ambiguous now.

debugfs register access is also updated to automatically use the correct
regmap depending on the register address.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20240820-ad4695-gain-offset-v1-1-c8f6e3b47551@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:43 +01:00
Denis Benato
16531118ba iio: bmi323: peripheral in lowest power state on suspend
The bmi323 is mounted on some devices that are powered
by an internal battery: help in reducing system overall power drain
while the system is in s2idle or the imu driver is not loaded
by resetting it in its lowest power draining state.

Signed-off-by: Denis Benato <benato.denis96@gmail.com>
Link: https://patch.msgid.link/20240824141122.334620-2-benato.denis96@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:43 +01:00
Andy Shevchenko
525e9cd5ac iio: accel: bmc150: Improve bmc150_apply_bosc0200_acpi_orientation()
By using ACPI_HANDLE() the handler argument can be retrieved directly.
Replace ACPI_COMPANION() + dereference with ACPI_HANDLE().

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://patch.msgid.link/20240823230107.745900-1-andy.shevchenko@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:43 +01:00
Andy Shevchenko
3f131813d7 iio: accel: bmc150: use fwnode_irq_get_byname()
Use the generic fwnode_irq_get_byname() in place of of_irq_get_byname()
to get the IRQ number from the interrupt pin.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://patch.msgid.link/20240823230056.745872-1-andy.shevchenko@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:43 +01:00
Andy Shevchenko
dae65fc2bc iio: proximity: cros_ec_mkbp_proximity: Switch to including mod_devicetable.h for struct of_device_id definition
of.h was only included for this definition, so include the correct header
instead.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://patch.msgid.link/20240823220718.743596-1-andy.shevchenko@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:43 +01:00
Danila Tikhonov
89cf93bfb3 iio: magnetometer: ak8975: Add AK09118 support
Add additional AK09118 to the magnetometer driver which has the same
register mapping and scaling as the AK09112 device.

Signed-off-by: Danila Tikhonov <danila@jiaxyga.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
Link: https://patch.msgid.link/20240819-ak09918-v4-4-f0734d14cfb9@mainlining.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:43 +01:00
Danila Tikhonov
c19bf7faea dt-bindings: iio: magnetometer: Add ak09118
Document asahi-kasei,ak09918 compatible as a fallback compatible,
ak09918 is register compatible with ak09912.

Signed-off-by: Danila Tikhonov <danila@jiaxyga.com>
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20240819-ak09918-v4-3-f0734d14cfb9@mainlining.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:43 +01:00
Barnabás Czémán
129464e86c iio: magnetometer: ak8975: Fix reading for ak099xx sensors
Move ST2 reading with overflow handling after measurement data
reading.
ST2 register read have to be read after read measurment data,
because it means end of the reading and realease the lock on the data.
Remove ST2 read skip on interrupt based waiting because ST2 required to
be read out at and of the axis read.

Fixes: 57e73a423b ("iio: ak8975: add ak09911 and ak09912 support")
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
Link: https://patch.msgid.link/20240819-ak09918-v4-2-f0734d14cfb9@mainlining.org
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:43 +01:00
Barnabás Czémán
3b92fc43bf iio: magnetometer: ak8975: Relax failure on unknown id
Relax failure when driver gets an unknown device id for
allow probe for register compatible devices.

Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
Link: https://patch.msgid.link/20240819-ak09918-v4-1-f0734d14cfb9@mainlining.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-09-03 18:49:42 +01:00
Greg Kroah-Hartman
aead27d77f FPGA Manager changes for 6.12-rc1
FPGA unit test:
 
 - Macro's change improves fpga tests using deferred actions
 
 FPGA vendor drivers:
 
 - Wolfram's change renames confusing variables for Altera & Xilinx
   drivers.
 
 All patches have been reviewed on the mailing list, and have been in the
 last linux-next releases (as part of our for-next branch).
 
 Signed-off-by: Xu Yilun <yilun.xu@intel.com>
 -----BEGIN PGP SIGNATURE-----
 
 iIkEABYIADEWIQSgSJpClIeaArXyudb8twOBpKCM2gUCZtM4qhMceWlsdW4ueHVA
 aW50ZWwuY29tAAoJEPy3A4GkoIzapVwBANeFGZrunAe5T1Fi8CVRQ8sjxLEG/a0h
 incXqjHco5f1AQDGbGCnUpabWIJmoRQv7x4oqzSSOt50bGWucyiMPiqmBA==
 =AKK4
 -----END PGP SIGNATURE-----

Merge tag 'fpga-for-6.12-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga into char-misc-next

Xu writes:

FPGA Manager changes for 6.12-rc1

FPGA unit test:

- Macro's change improves fpga tests using deferred actions

FPGA vendor drivers:

- Wolfram's change renames confusing variables for Altera & Xilinx
  drivers.

All patches have been reviewed on the mailing list, and have been in the
last linux-next releases (as part of our for-next branch).

Signed-off-by: Xu Yilun <yilun.xu@intel.com>

* tag 'fpga-for-6.12-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga:
  fpga: zynq-fpga: Rename 'timeout' variable as 'time_left'
  fpga: socfpga: Rename 'timeout' variable as 'time_left'
  fpga: Simplify and improve fpga region test using deferred actions
  fpga: Simplify and improve fpga bridge test using deferred actions
  fpga: Simplify and improve fpga mgr test using deferred actions
2024-09-03 12:08:18 +02:00
Greg Kroah-Hartman
88850f7cca coresight: updates for Linux v6.12
CoreSight/hwtracing subsystem updates targeting Linux v6.12:
  - Miscellaneous fixes and cleanups
  - TraceID allocation per sink, allowing system with > 110 cores for
    perf tracing.
 
 Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEuFy0byloRoXZHaWBxcXRZPKyBqEFAmbOJmYACgkQxcXRZPKy
 BqFq5g/+I7WpRAHrLn1e995CGmBUc+HVQ2x5xrS7bSQbxSo/VEhCds/ID+DTfduw
 fwFjKo6GEo9SazGJ1JmSaPONffcGjjdkCp7z/xfd5U7mJ0Gj1FQKnr8Ppew52cfk
 oq7Yi63VPpoX/4mqweBQfCEPX+yikZ+BgxKjkQq+wunGy/3cHQbLTkVyg3mxzePu
 tEKuWihZ9+7lk7kXUzWM4Fmagxo98Lkj5zp8SmpdsHOl0+0BUsdywpTYcT8zbbjm
 QE3OR2fyVuYonVpGTTb+YDJWzonfKltHcKVPmLrsjFjXiv/7/Uxj7TJVS4z9KEKb
 hcDMwKOAoslhtJO+0dG0ZbY6LRvhmRpvy/BKS+Kfz8qwWjZW5YX0GwouRDTo71kq
 KxKoWS5cn4fZ1F7MuygGEre68laVq4/HJ369+jTk3oa7a1f9xTHYciZFQWdgc7DU
 7XK7FQ1g1D3ndD1tCYEzc9n/XFBiV0PZDELPoeaOo+fz4DGOgRRfrMstordS/RHL
 xIS+fD5OQxfn38mUrmReMsQssijZ9ysjqsBmHULVXBHIkz9N4xEsQINTRp7ARykG
 yb6RdrxblMswz0xzJBrekf0djr+tgPO0Je5+8BE/rCickrWttETNGWnrmWf+PPCa
 LrFaYavr0HpyvmqZRuY9fDIKAAAW+9E86kakMg/swlGj6mR15TA=
 =+38+
 -----END PGP SIGNATURE-----

Merge tag 'coresight-next-v6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/coresight/linux into char-misc-next

Suzuki writes:

coresight: updates for Linux v6.12

CoreSight/hwtracing subsystem updates targeting Linux v6.12:
 - Miscellaneous fixes and cleanups
 - TraceID allocation per sink, allowing system with > 110 cores for
   perf tracing.

Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>

* tag 'coresight-next-v6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/coresight/linux:
  coresight: Make trace ID map spinlock local to the map
  coresight: Emit sink ID in the HW_ID packets
  coresight: Remove pending trace ID release mechanism
  coresight: Use per-sink trace ID maps for Perf sessions
  coresight: Make CPU id map a property of a trace ID map
  coresight: Expose map arguments in trace ID API
  coresight: Move struct coresight_trace_id_map to common header
  coresight: Clarify comments around the PID of the sink owner
  coresight: Remove unused ETM Perf stubs
  coresight: tmc: sg: Do not leak sg_table
  Coresight: Set correct cs_mode for dummy source to fix disable issue
  Coresight: Set correct cs_mode for TPDM to fix disable issue
  coresight: cti: use device_* to iterate over device child nodes
2024-09-03 12:07:03 +02:00
Greg Kroah-Hartman
f53835f110 IIO: 1st set of new device support, features and cleanup for 6.12
Includes a merge of spi-mos-config branch from spi.git that brings
 support needed for the AD4000 driver.
 
 Lots of new device support this time including 9 new drivers and substantial
 changes to add new support to several more.
 
 New device support
 ------------------
 
 Given we have a lot of new support, I've subcategorized them:
 
 Substantial changes, or new driver
 **********************************
 
 adi,ad4000
 - New driver for this high speed ADC.
 adi,ad4695
 - New driver supporting AD4690, AD4696, AD4697 and AD4698 ADCs.
 - Follow up series added triggered buffer support.
 adi,ad7380
 - Add support for single ended parts, AD7386, ADC7387, AD7388 and -4 variants.
   (driver previously only support differential parts).
   These variants have an additional front end MUX so only half the channels
   can be sampled efficiently.
 adi,ad9467
 - Refactor and extend driver to support ad9643, ad9449 and ad9652 high speed
   ADCs.
 adi,adxl380
 - New driver for this low power accelerometer.
 adi,ltc2664
 - New driver supporting LTC2664 and LTC2672 DACs.
 microchip,pac1921
 - New driver for this power/current monitor chip.
 rohm,bh1745
 - New driver for this RGBC colour sensor.
 rohm,bu27034anuc
 - The original bu27034 was canceled before mass production, so the
   driver is modified to support the BU27034ANUC which had some significant
   differences.  DT compatible changed to avoid chance of old driver ever
   binding to real hardware.
 sciosense,ens210
 - New driver for ens210, ens210a, ens211, ens212, ens213a, and ens215
   temperature and humidity sensors (all register compatible up to some
   conversion time differences)
 sensiron,sdp500
 - New driver for this differential pressure sensor.
 tyhx,hx9023s
 - New driver to support this capacitive proximity sensor.
 
 Minor changes to support new devices
 ************************************
 
 adi,adf4377
 - Add support for the single output adf4378.
 kionix,kxcjk-1013
 - Add support for KX022-1020 accelerometer (binding and ID table only)
 liteon,ltrf216a
 - Add support for ltr-308.  A few minor differences in features set
 rockchip,saradc
 - Add ID for rk3576-saradc
 sensortek,stk3310
 - Add ID for stk3013 proximity sensor which (despite documentation) has
   an ambient light sensor and is compatible with existing parts.
 
 Documentation updates
 ---------------------
 
 Generalize ABI docs for shunt resistor attribute
 Improve calibscale and calibbias related documentation.  A couple of follow
 up patches to resolve duplicate documentation that resulted.
 
 New core features
 -----------------
 
 backend
 - Add option for debugfs - useful for test pattern control
 - Use this for both adi-axi-adc and adi-axi-dac
 trigger suspend
 - Add functions to allow triggers to be suspended. This avoids problems
   when a device enters suspend to idle with a sysfs trigger. Use it for now
   in the bmi323 only.
 
 New driver features
 -------------------
 
 adi,ad7192
 - Add option to be a clock provider (+ additional clock config options)
 adi,ad7380
 - Add documentation for this fairly new driver.
 adi,ad9461
 - Provide control of test modes and backend validation blocks used
   to identify problems (via debugfs)
 adi,ad9739
 - Add backend debugfs and docs for what is provided via adi-axi-dac
 avago,apds9960
 - Add proximity and gesture calibration offset control
 bosch,bmp280
 - Triggered buffer support including adding raw+scale output for sysfs.
 liteon,ltr390
 - Add configuration of integration time and scale.
 stm,dfsdm
 - Convert this SD modulator driver to backend framework and add support
   for channel scaling + modern channel bindings.
 
 Treewide cleanup
 ----------------
 
 iio_dev->masklength: Making it private.
 - Provide access function to read the core compute channel mask length
   and a macro to iterate over elements in the active_scan_mask.
 - Enables marking masklength __private preventing drivers from
   writing it without triggering a build warning whilst minimizing overhead
   in what are typically hot paths.
 - Convert all drivers and finally mark it private.
   Merge conflicts resolved in drivers applied after this point.
 Constify regmap_bus
 - These are never modified, so mark them const.
 
 Core cleanup
 ------------
 
 backend
 - A few late breaking bits of feedback (unused variable, error messages)
 dma-buffer
 - Namespace exports.
 core
 - Drop unused assignment.
 
 Driver cleanup
 --------------
 
 adi,ad4695
 - Fixing binding to reflect that common-mode-channel is a scalar.
 adi,ad7280a
 - Use __free(kfree) to simplify freeing of receive buffer.
 adi,ad7606
 - Various dt-binding cleanup and improvements.
 - Fix oversampling related gpio handling.
 - Make polarity of standby gpio match documentation.
 - use guard() to simplify lock handling.
 adi,ad7768
 - Use device_for_each_child_node_scoped() instead of fwnode equivalent.
 adi,ad7124
 - Reduce SPI transfers by avoiding separate writes to different fields
   in the same register.
 - Start the ADC in idle mode.
 adi,adis
 - Drop ifdefs in favor of IS_ENABLED.
 adi,admv8818
 - Fix wrong ABI docs.
 asahi-kasei,ak8975
 - Drop a prefix free compatible accidentally added recently.
 aspeed,adc
 - Use of_property_present() instead of of_find_property() to see if the
   property is there or not.
 atmel,at91,
 - Use __free(kfree) to simplify freeing of channel related array.
 bosch,bma400
 - Use __free(kfree) to simplify freeing a locally allocated string.
 bosch,bmc150
 - Add missing mount-matrix binding docs.
 bosch,bme680
 - Fix read/write to ensure multiple necessary sequential reads without
   device configuration change.
 - Drop unnecessary type casts and use more appropriate data types.
 - Drop some left over ACPI code as ACPI support was removed due to invalid
   IDs (and no known users).
 - Sort headers consistently.
 - Avoid unnecessary duplicate read and redundant read of gas config.
 - Use bulk reads to get calibration data.
 - Reorder allocation of IIO device to be prior to device init.
 - Add remaining read/write buffers to the union used already for all others.
 - Tidy up error checks for consistency of style, including dev_err_probe()
 - Bring the device startup procedure inline with the vendor code.
 - Reorder code so mode forcing is more obvious occurring where needed.
 - Tidy up data locality in reading functions so no magic data is stored
   in state structures just to get it across function calls.
 - Make a local lookup table static to avoid placing it on the stack.
 bosch,bmp280
 - Fix BME280 regmap to not include registers it doesn't have.
 - Wait a little longer after config to allow for maximum possible necessary
   wait.
 - Reorganize headers.
 - Make conversion_time_max array static to avoid placing it on the stack.
 maxim,max1363
 - Use __free(kfree) to simplify freeing transmission buffer.
 microchip,mcp3964
 - Use devm_regulator_get_enable_read_voltage()
 microchip,mcp3911
 - Use devm_regulator_get_enable_read_voltage()
 microchip,mcp4728
 - Use devm_regulator_get_enable_read_voltage()
 microchip,mcp4922
 - Use devm_regulator_get_enable_read_voltage() and devm_* to allow
   dropping of explicit remove() callback.
 onnn,noa1305
 - Various tidy up.
 - Provide available scale values.
 - Make integration time configurable.
 - Fix up integration time look up (/2 error)
 ti,dac7311
 - Check if spi_setup() succeeded.
 ti,tsc2046
 - Use __free(kfree) to simplify freeing rx and tx buffers.
 - Use devm_regulator_get_enable_read_voltage()
 
 Various minor fixes not called out explicitly.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAmbHhnARHGppYzIzQGtl
 cm5lbC5vcmcACgkQVIU0mcT0FohpshAApFDoTkyYMa7x1r5WUZ/5j474319LvwDO
 /9UIDIgR8qSzR2fDYl+LR03ZWknsOXF4lfCrCf65zPaR/8bB7TsjD8A7uIPVAKDF
 Tu+nSgBworJcvokPzygtrjoor2u2LCXdZVurYrFggMZ833LY5HTotFDAB32wx3QM
 p7p7OU0LgAZ8VR+ykzkbwp9NjOSrgD2mD7emy7Enu4h/OzLzst0c15KkUaOpnSUZ
 8R/+tz5lERrF+ACjWm+sWSe8ry2SkQppd8G8pSXyUM0uD2KO0I78FEpA3wUB2H++
 wiki1cm1kOM/ljHbXn2tqp5s+A8p6d0/LOCZm9bUi9kmtP5J2ky2iZmpZPraO52d
 +jbnHh/GyvoyIzeZRJZtp9h4hWTPNV2pgvb5BHD7Fek5rxOXXBlulDd695Ygbfq5
 vxiXYfN+ozVQk3/1mm0FwA34VZSoHADvzTxANQE9Vi99ywenpqJ5VYWQm/Bf0oHm
 HMH1sCcrmPHF9NOEUPV2uCanTQ20Q+OO89xOUBDGma1FKh6108wSont5c6GX/dKu
 sChUdllXSlNUR8VoiAYSFEP/U+gXnRE8Scxuk1Xx12RuKYpe0NNdRyRtj86kTU+1
 e6gHY90NskQCSVvOiivvo/rNTO08EZND9V3pbD/2HxaFvM4zw/iJtNR49DLdTkpX
 DfiCl2BAbLw=
 =eXUA
 -----END PGP SIGNATURE-----

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

Jonathan writes:

IIO: 1st set of new device support, features and cleanup for 6.12

Includes a merge of spi-mos-config branch from spi.git that brings
support needed for the AD4000 driver.

Lots of new device support this time including 9 new drivers and substantial
changes to add new support to several more.

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

Given we have a lot of new support, I've subcategorized them:

Substantial changes, or new driver
**********************************

adi,ad4000
- New driver for this high speed ADC.
adi,ad4695
- New driver supporting AD4690, AD4696, AD4697 and AD4698 ADCs.
- Follow up series added triggered buffer support.
adi,ad7380
- Add support for single ended parts, AD7386, ADC7387, AD7388 and -4 variants.
  (driver previously only support differential parts).
  These variants have an additional front end MUX so only half the channels
  can be sampled efficiently.
adi,ad9467
- Refactor and extend driver to support ad9643, ad9449 and ad9652 high speed
  ADCs.
adi,adxl380
- New driver for this low power accelerometer.
adi,ltc2664
- New driver supporting LTC2664 and LTC2672 DACs.
microchip,pac1921
- New driver for this power/current monitor chip.
rohm,bh1745
- New driver for this RGBC colour sensor.
rohm,bu27034anuc
- The original bu27034 was canceled before mass production, so the
  driver is modified to support the BU27034ANUC which had some significant
  differences.  DT compatible changed to avoid chance of old driver ever
  binding to real hardware.
sciosense,ens210
- New driver for ens210, ens210a, ens211, ens212, ens213a, and ens215
  temperature and humidity sensors (all register compatible up to some
  conversion time differences)
sensiron,sdp500
- New driver for this differential pressure sensor.
tyhx,hx9023s
- New driver to support this capacitive proximity sensor.

Minor changes to support new devices
************************************

adi,adf4377
- Add support for the single output adf4378.
kionix,kxcjk-1013
- Add support for KX022-1020 accelerometer (binding and ID table only)
liteon,ltrf216a
- Add support for ltr-308.  A few minor differences in features set
rockchip,saradc
- Add ID for rk3576-saradc
sensortek,stk3310
- Add ID for stk3013 proximity sensor which (despite documentation) has
  an ambient light sensor and is compatible with existing parts.

Documentation updates
---------------------

Generalize ABI docs for shunt resistor attribute
Improve calibscale and calibbias related documentation.  A couple of follow
up patches to resolve duplicate documentation that resulted.

New core features
-----------------

backend
- Add option for debugfs - useful for test pattern control
- Use this for both adi-axi-adc and adi-axi-dac
trigger suspend
- Add functions to allow triggers to be suspended. This avoids problems
  when a device enters suspend to idle with a sysfs trigger. Use it for now
  in the bmi323 only.

New driver features
-------------------

adi,ad7192
- Add option to be a clock provider (+ additional clock config options)
adi,ad7380
- Add documentation for this fairly new driver.
adi,ad9461
- Provide control of test modes and backend validation blocks used
  to identify problems (via debugfs)
adi,ad9739
- Add backend debugfs and docs for what is provided via adi-axi-dac
avago,apds9960
- Add proximity and gesture calibration offset control
bosch,bmp280
- Triggered buffer support including adding raw+scale output for sysfs.
liteon,ltr390
- Add configuration of integration time and scale.
stm,dfsdm
- Convert this SD modulator driver to backend framework and add support
  for channel scaling + modern channel bindings.

Treewide cleanup
----------------

iio_dev->masklength: Making it private.
- Provide access function to read the core compute channel mask length
  and a macro to iterate over elements in the active_scan_mask.
- Enables marking masklength __private preventing drivers from
  writing it without triggering a build warning whilst minimizing overhead
  in what are typically hot paths.
- Convert all drivers and finally mark it private.
  Merge conflicts resolved in drivers applied after this point.
Constify regmap_bus
- These are never modified, so mark them const.

Core cleanup
------------

backend
- A few late breaking bits of feedback (unused variable, error messages)
dma-buffer
- Namespace exports.
core
- Drop unused assignment.

Driver cleanup
--------------

adi,ad4695
- Fixing binding to reflect that common-mode-channel is a scalar.
adi,ad7280a
- Use __free(kfree) to simplify freeing of receive buffer.
adi,ad7606
- Various dt-binding cleanup and improvements.
- Fix oversampling related gpio handling.
- Make polarity of standby gpio match documentation.
- use guard() to simplify lock handling.
adi,ad7768
- Use device_for_each_child_node_scoped() instead of fwnode equivalent.
adi,ad7124
- Reduce SPI transfers by avoiding separate writes to different fields
  in the same register.
- Start the ADC in idle mode.
adi,adis
- Drop ifdefs in favor of IS_ENABLED.
adi,admv8818
- Fix wrong ABI docs.
asahi-kasei,ak8975
- Drop a prefix free compatible accidentally added recently.
aspeed,adc
- Use of_property_present() instead of of_find_property() to see if the
  property is there or not.
atmel,at91,
- Use __free(kfree) to simplify freeing of channel related array.
bosch,bma400
- Use __free(kfree) to simplify freeing a locally allocated string.
bosch,bmc150
- Add missing mount-matrix binding docs.
bosch,bme680
- Fix read/write to ensure multiple necessary sequential reads without
  device configuration change.
- Drop unnecessary type casts and use more appropriate data types.
- Drop some left over ACPI code as ACPI support was removed due to invalid
  IDs (and no known users).
- Sort headers consistently.
- Avoid unnecessary duplicate read and redundant read of gas config.
- Use bulk reads to get calibration data.
- Reorder allocation of IIO device to be prior to device init.
- Add remaining read/write buffers to the union used already for all others.
- Tidy up error checks for consistency of style, including dev_err_probe()
- Bring the device startup procedure inline with the vendor code.
- Reorder code so mode forcing is more obvious occurring where needed.
- Tidy up data locality in reading functions so no magic data is stored
  in state structures just to get it across function calls.
- Make a local lookup table static to avoid placing it on the stack.
bosch,bmp280
- Fix BME280 regmap to not include registers it doesn't have.
- Wait a little longer after config to allow for maximum possible necessary
  wait.
- Reorganize headers.
- Make conversion_time_max array static to avoid placing it on the stack.
maxim,max1363
- Use __free(kfree) to simplify freeing transmission buffer.
microchip,mcp3964
- Use devm_regulator_get_enable_read_voltage()
microchip,mcp3911
- Use devm_regulator_get_enable_read_voltage()
microchip,mcp4728
- Use devm_regulator_get_enable_read_voltage()
microchip,mcp4922
- Use devm_regulator_get_enable_read_voltage() and devm_* to allow
  dropping of explicit remove() callback.
onnn,noa1305
- Various tidy up.
- Provide available scale values.
- Make integration time configurable.
- Fix up integration time look up (/2 error)
ti,dac7311
- Check if spi_setup() succeeded.
ti,tsc2046
- Use __free(kfree) to simplify freeing rx and tx buffers.
- Use devm_regulator_get_enable_read_voltage()

Various minor fixes not called out explicitly.

* tag 'iio-for-6.12a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (250 commits)
  drivers:iio:Fix the NULL vs IS_ERR() bug for debugfs_create_dir()
  iio: sgp40: retain documentation in driver
  iio: ABI: remove duplicate in_resistance_calibbias
  dt-bindings: iio: st,stm32-adc: add top-level constraints
  iio: ABI: add missing calibbias attributes
  iio: ABI: add missing calibscale attributes
  iio: ABI: sort calibscale attributes
  iio: ABI: document calibscale_available attributes
  iio: light: ltr390: Calculate 'counts_per_uvi' dynamically
  iio: light: ltr390: Add ALS channel and support for gain and resolution
  doc: iio: ad4695: document buffered read
  iio: adc: ad4695: implement triggered buffer
  iio: proximity: hx9023s: Fix error code in hx9023s_property_get()
  iio: light: noa1305: Fix up integration time look up
  iio: humidity: Add support for ENS210
  dt-bindings: iio: humidity: add ENS210 sensor family
  iio: imu: adis16460: drop ifdef around CONFIG_DEBUG_FS
  iio: imu: adis16400: drop ifdef around CONFIG_DEBUG_FS
  iio: imu: adis16480: drop ifdef around CONFIG_DEBUG_FS
  iio: imu: adis16475: drop ifdef around CONFIG_DEBUG_FS
  ...
2024-09-03 11:32:16 +02:00
Yang Ruibin
c4b43d8336 drivers:iio:Fix the NULL vs IS_ERR() bug for debugfs_create_dir()
The debugfs_create_dir() function returns error pointers.
It never returns NULL. So use IS_ERR() to check it.

Signed-off-by: Yang Ruibin <11162571@vivo.com>
Link: https://patch.msgid.link/20240821083911.3411-1-11162571@vivo.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-08-21 21:32:52 +01:00
Andreas Klinger
d35099d3c6 iio: sgp40: retain documentation in driver
Retain documentation on how the voc index is actually calculated in
driver code as it'll be removed in Documentation.

This is a follow up on patch "[PATCH] iio: ABI: remove duplicate
in_resistance_calibbias" from David.

Signed-off-by: Andreas Klinger <ak@it-klinger.de>
Link: https://patch.msgid.link/ZsWdFOIkDtEB9WGO@mail.your-server.de
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-08-21 21:28:02 +01:00
David Lechner
6bcffddc14 iio: ABI: remove duplicate in_resistance_calibbias
In commit 0f718e10da ("iio: ABI: add missing calibbias attributes"),
the in_resistance_calibbias attribute was added to the main IIO ABI
documentation. This attribute is was already documented in
sysfs-bus-iio-chemical-sgp40. This resulted in a duplicate entry that is
causing documentation build warnings.

This removes the attribute from the sgp40 documentation in favor of the
main IIO ABI documentation since this attribute fits the established
pattern of standard IIO attributes.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Closes: https://lore.kernel.org/linux-next/20240820134739.50c771cb@canb.auug.org.au/
Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20240820-iio-abi-remove-dup-in_resistance_calibbias-v1-1-e64e58cabb14@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-08-21 21:27:24 +01:00
Krzysztof Kozlowski
bd5eebf4d3 dt-bindings: iio: st,stm32-adc: add top-level constraints
Properties with variable number of items per each device are expected to
have widest constraints in top-level "properties:" block and further
customized (narrowed) in "if:then:".  Add missing top-level constraints
for clock-names.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20240818172951.121983-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-08-21 21:06:05 +01:00
James Clark
988d40a4d4 coresight: Make trace ID map spinlock local to the map
Reduce contention on the lock by replacing the global lock with one for
each map.

Signed-off-by: James Clark <james.clark@arm.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Signed-off-by: James Clark <james.clark@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240722101202.26915-18-james.clark@linaro.org
2024-08-20 15:02:38 +01:00
James Clark
487eec8da8 coresight: Emit sink ID in the HW_ID packets
For Perf to be able to decode when per-sink trace IDs are used, emit the
sink that's being written to for each ETM.

Perf currently errors out if it sees a newer packet version so instead
of bumping it, add a new minor version field. This can be used to
signify new versions that have backwards compatible fields. Considering
this change is only for high core count machines, it doesn't make sense
to make a breaking change for everyone.

Signed-off-by: James Clark <james.clark@arm.com>
Tested-by: Leo Yan <leo.yan@arm.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Signed-off-by: James Clark <james.clark@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240722101202.26915-17-james.clark@linaro.org
2024-08-20 15:02:38 +01:00
James Clark
de0029fdde coresight: Remove pending trace ID release mechanism
Pending the release of IDs was a way of managing concurrent sysfs and
Perf sessions in a single global ID map. Perf may have finished while
sysfs hadn't, and Perf shouldn't release the IDs in use by sysfs and
vice versa.

Now that Perf uses its own exclusive ID maps, pending release doesn't
result in any different behavior than just releasing all IDs when the
last Perf session finishes. As part of the per-sink trace ID change, we
would have still had to make the pending mechanism work on a per-sink
basis, due to the overlapping ID allocations, so instead of making that
more complicated, just remove it.

Signed-off-by: James Clark <james.clark@arm.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Signed-off-by: James Clark <james.clark@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240722101202.26915-16-james.clark@linaro.org
2024-08-20 15:02:38 +01:00
James Clark
5ad628a761 coresight: Use per-sink trace ID maps for Perf sessions
This will allow sessions with more than CORESIGHT_TRACE_IDS_MAX ETMs
as long as there are fewer than that many ETMs connected to each sink.

Each sink owns its own trace ID map, and any Perf session connecting to
that sink will allocate from it, even if the sink is currently in use by
other users. This is similar to the existing behavior where the dynamic
trace IDs are constant as long as there is any concurrent Perf session
active. It's not completely optimal because slightly more IDs will be
used than necessary, but the optimal solution involves tracking the PIDs
of each session and allocating ID maps based on the session owner. This
is difficult to do with the combination of per-thread and per-cpu modes
and some scheduling issues. The complexity of this isn't likely to worth
it because even with multiple users they'd just see a difference in the
ordering of ID allocations rather than hitting any limits (unless the
hardware does have too many ETMs connected to one sink).

Signed-off-by: James Clark <james.clark@arm.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Signed-off-by: James Clark <james.clark@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240722101202.26915-15-james.clark@linaro.org
2024-08-20 15:02:38 +01:00
James Clark
d53c8253c7 coresight: Make CPU id map a property of a trace ID map
The global CPU ID mappings won't work for per-sink ID maps so move it to
the ID map struct. coresight_trace_id_release_all_pending() is hard
coded to operate on the default map, but once Perf sessions use their
own maps the pending release mechanism will be deleted. So it doesn't
need to be extended to accept a trace ID map argument at this point.

Signed-off-by: James Clark <james.clark@arm.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Tested-by: Leo Yan <leo.yan@arm.com>
Signed-off-by: James Clark <james.clark@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240722101202.26915-14-james.clark@linaro.org
2024-08-20 15:02:38 +01:00
James Clark
7e52877868 coresight: Expose map arguments in trace ID API
The trace ID API is currently hard coded to always use the global map.
Add public versions that allow the map to be passed in so that Perf
mode can use per-sink maps. Keep the non-map versions so that sysfs
mode can continue to use the default global map.

System ID functions are unchanged because they will always use the
default map.

Signed-off-by: James Clark <james.clark@arm.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Tested-by: Leo Yan <leo.yan@arm.com>
Signed-off-by: James Clark <james.clark@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240722101202.26915-13-james.clark@linaro.org
2024-08-20 15:02:38 +01:00
James Clark
acb0184fe9 coresight: Move struct coresight_trace_id_map to common header
The trace ID maps will need to be created and stored by the core and
Perf code so move the definition up to the common header.

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Signed-off-by: James Clark <james.clark@arm.com>
Tested-by: Leo Yan <leo.yan@arm.com>
Tested-by: Ganapatrao Kulkarni <gankulkarni@os.amperecomputing.com>
Signed-off-by: James Clark <james.clark@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240722101202.26915-12-james.clark@linaro.org
2024-08-20 15:02:37 +01:00
James Clark
eda1d11979 coresight: Clarify comments around the PID of the sink owner
"Process being monitored" and "pid of the process to monitor" imply that
this would be the same PID if there were two sessions targeting the same
process. But this is actually the PID of the process that did the Perf
event open call, rather than the target of the session. So update the
comments to make this clearer.

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Signed-off-by: James Clark <james.clark@arm.com>
Tested-by: Leo Yan <leo.yan@arm.com>
Tested-by: Ganapatrao Kulkarni <gankulkarni@os.amperecomputing.com>
Signed-off-by: James Clark <james.clark@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240722101202.26915-11-james.clark@linaro.org
2024-08-20 15:02:37 +01:00
James Clark
34172002bd coresight: Remove unused ETM Perf stubs
This file is never included anywhere if CONFIG_CORESIGHT is not set so
they are unused and aren't currently compile tested with any config so
remove them.

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Signed-off-by: James Clark <james.clark@arm.com>
Tested-by: Leo Yan <leo.yan@arm.com>
Tested-by: Ganapatrao Kulkarni <gankulkarni@os.amperecomputing.com>
Signed-off-by: James Clark <james.clark@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240722101202.26915-10-james.clark@linaro.org
2024-08-20 15:02:37 +01:00
Suzuki K Poulose
c58dc5a1f8 coresight: tmc: sg: Do not leak sg_table
Running perf with cs_etm on Juno triggers the following kmemleak warning !

:~# cat /sys/kernel/debug/kmemleak
 unreferenced object 0xffffff8806b6d720 (size 96):
 comm "perf", pid 562, jiffies 4297810960
 hex dump (first 32 bytes):
 38 d8 13 07 88 ff ff ff 00 d0 9e 85 c0 ff ff ff  8...............
 00 10 00 88 c0 ff ff ff 00 f0 ff f7 ff 00 00 00  ................
 backtrace (crc 1dbf6e00):
 [<ffffffc08107381c>] kmemleak_alloc+0xbc/0xd8
 [<ffffffc0802f9798>] kmalloc_trace_noprof+0x220/0x2e8
 [<ffffffc07bb71948>] tmc_alloc_sg_table+0x48/0x208 [coresight_tmc]
 [<ffffffc07bb71cbc>] tmc_etr_alloc_sg_buf+0xac/0x240 [coresight_tmc]
 [<ffffffc07bb72538>] tmc_alloc_etr_buf.constprop.0+0x1f0/0x260 [coresight_tmc]
 [<ffffffc07bb7280c>] alloc_etr_buf.constprop.0.isra.0+0x74/0xa8 [coresight_tmc]
 [<ffffffc07bb72950>] tmc_alloc_etr_buffer+0x110/0x260 [coresight_tmc]
 [<ffffffc07bb38afc>] etm_setup_aux+0x204/0x3b0 [coresight]
 [<ffffffc08025837c>] rb_alloc_aux+0x20c/0x318
 [<ffffffc08024dd84>] perf_mmap+0x2e4/0x7a0
 [<ffffffc0802cceb0>] mmap_region+0x3b0/0xa08
 [<ffffffc0802cd8a8>] do_mmap+0x3a0/0x500
 [<ffffffc080295328>] vm_mmap_pgoff+0x100/0x1d0
 [<ffffffc0802cadf8>] ksys_mmap_pgoff+0xb8/0x110
 [<ffffffc080020688>] __arm64_sys_mmap+0x38/0x58
 [<ffffffc080028fc0>] invoke_syscall.constprop.0+0x58/0x100

This due to the fact that we do not free the "sg_table" itself while
freeing up  the SG table and data pages. Fix this by freeing the sg_table
in tmc_free_sg_table().

Fixes: 99443ea19e ("coresight: Add generic TMC sg table framework")
Cc: Mike Leach <mike.leach@linaro.org>
Cc: James Clark <james.clark@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Link: https://lore.kernel.org/r/20240702132846.1677261-1-suzuki.poulose@arm.com
2024-08-20 15:02:03 +01:00
Jie Gan
e6b64cda39 Coresight: Set correct cs_mode for dummy source to fix disable issue
The coresight_disable_source_sysfs function should verify the
mode of the coresight device before disabling the source.
However, the mode for the dummy source device is always set to
CS_MODE_DISABLED, resulting in the check consistently failing.
As a result, dummy source cannot be properly disabled.

Configure CS_MODE_SYSFS/CS_MODE_PERF during the enablement.
Configure CS_MODE_DISABLED during the disablement.

Fixes: 9d3ba0b6c0 ("Coresight: Add coresight dummy driver")
Signed-off-by: Jie Gan <quic_jiegan@quicinc.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240812042844.2890115-1-quic_jiegan@quicinc.com
2024-08-19 16:32:06 +01:00
Jie Gan
14f5fa9b5f Coresight: Set correct cs_mode for TPDM to fix disable issue
The coresight_disable_source_sysfs function should verify the
mode of the coresight device before disabling the source.

However, the mode for the TPDM device is always set to
CS_MODE_DISABLED, resulting in the check consistently failing.
As a result, TPDM cannot be properly disabled.

Configure CS_MODE_SYSFS/CS_MODE_PERF during the enablement.
Configure CS_MODE_DISABLED during the disablement.

Fixes: b3c71626a9 ("Coresight: Add coresight TPDM source driver")
Signed-off-by: Jie Gan <quic_jiegan@quicinc.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240812043043.2890694-1-quic_jiegan@quicinc.com
2024-08-19 16:26:13 +01:00
Javier Carrasco
daca644d0c coresight: cti: use device_* to iterate over device child nodes
Drop the manual access to the fwnode of the device to iterate over its
child nodes. `device_for_each_child_node` macro provides direct access
to the child nodes, and given that they are only required within the
loop, the scoped variant of the macro can be used.

Use the `device_for_each_child_node_scoped` macro to iterate over the
direct child nodes of the device.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240808-device_child_node_access-v2-1-fc757cc76650@gmail.com
2024-08-19 15:31:37 +01:00
Greg Kroah-Hartman
10c8d1bd78 Merge 6.11-rc4 into char-misc-next
We need the char/misc fixes in here as well.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-19 06:02:26 +02:00
Linus Torvalds
47ac09b91b Linux 6.11-rc4 2024-08-18 13:17:27 -07:00
Linus Torvalds
ccdbf91fdf Driver core fixes for 6.11-rc4
Here are 2 driver fixes for regressions from 6.11-rc1 due to the driver
 core change making a structure in a driver core callback const.  These
 were missed by all testing EXCEPT for what Bart happened to be running,
 so I appreciate the fixes provided here for some odd/not-often-used
 driver subsystems that nothing else happened to catch.
 
 Both of these fixes have been in linux-next all week with no reported
 issues.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCZsIWNA8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ylHBgCdGDGhaQp4W/dLejZBeMtuGLILTcoAnRm7/Aj8
 U/uR4ukttCXjfvjlalxi
 =t+bl
 -----END PGP SIGNATURE-----

Merge tag 'driver-core-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core

Pull driver core fixes from Greg KH:
 "Here are two driver fixes for regressions from 6.11-rc1 due to the
  driver core change making a structure in a driver core callback const.

  These were missed by all testing EXCEPT for what Bart happened to be
  running, so I appreciate the fixes provided here for some
  odd/not-often-used driver subsystems that nothing else happened to
  catch.

  Both of these fixes have been in linux-next all week with no reported
  issues"

* tag 'driver-core-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
  mips: sgi-ip22: Fix the build
  ARM: riscpc: ecard: Fix the build
2024-08-18 10:19:49 -07:00
Linus Torvalds
e1bc113215 Char/Misc fixes for 6.11-rc4
Here are some small char/misc fixes for 6.11-rc4 to resolve reported
 problems.  Included in here are:
   - fastrpc revert of a change that broke userspace
   - xillybus fixes for reported issues
 
 Half of these have been in linux-next this week with no reported
 problems, I don't know if the last bit of xillybus driver changes made
 it in, but they are "obviously correct" so will be safe :)
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCZsIT4A8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ymYQACfeV6tIMHlHSVS9VSbiXHJAovjvFEAoLQvuvBS
 0dN1Q4iYF+5Sy4JWAZb/
 =ztLK
 -----END PGP SIGNATURE-----

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

Pull char / misc fixes from Greg KH:
 "Here are some small char/misc fixes for 6.11-rc4 to resolve reported
  problems. Included in here are:

   - fastrpc revert of a change that broke userspace

   - xillybus fixes for reported issues

  Half of these have been in linux-next this week with no reported
  problems, I don't know if the last bit of xillybus driver changes made
  it in, but they are 'obviously correct' so will be safe :)"

* tag 'char-misc-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
  char: xillybus: Check USB endpoints when probing device
  char: xillybus: Refine workqueue handling
  Revert "misc: fastrpc: Restrict untrusted app to attach to privileged PD"
  char: xillybus: Don't destroy workqueue from work item running on it
2024-08-18 10:16:34 -07:00
Linus Torvalds
394f33f9b3 TTY/Serial fixes for 6.11-rc4
Here are some small tty and serial driver fixes for 6.11-rc4 to resolve
 some reported problems.  Included in here are:
   - conmakehash.c userspace build issues
   - fsl_lpuart driver fix
   - 8250_omap revert for reported regression
   - atmel_serial rts flag fix
 
 All of these have been in linux-next this week with no reported issues.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCZsIUhw8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ymHUACdHhcerkgnsJxwy4pUTbH1mjCsQ40AniqUkc/l
 5bShqqmhDP1Y5zh7D5w5
 =rdx/
 -----END PGP SIGNATURE-----

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

Pull tty / serial fixes from Greg KH:
 "Here are some small tty and serial driver fixes for 6.11-rc4 to
  resolve some reported problems. Included in here are:

   - conmakehash.c userspace build issues

   - fsl_lpuart driver fix

   - 8250_omap revert for reported regression

   - atmel_serial rts flag fix

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

* tag 'tty-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
  Revert "serial: 8250_omap: Set the console genpd always on if no console suspend"
  tty: atmel_serial: use the correct RTS flag.
  tty: vt: conmakehash: remove non-portable code printing comment header
  tty: serial: fsl_lpuart: mark last busy before uart_add_one_port
2024-08-18 10:10:48 -07:00
Linus Torvalds
3d9061d22b USB / Thunderbolt driver fixes for 6.11-rc4
Here are some small USB and Thunderbolt driver fixes for 6.11-rc4 to
 resolve some reported issues.  Included in here are:
   - thunderbolt driver fixes for reported problems
   - typec driver fixes
   - xhci fixes
   - new device id for ljca usb driver
 
 All of these have been in linux-next this week with no reported issues.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCZsIVPA8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ykXZQCgtIX9QomJztpybexiFP70JJrGksMAn3SHFdHG
 Fp1XVUssS8asP7H0M2iE
 =m7n6
 -----END PGP SIGNATURE-----

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

Pull USB / Thunderbolt driver fixes from Greg KH:
 "Here are some small USB and Thunderbolt driver fixes for 6.11-rc4 to
  resolve some reported issues. Included in here are:

   - thunderbolt driver fixes for reported problems

   - typec driver fixes

   - xhci fixes

   - new device id for ljca usb driver

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

* tag 'usb-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
  xhci: Fix Panther point NULL pointer deref at full-speed re-enumeration
  usb: misc: ljca: Add Lunar Lake ljca GPIO HID to ljca_gpio_hids[]
  Revert "usb: typec: tcpm: clear pd_event queue in PORT_RESET"
  usb: typec: ucsi: Fix the return value of ucsi_run_command()
  usb: xhci: fix duplicate stall handling in handle_tx_event()
  usb: xhci: Check for xhci->interrupters being allocated in xhci_mem_clearup()
  thunderbolt: Mark XDomain as unplugged when router is removed
  thunderbolt: Fix memory leaks in {port|retimer}_sb_regs_write()
2024-08-18 09:59:06 -07:00