From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A2D1282F00 for ; Sun, 12 Apr 2026 14:40:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776004822; cv=none; b=Kez3hUwKm+ZIEXPBbq7/GWqmhNX7Kz2WeAXrYuL65WsZPOFutKqPa6vDnzIjyoDAgNZEYwMMjyyMhXEwQc65/1wgRFQTCD25RnSA3SQ3es1zsgOe5DRFADv4t0CALDHOnLRpte+Q4EGRE3gJD9RHWBi6QR6eiscprwEhFm6/9V0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776004822; c=relaxed/simple; bh=OXc5Y7fX/VRaAgMYpHzK2sqmBsa6xhGGrX4VaD+sa90=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=HPZyioDTAaLRUgRqATHsGpomhs0j77Q4sNekGeyGgKDkG/VPh6FD6MWsn9cg8CB9cr/4q4SxzAXeV5lvl2WctrB8tKNr0v66HSMhLrerl7bs29+ycMuln8gZoOTPT6uAYyVb/nRRkMEuPNEgpmGU+IEaN084E1lTxXF3EJz+87E= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Hy+g8nAY; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=NEPdaIJo; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Hy+g8nAY"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="NEPdaIJo" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63CE4kpU541669 for ; Sun, 12 Apr 2026 14:40:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Wl0CUq8ky86KPwyUSthJVabhU5b5BVjiqFrGVLMHUhk=; b=Hy+g8nAY3P3dN8Sb EzLmJUzqFbLaO+TFCpmLBpnbk8lT4kt+Zb+zSvVecxPf8upU7yYBnyAjnu/FUfrW ILYX1f93QP10U0wZht/CpiapN+exsTlJBlT9AxVD5DzbQTmGeusf6Xk3Ievbm/c8 Fl98UKsX/3hG0tqTxrYha2TwcAeS4/0dI5dRN8WazbBHu6Hw9ULTdD22kxNMWyUa 4EEM24i3NS02r3Mi88cpl/Ofs5aeGlup71MBaytZl2fh/SN+l2243B2wc1Nfbm8Y J4C28IHKh4c5SvJIKQl+l88RVhcSuvZLU+XKy24M4njAwjmnpLNQr2I0Sp5vMvCp 04n3ug== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dfexftg7k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 12 Apr 2026 14:40:20 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-82c89d4ce16so2307556b3a.2 for ; Sun, 12 Apr 2026 07:40:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776004819; x=1776609619; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=Wl0CUq8ky86KPwyUSthJVabhU5b5BVjiqFrGVLMHUhk=; b=NEPdaIJo4bTg5BqdOEYbfm0Pk3AMJDbYv/ESyo6mP2GZ9aGXNUKBFQ4kKPS6H4O10v USLSWVmc1D0RoyBM5N+RS9irOuWNbrZjER2djtkTBHe/p/La95fgJBCWdpGCyw+3qwbH lES0uDC3oneUYHE4mqwFqjHsCwLrc9PXspE3vCxF4Ia/0bYXe+lzDHzP+l7LeTA24JAH 8QjiWjicZtKF24J04xeu2bTt2Ya/xYDrcMpR41CdNbuNSgr2wD56F8RHdYeTgTj58p2T /guxb1OsRV68vIP64atRTr8wvAVXdUUZgC+2/epZ8pMjtImg1X7L1YSGrJ73O2wLD9Cl tbDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776004819; x=1776609619; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Wl0CUq8ky86KPwyUSthJVabhU5b5BVjiqFrGVLMHUhk=; b=XW0/5UaPvQu+h4GWsQh6UcqnWiCaombmqzoiL1bybuHgKEDDWqWFP1cSwCpPAKQ6/x l0Q9llrfttwm9vAsFW83hiHYrOiPzB3b6+05jO90HwNrRNA2tEleFpqeO8lxnPFiS3Ex PJMIWBanMIuRddsu+NED+T3csRLXZP6PWFylsgNRXaAJXSt/FkHRjoqX6cigOIxKwsjt +azxyMl5CRkgPfHqrLr3m3X1/QhnncL3brBQsY6XVQ1uNsJW8Np6S2WI2E7EpoMt0QpO C7xZfe10UnZxtsG1Vh6gOiFaD/bLYHKuM6rUa88a1ug+6I3W/YZfSG7jXmJY7fzEKb/j lBjg== X-Forwarded-Encrypted: i=1; AFNElJ+3KcP0m5lv2dv0N96kZjNn4caW5oxkv7LeKaIUFPOgprCfXQ7Yf7jNQhWiXiEb8nh/btLjjLn2Izhf+4w=@vger.kernel.org X-Gm-Message-State: AOJu0Yza+4nE3hIOARtLxSX3IVP1sSEJj6JxKoA4oqOd/R6CZhuKUv9Z znLmoiXTfwMom3PKyozhYF1FMXorfyErNsSUEEvJb0iL4he7t7ikW7iUwjWKDGvb3tcn2xArnoV WS1+RRk7tfw4ZwCPrZXX5igtuoldmBeKdxD5JjsWbWhhiC72BjuG0Kpixyg1rZYjMbEo= X-Gm-Gg: AeBDievbNa2579IpTGbz7ZvMfovpp1KOZXXlK0q3vwWvUfkFCkV5AMzmBF4Y9LaJz3N Fzj2c6aIUWvwPkZq6gihLnmndPRRo4fNOtbvg5GLmoSlGX5tYTe33LGhUndbjAiHb0wa8KC0vhX 05BbNsvzmNVMmJpGvqnYvPieXEAnGOvQjgfbqOPrYsSDRdfg18hggYlHPcHjut66gfNAui0KcqA hLY+2TK0BUNk9TilHY2/wFhNUHkJlJ91Lvrdv/v2WeGNKmIvK1TujikoF9ftU+CQ7cNSgbWqcwe gNhUag17rYdp6eK4D3Be2Pi/mBT+phlHhQ5TdUACbnC+9sNE8HBOXtz9zYq6BVdFwdPs86GTwfF MSWNEbObUTlU5Jl4Wu4DdmmU+KFdwH7hbWQ5KHuq9N/XhgpXHXYbFyMXiWBkWTgnRg34L+THl9m VIWo3p4M6CUA== X-Received: by 2002:a05:6a00:1898:b0:82f:3733:2fa7 with SMTP id d2e1a72fcca58-82f373336e5mr1930727b3a.34.1776004819219; Sun, 12 Apr 2026 07:40:19 -0700 (PDT) X-Received: by 2002:a05:6a00:1898:b0:82f:3733:2fa7 with SMTP id d2e1a72fcca58-82f373336e5mr1930708b3a.34.1776004818643; Sun, 12 Apr 2026 07:40:18 -0700 (PDT) Received: from [10.133.33.83] (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f0c50d40bsm8221643b3a.58.2026.04.12.07.40.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 12 Apr 2026 07:40:18 -0700 (PDT) Message-ID: Date: Sun, 12 Apr 2026 22:40:13 +0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 2/5] coresight: etm4x: exclude ss_status from drvdata->config To: Yeoreum Yun , coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: suzuki.poulose@arm.com, mike.leach@arm.com, james.clark@linaro.org, alexander.shishkin@linux.intel.com, leo.yan@arm.com References: <20260410074310.2693385-1-yeoreum.yun@arm.com> <20260410074310.2693385-3-yeoreum.yun@arm.com> Content-Language: en-US From: Jie Gan In-Reply-To: <20260410074310.2693385-3-yeoreum.yun@arm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Proofpoint-GUID: o4EGCvw0WIuSVeQuiRwvkoZ9A_sJ3RFm X-Authority-Analysis: v=2.4 cv=OpZ/DS/t c=1 sm=1 tr=0 ts=69dbaed4 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=7CQSdrXTAAAA:8 a=BRZUhdLeOCknMCWa-HcA:9 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-ORIG-GUID: o4EGCvw0WIuSVeQuiRwvkoZ9A_sJ3RFm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDEyMDE0MyBTYWx0ZWRfX13LEfrxkgBFU tQKRkvuUvT2XqGkK3VtD2TwvIrAFVcGaHPNmFXWuXMJdqDlQYyr5XHZA8uPBjJo9Hi2zTn9fsnW Wz0lNdEuGo1Jba0AFVMDo+K7GsQuOrKxsnuQuyaT/3wURVopUZzQY4E1nMgEEVcBqgqx0px7ccF KAkKkLdbJaO4Ai9t1/zMT5VN9gsLhoYp7K3KmvVqIFjZt/gn1tndl4pHHcRQDqnQYw3QMgkWUpV B5X4++HqrfScW+gWMe6Zxw382EwwQaumIwyXO1jZiIz9f3D+P+4UQ7qZ5MhL1XIKGLzntlglvqQ 0iaRFr88vsrSBWRM+yBFS+SRHolA3aSLA6IVj49ZCeD6N7qi01gGy4KTtq8oXGBO4YKt1vLwkoQ UVldcrBA7ZYVAjnJeFAhY/G9XzO7Dn688YGdhlp25cGJLJNaQyO7T/86ZUJSyb7xGPysXi1Z0va MbCpeZbsibmCVGdP5LQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-12_03,2026-04-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 spamscore=0 bulkscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604120143 On 4/10/2026 3:43 PM, Yeoreum Yun wrote: > The purpose of TRCSSCSRn register is to show status of > the corresponding Single-shot Comparator Control and input supports. > That means writable field's purpose for reset or restore from idle status > not for configuration. > > Therefore, exclude ss_status from drvdata->config, move it to etm4x_caps. > This includes remove TRCSSCRn from configurable item and > remove saving in etm4_disable_hw(). > > Signed-off-by: Yeoreum Yun > --- > .../hwtracing/coresight/coresight-etm4x-cfg.c | 1 - > .../hwtracing/coresight/coresight-etm4x-core.c | 18 +++++------------- > .../coresight/coresight-etm4x-sysfs.c | 7 ++----- > drivers/hwtracing/coresight/coresight-etm4x.h | 3 ++- > 4 files changed, 9 insertions(+), 20 deletions(-) > > diff --git a/drivers/hwtracing/coresight/coresight-etm4x-cfg.c b/drivers/hwtracing/coresight/coresight-etm4x-cfg.c > index c302072b293a..d14d7c8a23e5 100644 > --- a/drivers/hwtracing/coresight/coresight-etm4x-cfg.c > +++ b/drivers/hwtracing/coresight/coresight-etm4x-cfg.c > @@ -86,7 +86,6 @@ static int etm4_cfg_map_reg_offset(struct etmv4_drvdata *drvdata, > off_mask = (offset & GENMASK(11, 5)); > do { > CHECKREGIDX(TRCSSCCRn(0), ss_ctrl, idx, off_mask); > - CHECKREGIDX(TRCSSCSRn(0), ss_status, idx, off_mask); > CHECKREGIDX(TRCSSPCICRn(0), ss_pe_cmp, idx, off_mask); > } while (0); > } else if ((offset >= TRCCIDCVRn(0)) && (offset <= TRCVMIDCVRn(7))) { > diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c > index 6443f3717b37..b7abb171f523 100644 > --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c > +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c > @@ -91,7 +91,7 @@ static bool etm4x_sspcicrn_present(struct etmv4_drvdata *drvdata, int n) > const struct etmv4_caps *caps = &drvdata->caps; > > return (n < caps->nr_ss_cmp) && caps->nr_pe && > - (drvdata->config.ss_status[n] & TRCSSCSRn_PC); > + (caps->ss_status[n] & TRCSSCSRn_PC); > } > > u64 etm4x_sysreg_read(u32 offset, bool _relaxed, bool _64bit) > @@ -571,11 +571,9 @@ static int etm4_enable_hw(struct etmv4_drvdata *drvdata) > etm4x_relaxed_write32(csa, config->res_ctrl[i], TRCRSCTLRn(i)); > > for (i = 0; i < caps->nr_ss_cmp; i++) { > - /* always clear status bit on restart if using single-shot */ > - if (config->ss_ctrl[i] || config->ss_pe_cmp[i]) > - config->ss_status[i] &= ~TRCSSCSRn_STATUS; > etm4x_relaxed_write32(csa, config->ss_ctrl[i], TRCSSCCRn(i)); > - etm4x_relaxed_write32(csa, config->ss_status[i], TRCSSCSRn(i)); > + /* always clear status bit on restart if using single-shot */ the clear step for the status bit has been removed. but the comment still here. I think we cannot remove the clear step. The hardware requires the STATUS bit to be cleared before re-arming a single-shot comparator; failing to do so means the comparator will not fire on the next trace session Thanks, Jie > + etm4x_relaxed_write32(csa, caps->ss_status[i], TRCSSCSRn(i)); > if (etm4x_sspcicrn_present(drvdata, i)) > etm4x_relaxed_write32(csa, config->ss_pe_cmp[i], TRCSSPCICRn(i)); > } > @@ -1053,12 +1051,6 @@ static void etm4_disable_hw(struct etmv4_drvdata *drvdata) > > etm4_disable_trace_unit(drvdata); > > - /* read the status of the single shot comparators */ > - for (i = 0; i < caps->nr_ss_cmp; i++) { > - config->ss_status[i] = > - etm4x_relaxed_read32(csa, TRCSSCSRn(i)); > - } > - > /* read back the current counter values */ > for (i = 0; i < caps->nr_cntr; i++) { > config->cntr_val[i] = > @@ -1501,8 +1493,8 @@ static void etm4_init_arch_data(void *info) > */ > caps->nr_ss_cmp = FIELD_GET(TRCIDR4_NUMSSCC_MASK, etmidr4); > for (i = 0; i < caps->nr_ss_cmp; i++) { > - drvdata->config.ss_status[i] = > - etm4x_relaxed_read32(csa, TRCSSCSRn(i)); > + caps->ss_status[i] = etm4x_relaxed_read32(csa, TRCSSCSRn(i)); > + caps->ss_status[i] &= ~(TRCSSCSRn_STATUS | TRCSSCSRn_PENDING); > } > /* NUMCIDC, bits[27:24] number of Context ID comparators for tracing */ > caps->numcidc = FIELD_GET(TRCIDR4_NUMCIDC_MASK, etmidr4); > diff --git a/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c b/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c > index 3d5f343130bd..c794fc9de5b6 100644 > --- a/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c > +++ b/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c > @@ -1832,8 +1832,6 @@ static ssize_t sshot_ctrl_store(struct device *dev, > raw_spin_lock(&drvdata->spinlock); > idx = config->ss_idx; > config->ss_ctrl[idx] = FIELD_PREP(TRCSSCCRn_SAC_ARC_RST_MASK, val); > - /* must clear bit 31 in related status register on programming */ > - config->ss_status[idx] &= ~TRCSSCSRn_STATUS; > raw_spin_unlock(&drvdata->spinlock); > return size; > } > @@ -1844,10 +1842,11 @@ static ssize_t sshot_status_show(struct device *dev, > { > unsigned long val; > struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); > + const struct etmv4_caps *caps = &drvdata->caps; > struct etmv4_config *config = &drvdata->config; > > raw_spin_lock(&drvdata->spinlock); > - val = config->ss_status[config->ss_idx]; > + val = caps->ss_status[config->ss_idx]; > raw_spin_unlock(&drvdata->spinlock); > return scnprintf(buf, PAGE_SIZE, "%#lx\n", val); > } > @@ -1882,8 +1881,6 @@ static ssize_t sshot_pe_ctrl_store(struct device *dev, > raw_spin_lock(&drvdata->spinlock); > idx = config->ss_idx; > config->ss_pe_cmp[idx] = FIELD_PREP(TRCSSPCICRn_PC_MASK, val); > - /* must clear bit 31 in related status register on programming */ > - config->ss_status[idx] &= ~TRCSSCSRn_STATUS; > raw_spin_unlock(&drvdata->spinlock); > return size; > } > diff --git a/drivers/hwtracing/coresight/coresight-etm4x.h b/drivers/hwtracing/coresight/coresight-etm4x.h > index 3e20561672dc..57508d301327 100644 > --- a/drivers/hwtracing/coresight/coresight-etm4x.h > +++ b/drivers/hwtracing/coresight/coresight-etm4x.h > @@ -213,6 +213,7 @@ > #define TRCACATRn_EXLEVEL_MASK GENMASK(14, 8) > > #define TRCSSCSRn_STATUS BIT(31) > +#define TRCSSCSRn_PENDING BIT(30) > #define TRCSSCCRn_SAC_ARC_RST_MASK GENMASK(24, 0) > > #define TRCSSPCICRn_PC_MASK GENMASK(7, 0) > @@ -898,6 +899,7 @@ struct etmv4_caps { > bool atbtrig : 1; > bool lpoverride : 1; > bool skip_power_up : 1; > + u32 ss_status[ETM_MAX_SS_CMP]; > }; > > /** > @@ -976,7 +978,6 @@ struct etmv4_config { > u32 res_ctrl[ETM_MAX_RES_SEL]; /* TRCRSCTLRn */ > u8 ss_idx; > u32 ss_ctrl[ETM_MAX_SS_CMP]; > - u32 ss_status[ETM_MAX_SS_CMP]; > u32 ss_pe_cmp[ETM_MAX_SS_CMP]; > u8 addr_idx; > u64 addr_val[ETM_MAX_SINGLE_ADDR_CMP];