mbox series

[V7,00/11] coresight: Move remaining AMBA ACPI devices into platform driver

Message ID 20240314055843.2625883-1-anshuman.khandual@arm.com (mailing list archive)
Headers show
Series coresight: Move remaining AMBA ACPI devices into platform driver | expand

Message

Anshuman Khandual March 14, 2024, 5:58 a.m. UTC
This moves remaining AMBA ACPI devices into respective platform drivers for
enabling ACPI based power management support. This series applies on latest
coresight next. This series has been built, and boot tested on a DT based
(RB5) and ACPI supported coresight platform (N1SDP).

https://git.gitlab.arm.com/linux-arm/linux-anshuman.git (amba_other_acpi_migration_v7)

Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: James Clark <james.clark@arm.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: linux-acpi@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: coresight@lists.linaro.org
Cc: linux-stm32@st-md-mailman.stormreply.com

Changes in V7:

- Dropped reduntant 'drvdata' check in following functions
  replicator_platform_remove()
  funnel_platform_remove()
  tpiu_platform_remove()
  tmc_platform_remove()
  catu_platform_remove()
  catu_platform_probe()
  debug_platform_remove()
  debug_platform_probe()
- Dropped struct resource check before devm_ioremap_resource()
- Sorted the headers in alphabetic order

Changes in V6:

https://lore.kernel.org/all/20240312102318.2285165-1-anshuman.khandual@arm.com/

- Dropped Jame's RB tag from [PATCH 3/11]
- Added clk_disable_unprepare() for pclk in replicator_probe() error path
- Added clk_disable_unprepare() for pclk in funnel_probe() error path
- Added clk_put() for pclk in catu_platform_probe() error path
- Added clk_put() for pclk in debug_platform_probe() error path
- Added WARN_ON(!drvdata) check in replicator_platform_remove()
- Added WARN_ON(!drvdata) check in funnel_platform_remove()
- Added WARN_ON(!drvdata) check in catu_platform_remove()
- Added WARN_ON(!drvdata) check in tpiu_platform_remove()
- Added WARN_ON(!drvdata) check in tmc_platform_remove()
- Added WARN_ON(!drvdata) check in stm_platform_remove()
- Added WARN_ON(!drvdata) check in debug_platform_remove()
- Added additional elements for all acpi_device_id[] updates

Changes in V5:

https://lore.kernel.org/all/20240222082142.3663983-1-anshuman.khandual@arm.com/

- Used table->mask to filter out bits from pid in coresight_get_uci_data_from_amba()
- Dropped custom masks such as STM_AMBA_MASK and TMC_AMBA_MASK
- Modified tmc_etr_setup_caps() to accept struct csdev_access argument
- Reverted back tmc_etr_setup_caps() call site position in tmc_probe()
- Changed replicator and funnel devices to use the new helpers earlier in series
- Updated the commit messages regarding xxx_probe() refactoring and renaming

Changes in V4:

https://lore.kernel.org/all/20240123054608.1790189-1-anshuman.khandual@arm.com/

- Fixed PM imbalance in etm4_probe() error path with pm_runtime_disable()
- Restored back the pm_runtime_disable() on platform probe error paths
  in replicator, funnel, catu, tpiu, tmc and stm devices
- Dropped dev_caps argument from __tmc_probe()
- Changed xxxx_platform_remove() for platform_driver->remove_new() callback

Changes in V3:

https://lore.kernel.org/all/20231208053939.42901-1-anshuman.khandual@arm.com/

- Split coresight_init_driver/remove_driver() helpers into a separate patch
- Added 'drvdata->pclk' comments in replicator, funnel, tpiu, tmc, and stm devices
- Updated funnel, and replicator drivers to use these new helpers
- Check for drvdata instead of drvdata->pclk in suspend and resume paths in catu,
  tmc and debug devices
- Added patch to extract device name from AMBA pid based table lookup for stm
- Added patch to extract device properties from AMBA pid based table look for tmc
- Dropped pm_runtime_put() from common __probe() functions
- Handled pm_runtime_put() in AMBA driver in success path
- Handled pm_runtime_put() in platform driver in both success and error paths

Changes in V2:

https://lore.kernel.org/all/20231201062053.1268492-1-anshuman.khandual@arm.com/

- Dropped redundant devm_ioremap_resource() hunk from tmc_platform_probe()
- Defined coresight_[init|remove]_driver() for both AMBA/platform drivers
- Changed catu, tmc, tpiu, stm and debug coresight drivers to use the new
  helpers avoiding build issues arising from module_amba_driver(), and
  module_platform_driver() being on the same file

Changes in V1:

https://lore.kernel.org/all/20231027072943.3418997-1-anshuman.khandual@arm.com/

- Replaced all IS_ERR() instances with IS_ERR_OR_NULL() as per Suzuki

Changes in RFC:

https://lore.kernel.org/all/20230921042040.1334641-1-anshuman.khandual@arm.com/

