mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v3 0/9] coresight: Fix and improve clock usage
@ 2025-06-09 16:00 Leo Yan
  2025-06-09 16:00 ` [PATCH v3 1/9] coresight: tmc: Support atclk Leo Yan
                   ` (8 more replies)
  0 siblings, 9 replies; 25+ messages in thread
From: Leo Yan @ 2025-06-09 16:00 UTC (permalink / raw)
  To: Suzuki K Poulose, Mike Leach, James Clark, Anshuman Khandual,
	Alexander Shishkin, Greg Kroah-Hartman
  Cc: coresight, linux-arm-kernel, linux-kernel, Leo Yan

This series fixes and improves clock usage in the Arm CoreSight drivers.

Based on the DT binding documents, the trace clock (atclk) is defined in
some CoreSight modules, but support is absent.  In most cases, the issue
is hidden because the atclk clock is shared by multiple CoreSight
modules and the clock is enabled anyway by other drivers.  The first
three patches address this issue.

The programming clock (pclk) management in CoreSight drivers does not
use the devm_XXX() variant APIs, the drivers needs to manually disable
and release clocks for errors and for normal module exit.  However, the
drivers miss to disable clocks during module exit.  The atclk may also
not be disabled in CoreSight drivers during module exit.  By using devm
APIs, patches 04 and 05 fix clock disabling issues.

Another issue is pclk might be enabled twice in init phase - once by
AMBA bus driver, and again by CoreSight drivers. This is fixed in
patch 06.

Patches 07 to 09 refactor the clock related code.  Patch 07 consolidats
the clock initialization into a central place.  Patch 08 makes the
clock enabling sequence consistent.  Patch 09 removes redundant
condition checks and adds error handling in runtime PM.

This series has been verified on Arm64 Hikey960 and Juno platforms.

Changes from v2:
- Updated subjects for patches 04 and 05 (Anshuman).
- Refined condition checking "if (dev_is_amba(dev))" in patch 07
  (Anshuman).

Changes from v1:
- Moved the coresight_get_enable_clocks() function into CoreSight core
  layer (James).
- Added comments for clock naming "apb_pclk" and "apb" (James).
- Re-ordered patches for easier understanding (Anshuman).
- Minor improvement for commit log in patch 01 (Anshuman).

Signed-off-by: Leo Yan <leo.yan@arm.com>
---
Leo Yan (9):
      coresight: tmc: Support atclk
      coresight: catu: Support atclk
      coresight: etm4x: Support atclk
      coresight: Appropriately disable programming clocks
      coresight: Appropriately disable trace bus clocks
      coresight: Avoid enable programming clock duplicately
      coresight: Consolidate clock enabling
      coresight: Make clock sequence consistent
      coresight: Refactor runtime PM

 drivers/hwtracing/coresight/coresight-catu.c       | 53 ++++++++---------
 drivers/hwtracing/coresight/coresight-catu.h       |  1 +
 drivers/hwtracing/coresight/coresight-core.c       | 45 +++++++++++++++
 drivers/hwtracing/coresight/coresight-cpu-debug.c  | 41 +++++---------
 drivers/hwtracing/coresight/coresight-ctcu-core.c  | 24 +++-----
 drivers/hwtracing/coresight/coresight-etb10.c      | 18 ++----
 drivers/hwtracing/coresight/coresight-etm3x-core.c | 17 ++----
 drivers/hwtracing/coresight/coresight-etm4x-core.c | 32 ++++++-----
 drivers/hwtracing/coresight/coresight-etm4x.h      |  4 +-
 drivers/hwtracing/coresight/coresight-funnel.c     | 66 ++++++++--------------
 drivers/hwtracing/coresight/coresight-replicator.c | 63 ++++++++-------------
 drivers/hwtracing/coresight/coresight-stm.c        | 34 +++++------
 drivers/hwtracing/coresight/coresight-tmc-core.c   | 48 ++++++++--------
 drivers/hwtracing/coresight/coresight-tmc.h        |  2 +
 drivers/hwtracing/coresight/coresight-tpiu.c       | 36 +++++-------
 include/linux/coresight.h                          | 30 +---------
 16 files changed, 225 insertions(+), 289 deletions(-)
---
base-commit: 408c97c4a5e0b634dcd15bf8b8808b382e888164
change-id: 20250609-arm_cs_fix_clock_v3_public-d546e8bfc852

Best regards,
-- 
Leo Yan <leo.yan@arm.com>


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2025-06-24 10:09 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-06-09 16:00 [PATCH v3 0/9] coresight: Fix and improve clock usage Leo Yan
2025-06-09 16:00 ` [PATCH v3 1/9] coresight: tmc: Support atclk Leo Yan
2025-06-09 16:00 ` [PATCH v3 2/9] coresight: catu: " Leo Yan
2025-06-09 16:00 ` [PATCH v3 3/9] coresight: etm4x: " Leo Yan
2025-06-09 16:00 ` [PATCH v3 4/9] coresight: Appropriately disable programming clocks Leo Yan
2025-06-09 16:11   ` Suzuki K Poulose
2025-06-09 16:38     ` Leo Yan
2025-06-24  4:23       ` Anshuman Khandual
2025-06-24  4:37   ` Anshuman Khandual
2025-06-09 16:00 ` [PATCH v3 5/9] coresight: Appropriately disable trace bus clocks Leo Yan
2025-06-09 16:14   ` Suzuki K Poulose
2025-06-09 16:43     ` Leo Yan
2025-06-09 16:00 ` [PATCH v3 6/9] coresight: Avoid enable programming clock duplicately Leo Yan
2025-06-09 16:58   ` Suzuki K Poulose
2025-06-09 17:14     ` Leo Yan
2025-06-10 10:39       ` Anshuman Khandual
2025-06-10 12:03         ` Leo Yan
2025-06-24  4:43           ` Anshuman Khandual
2025-06-24  5:11   ` Anshuman Khandual
2025-06-09 16:00 ` [PATCH v3 7/9] coresight: Consolidate clock enabling Leo Yan
2025-06-24  5:44   ` Anshuman Khandual
2025-06-24 10:08     ` Leo Yan
2025-06-09 16:00 ` [PATCH v3 8/9] coresight: Make clock sequence consistent Leo Yan
2025-06-09 16:00 ` [PATCH v3 9/9] coresight: Refactor runtime PM Leo Yan
2025-06-10 10:07   ` Anshuman Khandual

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®