All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/9] coresight: Fix and improve clock usage
@ 2025-04-23 15:17 Leo Yan
  2025-04-23 15:17 ` [PATCH v2 1/9] coresight: tmc: Support atclk Leo Yan
                   ` (8 more replies)
  0 siblings, 9 replies; 24+ messages in thread
From: Leo Yan @ 2025-04-23 15:17 UTC (permalink / raw)
  To: Suzuki K Poulose, Mike Leach, James Clark, Anshuman Khandual,
	Alexander Shishkin, Maxime Coquelin, Alexandre Torgue,
	Greg Kroah-Hartman, coresight, linux-arm-kernel, linux-kernel,
	linux-stm32
  Cc: 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 is verified on Arm64 Hikey960 platform.

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).


Leo Yan (9):
  coresight: tmc: Support atclk
  coresight: catu: Support atclk
  coresight: etm4x: Support atclk
  coresight: Disable programming clock properly
  coresight: Disable trace bus clock properly
  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(-)

-- 
2.34.1



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

end of thread, other threads:[~2025-05-07  6:02 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-23 15:17 [PATCH v2 0/9] coresight: Fix and improve clock usage Leo Yan
2025-04-23 15:17 ` [PATCH v2 1/9] coresight: tmc: Support atclk Leo Yan
2025-04-23 15:17 ` [PATCH v2 2/9] coresight: catu: " Leo Yan
2025-04-23 15:17 ` [PATCH v2 3/9] coresight: etm4x: " Leo Yan
2025-04-23 15:17 ` [PATCH v2 4/9] coresight: Disable programming clock properly Leo Yan
2025-05-02  6:10   ` Anshuman Khandual
2025-05-06  9:54     ` Leo Yan
2025-05-07  5:59       ` Anshuman Khandual
2025-04-23 15:17 ` [PATCH v2 5/9] coresight: Disable trace bus " Leo Yan
2025-05-02  6:31   ` Anshuman Khandual
2025-04-23 15:17 ` [PATCH v2 6/9] coresight: Avoid enable programming clock duplicately Leo Yan
2025-05-02  6:38   ` Anshuman Khandual
2025-05-06  9:18     ` Leo Yan
2025-05-07  5:55       ` Anshuman Khandual
2025-04-23 15:17 ` [PATCH v2 7/9] coresight: Consolidate clock enabling Leo Yan
2025-05-05  7:28   ` Anshuman Khandual
2025-05-06 10:53     ` Leo Yan
2025-05-07  5:51       ` Anshuman Khandual
2025-04-23 15:17 ` [PATCH v2 8/9] coresight: Make clock sequence consistent Leo Yan
2025-05-02  6:56   ` Anshuman Khandual
2025-04-23 15:17 ` [PATCH v2 9/9] coresight: Refactor runtime PM Leo Yan
2025-05-02  8:45   ` Anshuman Khandual
2025-05-06 10:16     ` Leo Yan
2025-05-07  5:39       ` Anshuman Khandual

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.