1266317 Commits

Author SHA1 Message Date
Uwe Kleine-König
693d2f6299 nvmem: lpc18xx_eeprom: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.

To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
.remove_new(), which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20240430084921.33387-8-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-03 07:26:38 +02:00
Greg Kroah-Hartman
8d8fc146dd nvmem: core: switch to use device_add_groups()
devm_device_add_groups() is being removed from the kernel, so move the
nvmem driver to use device_add_groups() instead.  The logic is
identical, when the device is removed the driver core will properly
clean up and remove the groups, and the memory used by the attribute
groups will be freed because it was created with dev_* calls, so this is
functionally identical overall.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20240430084921.33387-7-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-03 07:26:38 +02:00
Krzysztof Kozlowski
154c1ec943 nvmem: sprd: fix module autoloading
Add MODULE_DEVICE_TABLE(), so the module could be properly autoloaded
based on the alias from of_device_id table.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20240430084921.33387-6-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-03 07:26:38 +02:00
Krzysztof Kozlowski
dc3d88ade8 nvmem: sc27xx: fix module autoloading
Add MODULE_DEVICE_TABLE(), so the module could be properly autoloaded
based on the alias from of_device_id table.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20240430084921.33387-5-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-03 07:26:38 +02:00
Krzysztof Kozlowski
23fd602f21 nvmem: layouts: sl28vpd: drop driver owner initialization
Core in nvmem_layout_driver_register() already sets the .owner, so
driver does not need to.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20240430084921.33387-4-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-03 07:26:38 +02:00
Krzysztof Kozlowski
21833338ec nvmem: layouts: onie-tlv: drop driver owner initialization
Core in nvmem_layout_driver_register() already sets the .owner, so
driver does not need to.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Michael Walle <mwalle@kernel.org>
Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20240430084921.33387-3-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-03 07:26:38 +02:00
Krzysztof Kozlowski
6d0ca4a2a7 nvmem: layouts: store owner from modules with nvmem_layout_driver_register()
Modules registering driver with nvmem_layout_driver_register() might
forget to set .owner field.  The field is used by some of other kernel
parts for reference counting (try_module_get()), so it is expected that
drivers will set it.