Anshuman Khandual (11):
  coresight: etm4x: Fix unbalanced pm_runtime_enable()
  coresight: stm: Extract device name from AMBA pid based table lookup
  coresight: tmc: Extract device properties from AMBA pid based table lookup
  coresight: Add helpers registering/removing both AMBA and platform drivers
  coresight: replicator: Move ACPI support from AMBA driver to platform driver
  coresight: funnel: Move ACPI support from AMBA driver to platform driver
  coresight: catu: Move ACPI support from AMBA driver to platform driver
  coresight: tpiu: Move ACPI support from AMBA driver to platform driver
  coresight: tmc: Move ACPI support from AMBA driver to platform driver
  coresight: stm: Move ACPI support from AMBA driver to platform driver
  coresight: debug: Move ACPI support from AMBA driver to platform driver

 drivers/acpi/arm64/amba.c                     |   8 -
 drivers/hwtracing/coresight/coresight-catu.c  | 138 +++++++++++++---
 drivers/hwtracing/coresight/coresight-catu.h  |   1 +
 drivers/hwtracing/coresight/coresight-core.c  |  29 ++++
 .../hwtracing/coresight/coresight-cpu-debug.c | 138 ++++++++++++++--
 .../coresight/coresight-etm4x-core.c          |   3 +
 .../hwtracing/coresight/coresight-funnel.c    |  87 +++++-----
 drivers/hwtracing/coresight/coresight-priv.h  |  10 ++
 .../coresight/coresight-replicator.c          |  82 +++++-----
 drivers/hwtracing/coresight/coresight-stm.c   | 116 +++++++++++--
 .../hwtracing/coresight/coresight-tmc-core.c  | 154 +++++++++++++++---
 drivers/hwtracing/coresight/coresight-tmc.h   |   2 +
 drivers/hwtracing/coresight/coresight-tpiu.c  | 117 +++++++++++--
 include/linux/coresight.h                     |   7 +
 14 files changed, 726 insertions(+), 166 deletions(-)

Comments

Anshuman Khandual April 2, 2024, 4:43 a.m. UTC | #1
On 3/14/24 11:28, Anshuman Khandual wrote:
> This moves remaining AMBA ACPI devices into respective platform drivers for
> enabling ACPI based power management support. This series applies on latest
> coresight next. This series has been built, and boot tested on a DT based
> (RB5) and ACPI supported coresight platform (N1SDP).
> 
> https://git.gitlab.arm.com/linux-arm/linux-anshuman.git (amba_other_acpi_migration_v7)
> 
> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> Cc: Sudeep Holla <sudeep.holla@arm.com>
> Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
> Cc: Mike Leach <mike.leach@linaro.org>
> Cc: James Clark <james.clark@arm.com>
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
> Cc: linux-acpi@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Cc: coresight@lists.linaro.org
> Cc: linux-stm32@st-md-mailman.stormreply.com
> 
> Changes in V7:
> 
> - Dropped reduntant 'drvdata' check in following functions
>   replicator_platform_remove()
>   funnel_platform_remove()
>   tpiu_platform_remove()
>   tmc_platform_remove()
>   catu_platform_remove()
>   catu_platform_probe()
>   debug_platform_remove()
>   debug_platform_probe()
> - Dropped struct resource check before devm_ioremap_resource()
> - Sorted the headers in alphabetic order

Hello Suzuki,

This series still applies cleanly on the latest v6.9-rc2. But please
do let me know if you need this to be posted again.

- Anshuman
Suzuki K Poulose April 22, 2024, 9:59 a.m. UTC | #2
On Thu, 14 Mar 2024 11:28:32 +0530, Anshuman Khandual wrote:
> This moves remaining AMBA ACPI devices into respective platform drivers for
> enabling ACPI based power management support. This series applies on latest
> coresight next. This series has been built, and boot tested on a DT based
> (RB5) and ACPI supported coresight platform (N1SDP).
> 
> https://git.gitlab.arm.com/linux-arm/linux-anshuman.git (amba_other_acpi_migration_v7)
> 
> [...]

Applied, thanks!

[01/11] coresight: etm4x: Fix unbalanced pm_runtime_enable()
        https://git.kernel.org/coresight/c/caa41c47dab7e1054f587e592ab21296e3a6781c
[02/11] coresight: stm: Extract device name from AMBA pid based table lookup
        https://git.kernel.org/coresight/c/852e9a32058a73702c016a8be10c60375276e46e
[03/11] coresight: tmc: Extract device properties from AMBA pid based table lookup
        https://git.kernel.org/coresight/c/3ab210297c31b8fef1cfb2aa3d85b227b9ace09b
[04/11] coresight: Add helpers registering/removing both AMBA and platform drivers
        https://git.kernel.org/coresight/c/075b7cd7ad7dec8651a6a6654fa5ebae436ac00f
[05/11] coresight: replicator: Move ACPI support from AMBA driver to platform driver
        https://git.kernel.org/coresight/c/b448c4c72ca3327232dfb20d0065b693b3fcc2e2
[06/11] coresight: funnel: Move ACPI support from AMBA driver to platform driver
        https://git.kernel.org/coresight/c/8e3227ddfbd7216f14186ec534f43e9dbcde717c
[07/11] coresight: catu: Move ACPI support from AMBA driver to platform driver
        https://git.kernel.org/coresight/c/23567323857d2073197953bb158413be1aceca8b
[08/11] coresight: tpiu: Move ACPI support from AMBA driver to platform driver
        https://git.kernel.org/coresight/c/3d83d4d4904a47626854b6bba44127d21a7dc713
[09/11] coresight: tmc: Move ACPI support from AMBA driver to platform driver
        https://git.kernel.org/coresight/c/70750e257aab4cd4d755294ae8b9834214a624bb
[10/11] coresight: stm: Move ACPI support from AMBA driver to platform driver
        https://git.kernel.org/coresight/c/057256aaacc862356417a75ceeb1cfa41408dbf0
[11/11] coresight: debug: Move ACPI support from AMBA driver to platform driver
        https://git.kernel.org/coresight/c/965edae4e6a2bca1f6e56d2c56d992417a53bba4

Best regards,