[PATCH v7 03/13] coresight: etm4x: introduce ETM_MAX_SEQ_TRANSITIONS
Suzuki K Poulose
suzuki.poulose at arm.com
Mon Jun 1 02:53:38 PDT 2026
On 19/05/2026 16:48, Yeoreum Yun wrote:
> According to IHI006H Embedded Trace Macrocell Architecture
> Specification [0], n could be 0-2 for TCRSEQEVR<n> when
> TCRIDR5.NUMSEQSTATE is 0b100.
>
> Therefore, introduce ETM_MAX_SEQ_TRANSITIONS macro and apply this
> in TCRSEQEVR<n> relevant fields.
>
> Link: https://developer.arm.com/documentation/ihi0064/latest/ [0]
> Suggestedby: Leo Yan <leo.yan at arm.com>
> Signed-off-by: Yeoreum Yun <yeoreum.yun at arm.com>
> ---
> drivers/hwtracing/coresight/coresight-etm4x-cfg.c | 2 +-
> drivers/hwtracing/coresight/coresight-etm4x.h | 5 +++--
> 2 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/hwtracing/coresight/coresight-etm4x-cfg.c b/drivers/hwtracing/coresight/coresight-etm4x-cfg.c
> index c302072b293a..e1a59b434505 100644
> --- a/drivers/hwtracing/coresight/coresight-etm4x-cfg.c
> +++ b/drivers/hwtracing/coresight/coresight-etm4x-cfg.c
> @@ -76,7 +76,7 @@ static int etm4_cfg_map_reg_offset(struct etmv4_drvdata *drvdata,
> } else if ((offset & GENMASK(11, 4)) == TRCSEQEVRn(0)) {
> /* sequencer state control registers */
> idx = (offset & GENMASK(3, 0)) / 4;
> - if (idx < ETM_MAX_SEQ_STATES) {
> + if (idx < ETM_MAX_SEQ_TRANSITIONS) {
> reg_csdev->driver_regval = &drvcfg->seq_ctrl[idx];
> err = 0;
> }
> diff --git a/drivers/hwtracing/coresight/coresight-etm4x.h b/drivers/hwtracing/coresight/coresight-etm4x.h
> index 89d81ce4e04e..60e08ab085c5 100644
> --- a/drivers/hwtracing/coresight/coresight-etm4x.h
> +++ b/drivers/hwtracing/coresight/coresight-etm4x.h
> @@ -614,6 +614,7 @@ static inline u32 etm4_res_sel_pair(u8 res_sel_idx)
> #define ETM_MAX_NR_PE 8
> #define ETMv4_MAX_CNTR 4
> #define ETM_MAX_SEQ_STATES 4
> +#define ETM_MAX_SEQ_TRANSITIONS (ETM_MAX_SEQ_STATES - 1)
Similar to the other comment on the patch, please don't tie this to
SEQ_STATES. Simpl define.
#define ETM_MAX_SEQ_CTRLS 3
Suzuki
> #define ETM_MAX_EXT_INP_SEL 4
> #define ETM_MAX_EXT_INP 256
> #define ETM_MAX_EXT_OUT 4
> @@ -877,7 +878,7 @@ struct etmv4_config {
> u32 vipcssctlr;
> u8 seq_idx;
> u8 syncfreq;
> - u32 seq_ctrl[ETM_MAX_SEQ_STATES];
> + u32 seq_ctrl[ETM_MAX_SEQ_TRANSITIONS];
> u32 seq_rst;
> u32 seq_state;
> u8 cntr_idx;
> @@ -928,7 +929,7 @@ struct etmv4_save_state {
> u32 trcvissctlr;
> u32 trcvipcssctlr;
>
> - u32 trcseqevr[ETM_MAX_SEQ_STATES];
> + u32 trcseqevr[ETM_MAX_SEQ_TRANSITIONS];
> u32 trcseqrstevr;
> u32 trcseqstr;
> u32 trcextinselr;
More information about the linux-arm-kernel
mailing list