Solve the problem by moving this task away from the drivers to the core
code, just like we did for platform_driver in
commit 9447057eaff8 ("platform_device: use a macro instead of
platform_driver_register").

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20240430084921.33387-2-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-03 07:26:38 +02:00
Christophe JAILLET
73df3d6f2e VMCI: Fix an error handling path in vmci_guest_probe_device()
After a successful pci_iomap_range() call, pci_iounmap() should be called
in the error handling path, as already done in the remove function.

Add the missing call.

The corresponding call was added in the remove function in commit
5ee109828e73 ("VMCI: dma dg: allocate send and receive buffers for DMA
datagrams")

Fixes: e283a0e8b7ea ("VMCI: dma dg: add MMIO access to registers")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Vishnu Dasa <vishnu.dasa@broadcom.com>
Link: https://lore.kernel.org/r/a35bbc3876ae1da70e49dafde4435750e1477be3.1713961553.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-03 07:25:28 +02:00
Greg Kroah-Hartman
d629cfcfed coresight: hwtracing subsystem updates for v6.10
CoreSight/hwtracing updates for the next release includes:
  - ACPI power management support for CoreSight legacy components, via migration
    from AMBA to platform device
  - Fixes for ETE register save/restore during CPU Idle.
  - ACPI support TMC for Scatter-Gather mode.
  - his_ptt driver update to set the parent device for PMU and documentation fixes
  - Qcomm Trace component DT binding fixes
  - Miscellaneous cleanups
 
 Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEuFy0byloRoXZHaWBxcXRZPKyBqEFAmYzcecACgkQxcXRZPKy
 BqEyrw//fsxpXrjt9Uz1QSmpEH+5eV//RQIO8vOOibihLrQYYMl8ZrwHp1n0lS0B
 Cj9P6MIRs8XztOBh5f0w57NoUOD9eJJ4/BdPRpixDPyZsm3acV/7JFMh1TIYQG6z
 ETlRGr5GRlLlx6VXkytMVfxRCtNlPR3PA3/fy5QR5BQ74ux+AlxuiX5krk6pEvak
 j8Vf35eNofqIDjNvr8ffY59kxDP+ULtiv+JWfAW+hzjjlQd+RxyamLUSJHr5Mh1N
 AqFjt+bqCVoT7MdtZoCrLX1b4gcgi1W/55Ph3ODdvy9vwErj2MpaNAW4829I5m1l
 dK5WmXFSQ/vb6UGj5laIu4ssZ0sMShu4jzatiGBBSo4FwAazSg2Lk3F6gNhXHBE2
 iyrU+Pr8mRnxh59FDtnldCD1ww0cUPZOQz29aNwNy1x52nkeEMOg2KYx3sXy/Sbx
 TK5qJ7Fv6DOEZ/fWDPxvZjKM8IbsvJI2XTL7WyyCt3hOT+bcdzQIwnlS8q+EdBL/
 zk/HAdb6/IA1vyg3kgmTCejC0EXwklME01UTs591HQ6U0iG+YxlklFFXLL9sw4Ij
 v6FVAbrtsgC8ov9UtmECqvjUlkZ5pwXkFU0php51R0MKvOWEU7vSxhtIjzvTumhu
 /lxyAQA+V112RWQS3nlxmUq3FWbqXIiFZSo1zvTavhxOtMVg06s=
 =yu6I
 -----END PGP SIGNATURE-----

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

Suzuki writes:

coresight: hwtracing subsystem updates for v6.10

CoreSight/hwtracing updates for the next release includes:
 - ACPI power management support for CoreSight legacy components, via migration
   from AMBA to platform device
 - Fixes for ETE register save/restore during CPU Idle.
 - ACPI support TMC for Scatter-Gather mode.
 - his_ptt driver update to set the parent device for PMU and documentation fixes
 - Qcomm Trace component DT binding fixes
 - Miscellaneous cleanups

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

* tag 'coresight-next-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux: (28 commits)
  hwtracing: hisi_ptt: Assign parent for event_source device
  Documentation: ABI + trace: hisi_ptt: update paths to bus/event_source
  coresight: tmc: Enable SG capability on ACPI based SoC-400 TMC ETR devices
  coresight:  Docs/ABI/testing/sysfs-bus-coresight-devices: Fix spelling errors
  coresight: tpiu: Convert to platform remove callback returning void
  coresight: tmc: Convert to platform remove callback returning void
  coresight: stm: Convert to platform remove callback returning void
  coresight: debug: Convert to platform remove callback returning void
  coresight: catu: Convert to platform remove callback returning void
  coresight: Remove duplicate linux/amba/bus.h header
  coresight: stm: Remove duplicate linux/acpi.h header
  coresight: etm4x: Fix access to resource selector registers
  coresight: etm4x: Safe access for TRCQCLTR
  coresight: etm4x: Do not save/restore Data trace control registers
  coresight: etm4x: Do not hardcode IOMEM access for register restore
  coresight: debug: Move ACPI support from AMBA driver to platform driver
  coresight: stm: Move ACPI support from AMBA driver to platform driver
  coresight: tmc: Move ACPI support from AMBA driver to platform driver
  coresight: tpiu: Move ACPI support from AMBA driver to platform driver
  coresight: catu: Move ACPI support from AMBA driver to platform driver
  ...
2024-05-03 07:13:54 +02:00
Jonathan Cameron
9b47d9982d hwtracing: hisi_ptt: Assign parent for event_source device
Currently the PMU device appears directly under /sys/devices/
Only root busses should appear there, so instead assign the pmu->dev
parent to be the PCI device.

Link: https://lore.kernel.org/linux-cxl/ZCLI9A40PJsyqAmq@kroah.com/
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: Yicong Yang <yangyicong@hisilicon.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Acked-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240412161057.14099-31-Jonathan.Cameron@huawei.com
2024-05-02 11:36:11 +01:00
Jonathan Cameron
1f82d58ddb Documentation: ABI + trace: hisi_ptt: update paths to bus/event_source
To allow for assigning a suitable parent to the struct pmu device
update the documentation to describe the device via the event_source
bus where it will remain accessible.

For the ABI documention file also rename the file as it is named
after the path.

Reviewed-by: Yicong Yang <yangyicong@hisilicon.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240412161057.14099-30-Jonathan.Cameron@huawei.com
2024-05-02 11:36:11 +01:00
Anshuman Khandual
8877ef45ef coresight: tmc: Enable SG capability on ACPI based SoC-400 TMC ETR devices
This detects and enables the scatter gather capability (SG) on ACPI based
Soc-400 TMC ETR devices via a new property called 'arm-armhc97c-sg-enable'.
The updated ACPI spec can be found below, which contains this new property.

https://developer.arm.com/documentation/den0067/latest/

This preserves current handling for the property 'arm,scatter-gather' both
on ACPI and DT based platforms i.e the presence of the property is checked
instead of the value.

Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: James Clark <james.clark@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: coresight@lists.linaro.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: James Clark <james.clark@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240404072934.940760-1-anshuman.khandual@arm.com
2024-05-01 11:12:02 +01:00
Greg Kroah-Hartman
33075a03f4 MHI Host
========
 
 - Added a new API mhi_power_down_keep_dev() to not destroy the struct dev
   associated with the MHI channels during MHI power down. This is useful in
   scenarios such as system suspend/hibernation where the probability of
   channels coming back is very high. So the PM maintainer suggested not to
   destroy the struct dev in those cases.
 
   This API is introduced for fixing the failure reported in the ath11k driver
   during resume from system suspend.
 
   NOTE: Due to the API dependency, the patch adding the API is pushed to an
   immutable branch (mhi-immutable) and merged into both mhi and ath trees. But
   the merge commit is not visible in mhi tree due to git being smart with
   'fast-forward'.
 
 - Added an optional sysfs entry to force the MHI devices to enter the Emergency
   Download (EDL) mode to download the firmware from host.
 
 - Added EDL mode support for Qcom SDX75/65/55 modems as per the MHI spec v1.2,
   Chapter 13.2. This involves writing a cookie to the EDL doorbell registers and
   then triggering the device reset from host.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEZ6VDKoFIy9ikWCeXVZ8R5v6RzvUFAmYxxQoACgkQVZ8R5v6R
 zvX1EggAmWakz+JrSzSJMkoc0aQDrtpfclnVnuSh0hcH/ospNw9N09AmnadFmKJN
 Q9ALHlM9cI+YcgpZsfr+B6OPJj4U2Oieq9ynMbn4RdVPKeN2kwnjfUBtlVKJqwvU
 +dt+k/WKgfxIMPnNSOclpG+KI8syZZASIaA2zEV1Xq3zBVWXmgzyswCMG7/VIcsL
 ByEb4m0ZZLS7W/T2xqXbf26Www1BCkqK0kCLIb8JGOTNZW8gtOQyjY5ceeE2VVR0
 8T0/8LAvzmXE+0QpwnwLm6TlW8nubCEA4aiULpswrSPpsrdNi+ma2s+ggiPDK3N4
 pewlUkKo2BbCSLl5zFK+X9aS6ze5Mg==
 =ktJy
 -----END PGP SIGNATURE-----

Merge tag 'mhi-for-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mani/mhi into char-misc-next

Manivannan writes:

MHI Host
========

- Added a new API mhi_power_down_keep_dev() to not destroy the struct dev
  associated with the MHI channels during MHI power down. This is useful in
  scenarios such as system suspend/hibernation where the probability of
  channels coming back is very high. So the PM maintainer suggested not to
  destroy the struct dev in those cases.

  This API is introduced for fixing the failure reported in the ath11k driver
  during resume from system suspend.

  NOTE: Due to the API dependency, the patch adding the API is pushed to an
  immutable branch (mhi-immutable) and merged into both mhi and ath trees. But
  the merge commit is not visible in mhi tree due to git being smart with
  'fast-forward'.

- Added an optional sysfs entry to force the MHI devices to enter the Emergency
  Download (EDL) mode to download the firmware from host.

- Added EDL mode support for Qcom SDX75/65/55 modems as per the MHI spec v1.2,
  Chapter 13.2. This involves writing a cookie to the EDL doorbell registers and
  then triggering the device reset from host.

* tag 'mhi-for-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mani/mhi:
  bus: mhi: host: pci_generic: Add generic edl_trigger to allow devices to enter EDL mode
  bus: mhi: host: Add a new API for getting channel doorbell offset
  bus: mhi: host: Add sysfs entry to force device to enter EDL
  bus: mhi: host: Add mhi_power_down_keep_dev() API to support system suspend/hibernation
2024-05-01 07:17:29 +02:00
Greg Kroah-Hartman
1ddfcad01d FPGA Manager changes for 6.10-rc1
FPGA MGR core:
 
 - Marco's change adds module owner parameter for all registration APIs.
 
 FPGA test:
 
 - Macro's change uses KUnit devices instead of platform devices.
 
 DFL:
 
 - Peter's change cleans up unused symbols.
 
 Xlinux:
 
 - Charles adds SelectMAP interface reprogramming support.
 - Andy's header inclusion cleanup.
 
 Altera:
 
 - Krzysztof & Christophe's cleanup for drivers
 -----BEGIN PGP SIGNATURE-----
 
 iIkEABYIADEWIQSgSJpClIeaArXyudb8twOBpKCM2gUCZjBbQRMceWlsdW4ueHVA
 aW50ZWwuY29tAAoJEPy3A4GkoIzaPikA/AhgKjW8PrU1V7QGLs4fI2XsXYujy64+
 RFjFqFppw9l7AP9FZRuj5wpHHXJbGCRw75JocqBxLWAVZ9cUxsaEZFE9AQ==
 =haws
 -----END PGP SIGNATURE-----

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

Xu writes:

FPGA Manager changes for 6.10-rc1

FPGA MGR core:

- Marco's change adds module owner parameter for all registration APIs.

FPGA test:

- Macro's change uses KUnit devices instead of platform devices.

DFL:

- Peter's change cleans up unused symbols.

Xlinux:

- Charles adds SelectMAP interface reprogramming support.
- Andy's header inclusion cleanup.

Altera:

- Krzysztof & Christophe's cleanup for drivers

* tag 'fpga-for-6.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga:
  fpga: region: add owner module and take its refcount
  fpga: dfl: remove unused member pdata from struct dfl_{afu,fme}
  fpga: dfl: remove unused function is_dfl_feature_present()
  fpga: ice40-spi: Don't use "proxy" headers
  fpga: tests: use KUnit devices instead of platform devices
  fpga: altera-cvp: Remove an unused field in struct altera_cvp_conf
  fpga: altera: drop driver owner assignment
  fpga: xilinx-core: add new gpio names for prog and init
  fpga: xilinx-selectmap: add new driver
  dt-bindings: fpga: xlnx,fpga-selectmap: add DT schema
  fpga: xilinx-spi: extract a common driver core
  fpga: bridge: add owner module and take its refcount
  fpga: manager: add owner module and take its refcount
2024-04-30 09:23:46 +02:00
Greg Kroah-Hartman
1245489b35 Second set of Counter updates for 6.10
Counter header file is updated to include only headers that are actually
 use.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQSNN83d4NIlKPjon7a1SFbKvhIjKwUCZjAh3gAKCRC1SFbKvhIj
 K1tHAQC8AApDIWPiiDvE0equxyIYlxIvSOrMbpl9VF3Wns6HtQD+JlAJGb2ApmEa
 8KsbxFXC1JjoShI5gpmNA32+6gN88w4=
 =+hBX
 -----END PGP SIGNATURE-----

Merge tag 'counter-updates-for-6.10b' of git://git.kernel.org/pub/scm/linux/kernel/git/wbg/counter into char-misc-next

William writes:

Second set of Counter updates for 6.10

Counter header file is updated to include only headers that are actually
use.

* tag 'counter-updates-for-6.10b' of git://git.kernel.org/pub/scm/linux/kernel/git/wbg/counter:
  counter: Don't use "proxy" headers
2024-04-30 09:22:37 +02:00
Thomas Weißschuh
7b51b13733 misc/pvpanic: add support for normal shutdowns
Shutdown requests are normally hardware dependent.
By extending pvpanic to also handle shutdown requests, guests can
submit such requests with an easily implementable and cross-platform
mechanism.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/r/20240412-pvpanic-shutdown-v3-1-c214e9873b3f@weissschuh.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-29 11:15:53 +02:00
Prasad Pandit
11e5e1aba7 misc: sgi_gru: remove default attribute of LATTICE_ECP3_CONFIG
Remove 'default n' attribute of 'LATTICE_ECP3_CONFIG' option
because it is redundant. 'n' is automatic default value when
one is not specified.

Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Prasad Pandit <pjp@fedoraproject.org>
Link: https://lore.kernel.org/r/20240412055221.69411-3-ppandit@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-29 11:15:34 +02:00
Prasad Pandit
7a5ffa5a21 misc: sgi_gru: indent SGI_GRU option help text
Fix indentation of SGI_GRU option's help text by adding
leading spaces. Generally help text is indented by two
more spaces beyond the leading tab <\t> character.
It helps Kconfig parsers to read file without error.

Signed-off-by: Prasad Pandit <pjp@fedoraproject.org>
Link: https://lore.kernel.org/r/20240412055221.69411-2-ppandit@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-29 11:15:34 +02:00
Krzysztof Kozlowski
2db26427d7 eeprom: 93xx46: drop unneeded MODULE_ALIAS
The ID table already has respective entry and MODULE_DEVICE_TABLE and
creates proper alias for SPI driver.  Having another MODULE_ALIAS causes
the alias to be duplicated.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20240414154957.127113-3-krzk@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-29 11:14:00 +02:00
Krzysztof Kozlowski
7c28f964b7 eeprom: at25: drop unneeded MODULE_ALIAS
The ID table already has respective entry and MODULE_DEVICE_TABLE and
creates proper alias for SPI driver.  Having another MODULE_ALIAS causes
the alias to be duplicated.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20240414154957.127113-1-krzk@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-29 11:14:00 +02:00
Uwe Kleine-König
a2c72ed78a mcb: lpc: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.

To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
.remove_new(), which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Johannes Thumshirn <jth@kernel.org>
Link: https://lore.kernel.org/r/cd04e21a7e2646bfe44b2304eea2b3fd0ee84018.1714379722.git.jth@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-29 10:53:31 +02:00
Greg Kroah-Hartman
0b6896838d 1-Wire bus drivers for v6.10
Few cleanups of 1-Wire GPIO driver to make it more robust and easier to
 read.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmYqBMMQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD1/XTEACXCsoT7KcxsP683ogWBUWpT2e8Rmt85CbQ
 We1InyxJ2kB+Vm5X9QWLLd3nMZQg7G7PX6Hdu9XOWgBXkiMu7eSN9Go7VtLy+rDK
 DNOU+S46dNEZJNYvEHp3bq9YvaMC2iApxmJpwOPJucQ1VDRCzHsNt4Ax+idq3KsK
 yzBO4X3ndRFnJDJnzPDy+RLBtdCNfWYpC5ENkzrZZc+Qu95YbgoHBuuuFf5eyW/I
 I7+VeAJDe1Ecu/MIKqyZBfF6JJ9DepWUcMiwqaT5MRiTLpvX55eYfQxPlwx4uYL9
 BSeJ1apB3mueKWrtyB8jPIEX2+BC0MP+Qij5HzZf+AQBRdEt0OY6/MxSc5M54teo
 UI3Ay09iUyxZWQaUTzfJLdyDFwPt57oBYJuf+d++/uUbZeAKBF3cRqaEU2QJmqfE
 /flJHqs+broJjW/zfA460NbiAjId6I5aVq1yYrvYEfpDtCHqYEyzdrPYUSwb9P7F
 7IG9Az5Op1VChwrcEE56LWJ6CZ5KBn1urS6TuF5uaK/Y9tfod9nej+tjDTLPkKQv
 YUcU5usMDzeYEn3xNkJu5F3s9AoSetQFp//clTdABflo8mNmHQMev6Tti37BfBFA
 SSTq7gxTie118u2qE37sKOLsRb0AStGu54iKFYLjNBt6ZzW/q8SLevsuKtNb7dwL
 3JEqWSaIUg==
 =3Qrx
 -----END PGP SIGNATURE-----

Merge tag 'w1-drv-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-w1 into char-misc-next

Krzysztof writes:

1-Wire bus drivers for v6.10

Few cleanups of 1-Wire GPIO driver to make it more robust and easier to
read.

* tag 'w1-drv-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-w1:
  w1: gpio: Don't use "proxy" headers
  w1: gpio: Remove duplicate NULL checks
  w1: gpio: Use sizeof(*pointer) instead of sizeof(type)
  w1: gpio: Switch to use dev_err_probe()
  w1: gpio: Make use of device properties
2024-04-29 10:52:15 +02:00
Remington Brasga
2d7e8a64a1 coresight: Docs/ABI/testing/sysfs-bus-coresight-devices: Fix spelling errors
Fix spelling and gramatical errors

Signed-off-by: Remington Brasga <rbrasga@uci.edu>
[ Adjusted title ]
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240428011401.1080-1-rbrasga@uci.edu
2024-04-29 09:37:05 +01:00
Qiang Yu
48f98496b1 bus: mhi: host: pci_generic: Add generic edl_trigger to allow devices to enter EDL mode
Some of the MHI modems like SDX65 based ones are capable of entering the
EDL mode as per the standard triggering mechanism defined in the MHI spec
v1.2. So let's add a common mhi_pci_generic_edl_trigger() function that
triggers the EDL mode in the device when user writes to the
/sys/bus/mhi/devices/.../trigger_edl file.

As per the spec, the EDL mode can be triggered by writing a cookie to the
EDL doorbell register and then resetting the device.

Devices supporting this standard way of entering EDL mode can set the
mhi_pci_dev_info::edl_trigger flag.

Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/1713928915-18229-4-git-send-email-quic_qianyu@quicinc.com
[mani: reworded commit message]
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
2024-04-25 20:25:45 +05:30
Qiang Yu
553f94fc76 bus: mhi: host: Add a new API for getting channel doorbell offset
Some controllers may want to access a specific doorbell register. Hence add
a new API that reads the CHDBOFF register and returns the offset of the
doorbell registers from MMIO base, so that the controller can calculate the
address of the specific doorbell register by adding the register offset
with doorbell offset and MMIO base address.

Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Link: https://lore.kernel.org/r/1713928915-18229-3-git-send-email-quic_qianyu@quicinc.com
[mani: reworded commit message and Kdoc]
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
2024-04-25 20:16:43 +05:30
Qiang Yu
17553ba8e1 bus: mhi: host: Add sysfs entry to force device to enter EDL
Add sysfs entry to allow users of MHI bus to force device to enter EDL
(Emergency Download) mode to download the device firmware. Since there is
no guarantee that all the devices will support EDL mode, the sysfs entry
is kept as an optional one and will appear only for the supported devices.

Controllers supporting the EDL mode are expected to provide edl_trigger()
callback that puts the device into EDL mode.

Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/1713928915-18229-2-git-send-email-quic_qianyu@quicinc.com
[mani: fixed the kernel version and reworded the commit message]
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
2024-04-25 20:16:42 +05:30
Uwe Kleine-König
ba8c06fe7e coresight: tpiu: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.

To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
.remove_new(), which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.

Fixes: 3d83d4d4904a ("coresight: tpiu: Move ACPI support from AMBA driver to platform driver")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/ad5e0d3ec081444a5ad04a7be277dde3afcb696b.1713858615.git.u.kleine-koenig@pengutronix.de
2024-04-25 10:07:16 +01:00
Uwe Kleine-König
38a38da447 coresight: tmc: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.

To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
.remove_new(), which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.

Fixes: 70750e257aab ("coresight: tmc: Move ACPI support from AMBA driver to platform driver")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/3cf26d85a8d45f0efb07e07f3307a1b435ebf61e.1713858615.git.u.kleine-koenig@pengutronix.de
2024-04-25 10:07:16 +01:00
Uwe Kleine-König
981d5f92ca coresight: stm: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.

To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
.remove_new(), which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.

Fixes: 057256aaacc8 ("coresight: stm: Move ACPI support from AMBA driver to platform driver")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/3fefa60744fc68c9c4b40aeb69e34cda22582c4b.1713858615.git.u.kleine-koenig@pengutronix.de
2024-04-25 10:07:16 +01:00
Uwe Kleine-König
971c2b107b coresight: debug: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.

To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
.remove_new(), which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.

Fixes: 965edae4e6a2 ("coresight: debug: Move ACPI support from AMBA driver to platform driver")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/fb3d7db82a2490ace41c51b16ad17ef61549e2f6.1713858615.git.u.kleine-koenig@pengutronix.de
2024-04-25 10:07:16 +01:00
Uwe Kleine-König
c01cb41910 coresight: catu: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.

To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
.remove_new(), which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.

Fixes: 23567323857d ("coresight: catu: Move ACPI support from AMBA driver to platform driver")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/16a7123efa7d97ae62a02ccbf9b39d146b066860.1713858615.git.u.kleine-koenig@pengutronix.de
2024-04-25 10:07:16 +01:00
Jiapeng Chong
e8293395b9 coresight: Remove duplicate linux/amba/bus.h header
./include/linux/coresight.h: linux/amba/bus.h is included more than once.

Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=8869
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Reviewed-by: James Clark <james.clark@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240424022420.58516-1-jiapeng.chong@linux.alibaba.com
2024-04-24 14:22:41 +01:00
Jiapeng Chong
002026272b coresight: stm: Remove duplicate linux/acpi.h header
./drivers/hwtracing/coresight/coresight-stm.c: linux/acpi.h is included more than once.

Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=8871
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Reviewed-by: James Clark <james.clark@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20240424023605.90489-1-jiapeng.chong@linux.alibaba.com
2024-04-24 14:21:29 +01:00
Kunwu Chan
e22810ab3f mei: bus: constify the struct mei_cl_bus_type usage
Now that the driver core can properly handle constant struct bus_type,
move the mei_cl_bus_type variable to be a constant structure as well,
placing it into read-only memory which can not be modified at runtime.

Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
Link: https://lore.kernel.org/r/20240423024133.1890455-1-chentao@kylinos.cn
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-23 21:33:16 -07:00
Greg Kroah-Hartman
84e79a7f63 Update peci-next for v6.10-rc1
- Move peci_bus_type, peci_controller_type and peci_device_type to be
   constant.
 -----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCAA4FiEEVeIYQcCloMPRsCC93RgStozwYHYFAmYilsMaHGl3b25hLndp
 bmlhcnNrYUBpbnRlbC5jb20ACgkQ3RgStozwYHZYOBAApNWoayMbJZssJEc0MOvJ
 49tiiWJAFhc96pN+r+mv/uyKV/MVEd9Ti67hZL7ATgeyd55RC/c7h30JFlLEu/G5
 N3jM6DZaOAyMHHqhxa8mnQzsCIGem/wviLPozvACa2Ju/6nj9eV1pqXZ6Nh2NV+7
 5ONBEAwlctjcwCIJAd4qrodDTokjYo0sM44FrtvLCr/GXxfZD1v1TYmvX5BtRwP6
 LRtmqqCyggV3AGUNsPMh3xYsttVDzZEeTj7FRDgSsFgRjOaEBeisToVPKsExjTxt
 zABlz8SQ9OqGYXWNQpKbc81Ray5n88e4Jcfm0k/uiC1/bO1qW9vO+C6krPmLCieN
 ApMOPqNfmraELh9zKMS3bPzlyefUgVDS476XlURK+SFi7s2442LzQnDQ7GkxaxPk
 f8+onW0o1nBiufDvaSWv0uMYhdvKofuYNPEz0SBZvDi5AS3tOuinp6DvIx8DMWCp
 7Xh60g0cdqD21ix18XmyHLwIoRTEWwltI3U/HW/p7TNm9KmEGDjFZkM/f8S5RDs6
 +qpVEf6aRWDypMC5TZ2P02ApErl75Ws6ndSwnYx0ivxkCKix2MKL8dHaczD2rkuH
 C4TdAehIRMydB2i3gBmrVRRjTQgYgF687ims1H0P9V92VI/tYwPrlvyHuIw6q6mY
 gnxjndgsl8q/RkVVc+brL/k=
 =jQzZ
 -----END PGP SIGNATURE-----

Merge tag 'peci-next-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/iwi/linux into char-misc-next

Iwona writes:

Update peci-next for v6.10-rc1

- Move peci_bus_type, peci_controller_type and peci_device_type to be
  constant.
2024-04-23 21:31:45 -07:00
Greg Kroah-Hartman
7732ce06ed IIO: 1st set of new device support, features and cleanup for 6.10
The Analog Device team (Paul Cercueil and Nuno Sa) have been working on
 improving high speed device handling. They have had some support in their
 own tree for many years, so it is great to see them bring it to upstream.
 Some of that is seen here, with the first output device using the
 IIO dmaengine infrastructure and a new DAC backend FPGA IP driver.
 This makes use of a new set of interfaces to allow backend and
 front end driver communication in a fashion that in theory at least
 allows for a single driver for a given ADC / DAC independent of
 the IP to which is being used to deal with the data bus and DMA aspects
 of working with these devices. It is early days for this new
 generic way of handling split devices, but as it's kernel internals only
 we can merrily change anything about it as a wider diversity of devices
 show up and we get a better feel for what works.
 
 Alongside the usual set of new drivers and features we have
 the automatic cleanup of fwnode_handle_put() which didn't quite make
 it in last cycle. The equivalent DT version was merged by Rob Herring
 via the DT binding tree and one patch using that in IIO can also be
 found in this pull request. Rob has been making extensive use of that
 infrastructure in the DT core which is good to see and provides more
 evidence this basic approach is useful.
 
 In some cases, the IIO driver was converted over from DT only to
 using the generic firmware description handling of property.h
 including using the new macros. The general preference for IIO
 is to use this more generic handling where possible - a bunch of other
 drivers have been converted this cycle as well.
 
 New device support
 ==================
 
 adi,ad7173
 - New driver supporting AD7172-2, AD7172-4 AD7173-9, AD7175-2, AD7175-8,
   AD7176-2 and AD7177-2 ADCs.
 - Follow up fix for an accidental use of logic not instead of bitwise.
 
 adi,ad7944
 - New driver supporting AD7944, AD7985 and AD7986 pin compatible ADCs.
 - Later patch added use of new spi_optimize_message() to reduce overheads
   of setting up a reused message.
 - Additional changes later in series reduced code duplication.
 
 adi,ad9739a RF DAC
 - New driver for this 14-bit 2.5 GSPS DAC via an LVDS interface.
 
 adi,axi-dac
 - Support for this FPGA IP used to send data to high performance DACs over
   an interface such as JESD204B/C or parallel interfaces.  Used in
   conjunction with a DAC driver. The initial user is the ad9739a.
   The dmaengine-buffer needed various changes to make it bidirectional.
 
 avago,apds9306
 - New driver for this ambient light sensor.
 - Fix much later in this pull for an off by 1 error.
 
 New device IDs
 ==============
 
 For these at most an ID and a instance of chip specific data was needed.
 Always nice to see manufacturers sticking to an existing software interface
 for new parts.
 
 allwinner,sun20i
 - Add support for h616.
 invensense,mpu6050
 - Add support for ICM42688
 maxim,max30102
 - Add compatible for MAX30101
 ti,dac5571
 - Add compatible for DAC081C081
 
 General
 =======
 
 fwnode_handle
 - Support for cleanup.h based __free(fwnode_handle)
 - Loop macro using this for looping over child nodes without needing to
   call fwnode_handle_put() in ever early exit from the loop.
 - Used in:
   * adi,ad3552r
   * adi,ad4130
   * adi,ad5770r
   * adi,ad74413r
   * adi,ad7173
   * adi,adfm2000
   * linear,ltc2688
   * linear,ltc2983
   * maxim,max11410
   * microchip,pac1934
   * qcom,spmi-adc
   * renesas,rz2gl
   * st,ab8500
   * st,stm32 (Fix for failure to set return value precedes this patch,
     providing an example of why enabling direct returns makes bugs
     less likely)
 - Conversions to fwnode also using the cleanup logic
   * adi,ad7124
   * adi,ad7292
   * freescale,fsl-imx25-gcq
 
 - Other conversions to fwnode where the new cleanup handling isn't useful
   * adi,ad7192
   * avia,hx711
   * freescale,mma8452
   * nxp,fxls8962af
   * st,spear
   * ti,twl4030
 
 Features
 ========
 
 adi,adxl345
 - Support SPI_3WIRE mode.
 
 adi,ad9944
 - Support 3-wire mode, note this isn't normal 3-wire SPI (unlike the
   adxl345 change above), but rather   a wiring scheme where the SPI
   chip select is used to trigger conversions rather than using a
   separate pin.
 - Add some device specific documentation, mostly around the various wiring
   schemes.
 
 invensense,mpu6050
 - Add Wake on Motion support as an IIO event and as a wake-up source.
 
 linear,ltc2983
 - Add vdd-supply.
 
 ti,hdc3020
 - Add power management using trigger on demand mode and adding suspend and
   resume handling.
 - Use reset GPIO if available.
 
 Cleanup and fixes
 ================
 
 iio core
 - Use the various autocleanup and lock guards from cleanup.h to simplify
   the IIO core.
 - Don't set the pointer used for iio_priv() if it is zero sized as that
   points beyond the end of the allocation. No driver actually uses it
   in that case but good to clean this up.
 
 various drivers
 - Drop unnecessary casts of other pointer types to void *
 
 docs
 - Add missing ABI entry for in_temp_input.
 
 adi,adx345
 - General cleanup prior to adding spi-3wire mode.
 
 adi,axi-adc
 - Be more flexible and allow minor version changes as these are expected
   to be backwards compatible.
 
 avago,apds9300/9600
 - Merge near identical bindings. The drivers are quite different, but
   the bindings can be shared. The apds9306 binding introduced in this
   series uses this shared binding doc as well.
 - Add missing vdd-supply
 - Update binding to use IRQ_TYPE_LEVEL_LOW instead of 8.
 
 bosch,bmp280
 - Organize headers
 
 freescale,fxl-imx25-gcq
 - Use devm_ for remaining probe() time setup allowing dropping
   of specific error handling and remove() functions.
 
 infineon,dps310
 - Fix handling of negative temperatures
 - Bring style of other similar calls inline with the form needed
   for temperatures
 - Ensure error handling of regmap calls is consistent within the driver.
 - Simplify scale reading logic.
 
 invensense,mpu6050
 - Flip logic in binding to exclude devices without i2c-gate instead
   of opting in.  The list is expected to be much shorter as all recent
   devices support this feature.
 
 honeywell,hsc030pa
 - Use spi_read() instead of opening coding.
 
 renesas,rcar
 - Use device_for_each_child_of_node_scoped() to remove need to manually
   release. Left over from series the rest of which went in during 6.9.
 
 st,ab8500
 - Fix naming of function parameters in kernel-doc
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAmYmqVoRHGppYzIzQGtl
 cm5lbC5vcmcACgkQVIU0mcT0FogSaw/6A+8IHq9ox5wo9g2UUajFVXi6ToSs3DTv
 Dwi5OsPmuoimj8DDyxz6xuq/F6zbo+tbkVpbz7eu4L8/QNk07wgwyQrp7Z5EhVgx
 dAHxWOCrhKbkGzvcfyy+Epzvc1ETplfIZ6KdxgcB+k092jtQDknp9Os7NvAWYQp4
 7zFM1kptUe/Bnwe8oaTOfjtvl3kPTH0++yANE30r76PCD0Ra5v2MKHRNhtx3q0Et
 D02MDQWjvjT3+HbfT7ft8CtMAFqlj5t8KneS9KUlXsifupLnQrZIx3rjL7ooACIb
 aJVb0Vj3nQMlVlijH38jbxPI6z5OX230ySfX1mQXEzAkBouaWM6k9xcSzMC/ed/E
 OeiG9b/a0blGkq15bVA/LHh/uQ8MjBYa0SfdbAsvy/I6O73UaEHtzDR4Wua2grCr
 OzLVKvl9032+b9XUge500gH2Veb9OEnN0viRm6ApD+Ew9yRCA2og0OypDAVqvULM
 T/+lTu7MeYAe1K3wGu1PekeC3LK0lX3nGEX0vBybBh6gFUMOHaveoQ0qjy0DLvHn
 3Ua1ZlqZbT3pYe+2oHmV+ErRb7a7Fz5F2SkoqtHjtL6eF8/zHlywNb/l0Yp9FDgB
 W+yd+VrJC/XZOOFv6mcWOvTCK1VtY65cQRPdGbR2KHmIdtUpI0A4NGZ4rdrtD9iS
 TVtGiyb3hos=
 =dr8B
 -----END PGP SIGNATURE-----

Merge tag 'iio-for-6.10a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next

Jonathan writes:

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

The Analog Device team (Paul Cercueil and Nuno Sa) have been working on
improving high speed device handling. They have had some support in their
own tree for many years, so it is great to see them bring it to upstream.
Some of that is seen here, with the first output device using the
IIO dmaengine infrastructure and a new DAC backend FPGA IP driver.
This makes use of a new set of interfaces to allow backend and
front end driver communication in a fashion that in theory at least
allows for a single driver for a given ADC / DAC independent of
the IP to which is being used to deal with the data bus and DMA aspects
of working with these devices. It is early days for this new
generic way of handling split devices, but as it's kernel internals only
we can merrily change anything about it as a wider diversity of devices
show up and we get a better feel for what works.

Alongside the usual set of new drivers and features we have
the automatic cleanup of fwnode_handle_put() which didn't quite make
it in last cycle. The equivalent DT version was merged by Rob Herring
via the DT binding tree and one patch using that in IIO can also be
found in this pull request. Rob has been making extensive use of that
infrastructure in the DT core which is good to see and provides more
evidence this basic approach is useful.

In some cases, the IIO driver was converted over from DT only to
using the generic firmware description handling of property.h
including using the new macros. The general preference for IIO
is to use this more generic handling where possible - a bunch of other
drivers have been converted this cycle as well.

New device support
==================

adi,ad7173
- New driver supporting AD7172-2, AD7172-4 AD7173-9, AD7175-2, AD7175-8,
  AD7176-2 and AD7177-2 ADCs.
- Follow up fix for an accidental use of logic not instead of bitwise.

adi,ad7944
- New driver supporting AD7944, AD7985 and AD7986 pin compatible ADCs.
- Later patch added use of new spi_optimize_message() to reduce overheads
  of setting up a reused message.
- Additional changes later in series reduced code duplication.

adi,ad9739a RF DAC
- New driver for this 14-bit 2.5 GSPS DAC via an LVDS interface.

adi,axi-dac
- Support for this FPGA IP used to send data to high performance DACs over
  an interface such as JESD204B/C or parallel interfaces.  Used in
  conjunction with a DAC driver. The initial user is the ad9739a.
  The dmaengine-buffer needed various changes to make it bidirectional.

avago,apds9306
- New driver for this ambient light sensor.
- Fix much later in this pull for an off by 1 error.

New device IDs
==============

For these at most an ID and a instance of chip specific data was needed.
Always nice to see manufacturers sticking to an existing software interface
for new parts.

allwinner,sun20i
- Add support for h616.
invensense,mpu6050
- Add support for ICM42688
maxim,max30102
- Add compatible for MAX30101
ti,dac5571
- Add compatible for DAC081C081

General
=======

fwnode_handle
- Support for cleanup.h based __free(fwnode_handle)
- Loop macro using this for looping over child nodes without needing to
  call fwnode_handle_put() in ever early exit from the loop.
- Used in:
  * adi,ad3552r
  * adi,ad4130
  * adi,ad5770r
  * adi,ad74413r
  * adi,ad7173
  * adi,adfm2000
  * linear,ltc2688
  * linear,ltc2983
  * maxim,max11410
  * microchip,pac1934
  * qcom,spmi-adc
  * renesas,rz2gl
  * st,ab8500
  * st,stm32 (Fix for failure to set return value precedes this patch,
    providing an example of why enabling direct returns makes bugs
    less likely)
- Conversions to fwnode also using the cleanup logic
  * adi,ad7124
  * adi,ad7292
  * freescale,fsl-imx25-gcq

- Other conversions to fwnode where the new cleanup handling isn't useful
  * adi,ad7192
  * avia,hx711
  * freescale,mma8452
  * nxp,fxls8962af
  * st,spear
  * ti,twl4030

Features
========

adi,adxl345
- Support SPI_3WIRE mode.

adi,ad9944
- Support 3-wire mode, note this isn't normal 3-wire SPI (unlike the
  adxl345 change above), but rather   a wiring scheme where the SPI
  chip select is used to trigger conversions rather than using a
  separate pin.
- Add some device specific documentation, mostly around the various wiring
  schemes.

invensense,mpu6050
- Add Wake on Motion support as an IIO event and as a wake-up source.

linear,ltc2983
- Add vdd-supply.

ti,hdc3020
- Add power management using trigger on demand mode and adding suspend and
  resume handling.
- Use reset GPIO if available.

Cleanup and fixes
================

iio core
- Use the various autocleanup and lock guards from cleanup.h to simplify
  the IIO core.
- Don't set the pointer used for iio_priv() if it is zero sized as that
  points beyond the end of the allocation. No driver actually uses it
  in that case but good to clean this up.

various drivers
- Drop unnecessary casts of other pointer types to void *

docs
- Add missing ABI entry for in_temp_input.

adi,adx345
- General cleanup prior to adding spi-3wire mode.

adi,axi-adc
- Be more flexible and allow minor version changes as these are expected
  to be backwards compatible.

avago,apds9300/9600
- Merge near identical bindings. The drivers are quite different, but
  the bindings can be shared. The apds9306 binding introduced in this
  series uses this shared binding doc as well.
- Add missing vdd-supply
- Update binding to use IRQ_TYPE_LEVEL_LOW instead of 8.

bosch,bmp280
- Organize headers

freescale,fxl-imx25-gcq
- Use devm_ for remaining probe() time setup allowing dropping
  of specific error handling and remove() functions.

infineon,dps310
- Fix handling of negative temperatures
- Bring style of other similar calls inline with the form needed
  for temperatures
- Ensure error handling of regmap calls is consistent within the driver.
- Simplify scale reading logic.

invensense,mpu6050
- Flip logic in binding to exclude devices without i2c-gate instead
  of opting in.  The list is expected to be much shorter as all recent
  devices support this feature.

honeywell,hsc030pa
- Use spi_read() instead of opening coding.

renesas,rcar
- Use device_for_each_child_of_node_scoped() to remove need to manually
  release. Left over from series the rest of which went in during 6.9.

st,ab8500
- Fix naming of function parameters in kernel-doc

* tag 'iio-for-6.10a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (108 commits)
  iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped() to simplify error paths.
  iio: adc: adi-axi-adc: only error out in major version mismatch
  iio: dac: support the ad9739a RF DAC
  iio: dac: add support for AXI DAC IP core
  iio: backend: add new functionality
  dt-bindings: iio: dac: add docs for AD9739A
  dt-bindings: iio: dac: add docs for AXI DAC IP
  iio: buffer-dmaengine: Enable write support
  iio: buffer-dmaengine: Support specifying buffer direction
  iio: buffer-dma: Enable buffer write support
  iio: buffer-dma: Rename iio_dma_buffer_data_available()
  iio: buffer-dma: add iio_dmaengine_buffer_setup()
  iio: pressure: dps310: simplify scale factor reading
  iio: pressure: dps310: consistently check return value of `regmap_read`
  iio: pressure: dps310: introduce consistent error handling
  iio: pressure: dps310: support negative temperature values
  dt-bindings: iio: adc: Add GPADC for Allwinner H616
  iio: dac: ad5755: make use of of_device_id table
  iio: imu: inv_icm42600: add support of ICM-42688-P
  dt-bindings: iio: imu: add icm42688 inside inv_icm42600
  ...
2024-04-23 20:19:37 -07:00
Greg Kroah-Hartman
df1aa5b0d1 Merge 6.9-rc5 into char-misc-next
We need the char/misc fixes in here as well to work off of.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-23 13:16:03 +02:00
Marco Pagani
b7c0e1ecee
fpga: region: add owner module and take its refcount
The current implementation of the fpga region assumes that the low-level
module registers a driver for the parent device and uses its owner pointer
to take the module's refcount. This approach is problematic since it can
lead to a null pointer dereference while attempting to get the region
during programming if the parent device does not have a driver.

To address this problem, add a module owner pointer to the fpga_region
struct and use it to take the module's refcount. Modify the functions for
registering a region to take an additional owner module parameter and
rename them to avoid conflicts. Use the old function names for helper
macros that automatically set the module that registers the region as the
owner. This ensures compatibility with existing low-level control modules
and reduces the chances of registering a region without setting the owner.

Also, update the documentation to keep it consistent with the new interface
for registering an fpga region.

Fixes: 0fa20cdfcc1f ("fpga: fpga-region: device tree control for FPGA")
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Suggested-by: Xu Yilun <yilun.xu@intel.com>
Reviewed-by: Russ Weight <russ.weight@linux.dev>
Signed-off-by: Marco Pagani <marpagan@redhat.com>
Acked-by: Xu Yilun <yilun.xu@intel.com>
Link: https://lore.kernel.org/r/20240419083601.77403-1-marpagan@redhat.com
Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com>
2024-04-23 15:37:20 +08:00
Peter Colberg
dbca8048b3
fpga: dfl: remove unused member pdata from struct dfl_{afu,fme}
The member pdata in struct dfl_{afu,fme} is set in function
{afu,fme}_dev_init(), respectively, but never used.

Fixes: 857a26222ff7 ("fpga: dfl: afu: add afu sub feature support")
Fixes: 29de76240e86 ("fpga: dfl: fme: add partial reconfiguration sub feature support")
Signed-off-by: Peter Colberg <peter.colberg@intel.com>
Reviewed-by: Matthew Gerlach <matthew.gerlach@linux.intel.com>
Acked-by: Xu Yilun <yilun.xu@intel.com>
Link: https://lore.kernel.org/r/20240415235937.3121-1-peter.colberg@intel.com
Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com>
2024-04-23 15:36:33 +08:00
Peter Colberg
7c2dafa60e
fpga: dfl: remove unused function is_dfl_feature_present()
The function is_dfl_feature_present() was added but never used.

Fixes: 5b57d02a2f94 ("fpga: dfl: add feature device infrastructure")
Signed-off-by: Peter Colberg <peter.colberg@intel.com>
Reviewed-by: Matthew Gerlach <matthew.gerlach@linux.intel.com>
Acked-by: Xu Yilun <yilun.xu@intel.com>
Link: https://lore.kernel.org/r/20240415235743.3045-1-peter.colberg@intel.com
Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com>
2024-04-23 15:36:33 +08:00
Andy Shevchenko
1eb3816c27
fpga: ice40-spi: Don't use "proxy" headers
Update header inclusions to follow IWYU (Include What You Use)
principle.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Xu Yilun <yilun.xu@intel.com>
Link: https://lore.kernel.org/r/20240415142428.853812-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com>
2024-04-23 15:36:32 +08:00
Andy Shevchenko
89d5d9e950 counter: Don't use "proxy" headers
Update header inclusions to follow IWYU (Include What You Use)
principle.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240422144850.2031076-1-andriy.shevchenko@linux.intel.com
Signed-off-by: William Breathitt Gray <wbg@kernel.org>
2024-04-23 09:03:37 +09:00
Suzuki K Poulose
d6fc00d0f6 coresight: etm4x: Fix access to resource selector registers
Resource selector pair 0 is always implemented and reserved. We must not
touch it, even during save/restore for CPU Idle. Rest of the driver is
well behaved. Fix the offending ones.

Reported-by: Yabin Cui <yabinc@google.com>
Fixes: f188b5e76aae ("coresight: etm4x: Save/restore state across CPU low power states")
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Tested-by: Yabin Cui <yabinc@google.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Link: https://lore.kernel.org/r/20240412142702.2882478-5-suzuki.poulose@arm.com
2024-04-22 11:23:53 +01:00
Suzuki K Poulose
46bf8d7cd8 coresight: etm4x: Safe access for TRCQCLTR
ETM4x implements TRCQCLTR only when the Q elements are supported
and the Q element filtering is supported (TRCIDR0.QFILT). Access
to the register otherwise could be fatal. Fix this by tracking the
availability, like the others.

Fixes: f188b5e76aae ("coresight: etm4x: Save/restore state across CPU low power states")
Reported-by: Yabin Cui <yabinc@google.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Tested-by: Yabin Cui <yabinc@google.com>
Link: https://lore.kernel.org/r/20240412142702.2882478-4-suzuki.poulose@arm.com
2024-04-22 11:23:51 +01:00
Suzuki K Poulose
5eb3a0c2c5 coresight: etm4x: Do not save/restore Data trace control registers
ETM4x doesn't support Data trace on A class CPUs. As such do not access the
Data trace control registers during CPU idle. This could cause problems for
ETE. While at it, remove all references to the Data trace control registers.

Fixes: f188b5e76aae ("coresight: etm4x: Save/restore state across CPU low power states")
Reported-by: Yabin Cui <yabinc@google.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Tested-by: Yabin Cui <yabinc@google.com>
Link: https://lore.kernel.org/r/20240412142702.2882478-3-suzuki.poulose@arm.com
2024-04-22 11:23:49 +01:00
Suzuki K Poulose
1e7ba33fa5 coresight: etm4x: Do not hardcode IOMEM access for register restore
When we restore the register state for ETM4x, while coming back
from CPU idle, we hardcode IOMEM access. This is wrong and could
blow up for an ETM with system instructions access (and for ETE).

Fixes: f5bd523690d2 ("coresight: etm4x: Convert all register accesses")
Reported-by: Yabin Cui <yabinc@google.com>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Tested-by: Yabin Cui <yabinc@google.com>
Link: https://lore.kernel.org/r/20240412142702.2882478-2-suzuki.poulose@arm.com
2024-04-22 11:23:47 +01:00
Linus Torvalds
ed30a4a51b Linux 6.9-rc5 v6.9-rc5 2024-04-21 12:35:54 -07:00
Lorenzo Bertin Salvador
b80ad8e3cd iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped() to simplify error paths.
This loop definition automatically releases the handle on early exit
reducing the chance of bugs that cause resource leaks.

Co-developed-by: Briza Mel Dias de Sousa <brizamel.dias@usp.br>
Signed-off-by: Briza Mel Dias de Sousa <brizamel.dias@usp.br>
Signed-off-by: Lorenzo Bertin Salvador <lorenzobs@usp.br>
Link: https://lore.kernel.org/r/20240420182744.153184-2-lorenzobs@usp.br
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-04-21 18:42:33 +01:00
Linus Torvalds
48cf398f15 Char/Misc driver fixes for 6.9-rc5
Here are some small char/misc and other driver fixes for 6.9-rc5.
 Included in here are the following:
   - binder driver fix for reported problem
   - speakup crash fix
   - mei driver fixes for reported problems
   - comdei driver fix
   - interconnect driver fixes
   - rtsx driver fix
   - peci.h kernel doc fix
 
 All of these have been in linux-next for over a week with no reported
 problems.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCZiT2+g8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ylExgCfdEFb54LOH10I3hstLdzKEYQlIdUAoK8fGerp
 o29X7GJ3kmKh7d2tIS1m
 =iXIs
 -----END PGP SIGNATURE-----

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

Pull char / misc driver fixes from Greg KH:
 "Here are some small char/misc and other driver fixes for 6.9-rc5.
  Included in here are the following:

   - binder driver fix for reported problem

   - speakup crash fix

   - mei driver fixes for reported problems

   - comdei driver fix

   - interconnect driver fixes

   - rtsx driver fix

   - peci.h kernel doc fix

  All of these have been in linux-next for over a week with no reported
  problems"

* tag 'char-misc-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
  peci: linux/peci.h: fix Excess kernel-doc description warning
  binder: check offset alignment in binder_get_object()
  comedi: vmk80xx: fix incomplete endpoint checking
  mei: vsc: Unregister interrupt handler for system suspend
  Revert "mei: vsc: Call wake_up() in the threaded IRQ handler"
  misc: rtsx: Fix rts5264 driver status incorrect when card removed
  mei: me: disable RPL-S on SPS and IGN firmwares
  speakup: Avoid crash on very long word
  interconnect: Don't access req_list while it's being manipulated
  interconnect: qcom: x1e80100: Remove inexistent ACV_PERF BCM
2024-04-21 10:32:58 -07:00
Linus Torvalds
4e90ba757b Kernfs bugfix and documentation update for 6.9-rc5
Here are 2 changes for 6.9-rc5 that deal with "driver core" stuff, that
 do the following:
   - sysfs reference leak fix
   - embargoed-hardware-issues.rst update for Power
 
 Both of these have been in linux-next for over a week with no reported
 issues.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCZiT4Dw8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ymFwQCfR1OysT/aO16NUYBSaGd7Tx4/3dIAn3YDU7O7
 BvGCYc/Nv7S7WdmA5KKf
 =RuJo
 -----END PGP SIGNATURE-----

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

Pull kernfs bugfix and documentation update from Greg KH:
 "Here are two changes for 6.9-rc5 that deal with "driver core" stuff,
  that do the following:

   - sysfs reference leak fix

   - embargoed-hardware-issues.rst update for Power

  Both of these have been in linux-next for over a week with no reported
  issues"

* tag 'driver-core-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
  Documentation: embargoed-hardware-issues.rst: Add myself for Power
  fs: sysfs: Fix reference leak in sysfs_break_active_protection()
2024-04-21 10:30:21 -07:00