From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 EA8F138B9BA for ; Tue, 13 Jan 2026 11:19:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768303176; cv=none; b=lO73CYiM4/cjzjbaWGMjIDQxU/mf8/BHeJXEATIdvYHnp1pN3Ybku4EzGrgFZ10+R3Dvke1uCdZLa5IhKqYYSKSVpSAirl+UdzwpKDke0sillUoHp/K7zLONOhRPWwi5OMRcAGXGyff2LaWk4zEmwtiYmRUH/YB+ZOlKI5lo+vI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768303176; c=relaxed/simple; bh=iBteRzhuVjUKovQZsZr56W6Db3PAYl+XUdijpRoUdoc=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=rfsl3+Xdz3Mxt77DH1aJEC9unVdm0tSowJXSHaNX6joZPqxcF/w/elWaMeWWe7zF62DzG8smcQ1EIHnlGB4FB+/VMbeFiIF07B6vfW6P9tHLxx4Sz1g8kImBMsWd325CQxgt5nDJ1AEPJLWTxj5rb7QvxkyLnb/7sOWrohRJeWg= 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=TTTjn3un; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IjvuN1ea; arc=none smtp.client-ip=205.220.168.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="TTTjn3un"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IjvuN1ea" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60D8YvS63727091 for ; Tue, 13 Jan 2026 11:19:32 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= +067FJE1YSc9YVkN2T9ygwB7jd4RPMgD/BH7GSACzSI=; b=TTTjn3unAgUSm7uy I0La02DOGqycxFT+QDE9RDk+ZOE82En4EOGET+SmfDPYtOmRN3G9ooW0N6pB26I/ Mq7JCKU0t7tiowAUxfe+vQozciLtQyaSLeQFIL9xDNNr8dcKCzHv/7ChZ0S7gdAr HBezKGRz3CDBlsD35+mNoPYMxEaJM7phz+lPzbiHoTgjmmArgLnnqvYGWxdworLU js5DdNQ0BSOP7o8NsKFtu57Dd66VLeTJzIrvF6JgEJ4B1j7FIJB/SeSmmhVlvmKs bgTYyxkC1uBQHZ7cYIn3FqErO76eb/XxlHiZP0PvQcpA6tJA3HcMkCGUPHGWP3f9 B8KfBQ== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bnjnu0k0t-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 13 Jan 2026 11:19:31 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4f34c24e2cbso18807851cf.3 for ; Tue, 13 Jan 2026 03:19:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1768303171; x=1768907971; 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=+067FJE1YSc9YVkN2T9ygwB7jd4RPMgD/BH7GSACzSI=; b=IjvuN1eaDtngCBqSMYr5BHNYtNZ9D8bzcmJn46iGSLbqjMjo8Uqkb3YX7I+tKuXntv OG6Nqa26Ml+6Psvzl2LCrMH/tKgh/4ZgJEcJXtujTSy5m16zQmuzlIxpzjpaq/MIox/M Az5X4j9ywugfbg+dw0ITli9T+GjaD6Tf5dAF71zKzRFR5FzpVBVnLa4bhsvM3xB5PgIz f/bjHTAzEFxrqAoKbpbExCd0uOvLIX1E24mAbXEGCjS2gDQCnR7TtWLUwBHCz4waPa2G FHTo1EERreVjCFHo0IGoCYXDhR8Uj29/h7a66ABnkpB20jopYwu55XDfKB9pn+tNg6QA ZGqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768303171; x=1768907971; 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=+067FJE1YSc9YVkN2T9ygwB7jd4RPMgD/BH7GSACzSI=; b=fqkundHz7yLBxaLiqmgqjBh8EA7lH7H+rplv0XlraiRJDHzAp6o92QuWN6q1QDp37r 37nVDmVgK2ZCNP+bEHm/nVrlcAT4RpAl0Uy2XdHJUXHmsgVsP3ZY5QL7rYqO7uKK3Qf7 QJeKpjAgazTnW41GR9DAEmKS82s1OAivNom+vC7ITLCd3MWQZ/EWtJig01oBB3Vmqt9a U0kXaFpMtkHDPsCtSrcfWTTCh25N2nIgdd5AGNlHdhpH7bGRHX3BnvmQZztohBQ3i8PK WSiGHxiDkFROxyT76kY8exwcTapqzYhWagsHkNGzLl5AvT+y+A02vH9TLJCl2IW+kBjQ 5ZWw== X-Gm-Message-State: AOJu0YzCW2Qw4QzDewDMW5Cf6ZV1r1n1GyB1cec1mNSeRmKSXvJri6jd Ae8dAQVILPQpI/Z+YBaxI+3NimcGlyzOOVm5Ewb10Am2METpeOYh3Uo70xn8xgh+SMz5Kc7HJ3M IBMXN7NgJUpR4B3hVxs3qyyPqcv+TYNCRFy+6wT+7Zv06sjdY2hd6pRm2L5NoWeYYdHI= X-Gm-Gg: AY/fxX7l7gl9+mWWM4WF6qcRScRMYJB8+S0pHOXlHQpdPjghgFLu6haLMfTtrjy2Mmk Hg8bQzF0WQeougCtpsca5CdYi80kkj9N9wRQ1xY5NM3eGxc7ScIJhR+fB/g+GFrOdRV6EZL7DWJ e8b2Q8LHZgVnX8iX0gZtvwZVSKwlp+Fvk9MMnqQDOzHluKSWQVAI6Ci0Jxx91T8ce2SYlPbcSrl LrYUjJXKqi5DOsF68DJygIKdFjYT/5pN1uprZELWV795KUuUGJDHBhtTJrcPeuonTuyuj5X00rX LECaYB2dXjKJNWVyyscG7kNJBf+/a2D54D83vPBMxw8+4kV79Sjv6vJjXbMwHkkLH7LtD6+rgrQ LgiR2FJuTPr+L5yxnbzujKIHIwUgVUf61lryUeCGPI/BCghqeTQJCMmGNlV5QENxJWqA= X-Received: by 2002:ac8:7c4b:0:b0:4ee:4482:e838 with SMTP id d75a77b69052e-4ffb47e2d4bmr227003771cf.1.1768303170830; Tue, 13 Jan 2026 03:19:30 -0800 (PST) X-Google-Smtp-Source: AGHT+IGBaIEoMj8LfHl/NgkrhjmaWz8P4907NXHKNWZFwZcaH7zOvWKqQ1r+uQU7MEguvL/cQrN4zA== X-Received: by 2002:ac8:7c4b:0:b0:4ee:4482:e838 with SMTP id d75a77b69052e-4ffb47e2d4bmr227003491cf.1.1768303170411; Tue, 13 Jan 2026 03:19:30 -0800 (PST) Received: from [192.168.119.254] (078088045245.garwolin.vectranet.pl. [78.88.45.245]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6507b9d44bfsm20060625a12.8.2026.01.13.03.19.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 13 Jan 2026 03:19:29 -0800 (PST) Message-ID: <05637034-19f0-42cd-9352-3daf80ae4a1d@oss.qualcomm.com> Date: Tue, 13 Jan 2026 12:19:26 +0100 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 v10 6/7] qcom-tgu: Add timer/counter functionality for TGU To: Songwei Chai , andersson@kernel.org, alexander.shishkin@linux.intel.com, mike.leach@linaro.org, suzuki.poulose@arm.com, james.clark@arm.com, krzk+dt@kernel.org, conor+dt@kernel.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, coresight@lists.linaro.org, devicetree@vger.kernel.org, gregkh@linuxfoundation.org References: <20260109021141.3778421-1-songwei.chai@oss.qualcomm.com> <20260109021141.3778421-7-songwei.chai@oss.qualcomm.com> Content-Language: en-US From: Konrad Dybcio In-Reply-To: <20260109021141.3778421-7-songwei.chai@oss.qualcomm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Proofpoint-ORIG-GUID: OJY1viNRdpfSCkbZSnz284FBSG-EI0q1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTEzMDA5NSBTYWx0ZWRfXzYyjrzY80Lta sx6ZIaNw3GtcNsTbxJk5uPf9WsI8qZgsmfKzL+XBlOTOsvJighrr1ftZNWyQfSZ/H+wqamSq8jT A7rCBVWNIfneRALM1ZSWPlCfX3OzuOWKLiFFHWFytyJhg2LD+HO06bwxb4I1aXlHy75N8jHlwIY O8RAw7Ih1uxgxiyUPq1Vf0yszPcn0+Jq6BZrJW9CHV8wnMzPNFGdsY3SURN8hBqybA2Pb/30gsm QiwpzEhyD251G2AOPIWX3+MCsmtfhmOw6vVRjJ03M/i0JxRwJhB5qAOulG7sLpOrv5g6oZsBfQm nuwVACRwlq/hH6pItxRV32wl+8VlCRM9GOUf6mMrGbpVWj0fTZBUO7TAPuVr5EYGJGpuUxdIKuu EWbU/I+WgFUr4sYaGYiGVFFeT56QseNG3iYKcoXxamQKt662cBzBYSEAtXJTTf6mNZg9aXmuVVr /iCUkn2E8Ngrfn3+5Rw== X-Authority-Analysis: v=2.4 cv=RMu+3oi+ c=1 sm=1 tr=0 ts=69662a43 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=FpWmc02/iXfjRdCD7H54yg==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=CsthYWZRQT8_EciR9E4A:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: OJY1viNRdpfSCkbZSnz284FBSG-EI0q1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-13_02,2026-01-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 impostorscore=0 suspectscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601130095 On 1/9/26 3:11 AM, Songwei Chai wrote: > Add counter and timer node for each step which could be > programed if they are to be utilized in trigger event/sequence. > > Signed-off-by: Songwei Chai > --- [...] > +static void tgu_set_timer_counter(struct tgu_drvdata *drvdata) > +{ > + int num_timers, num_counters; > + u32 devid2; > + > + devid2 = readl(drvdata->base + CORESIGHT_DEVID2); > + > + if (TGU_DEVID2_TIMER0(devid2) && TGU_DEVID2_TIMER1(devid2)) > + num_timers = 2; > + else if (TGU_DEVID2_TIMER0(devid2) || TGU_DEVID2_TIMER1(devid2)) > + num_timers = 1; > + else > + num_timers = 0; > + > + if (TGU_DEVID2_COUNTER0(devid2) && TGU_DEVID2_COUNTER1(devid2)) > + num_counters = 2; > + else if (TGU_DEVID2_COUNTER0(devid2) || TGU_DEVID2_COUNTER1(devid2)) > + num_counters = 1; > + else > + num_counters = 0; > + > + drvdata->max_timer = num_timers; > + drvdata->max_counter = num_counters; int num_timers = 0, num_counters = 0 if (TGU_DEVID2_TIMER0(devid2)) num_timers++ if (TGU_DEVID2_TIMER1(devid2)) num_timers++ etc. unless you want to guard against a case where TIMER0 reports as absent and TIMER1 as present and you consider that invalid (I don't know) [...] > + timer_size = drvdata->max_step * drvdata->max_timer * > + sizeof(*(drvdata->value_table->timer)); > + > + timer = devm_kzalloc(dev, timer_size, GFP_KERNEL); > + > + if (!timer) stray \n > + return -ENOMEM; > + > + drvdata->value_table->timer = timer; > + > + counter_size = drvdata->max_step * drvdata->max_counter * > + sizeof(*(drvdata->value_table->counter)); > + > + counter = devm_kzalloc(dev, counter_size, GFP_KERNEL); devm_kcalloc, perhaps? > + > + if (!counter) stray \n > + return -ENOMEM; > + > + drvdata->value_table->counter = counter; > + > drvdata->enable = false; > > pm_runtime_put(&adev->dev); > diff --git a/drivers/hwtracing/qcom/tgu.h b/drivers/hwtracing/qcom/tgu.h > index 8c92e88d7e2c..94708750b02d 100644 > --- a/drivers/hwtracing/qcom/tgu.h > +++ b/drivers/hwtracing/qcom/tgu.h > @@ -11,11 +11,17 @@ > #define TGU_LAR 0xfb0 > #define TGU_UNLOCK_OFFSET 0xc5acce55 > #define TGU_DEVID 0xfc8 > +#define CORESIGHT_DEVID2 0xfc0 > > #define BMVAL(val, lsb, msb) ((val & GENMASK(msb, lsb)) >> lsb) This is NIH FIELD_GET() [...] > static inline void TGU_LOCK(void __iomem *addr) > @@ -197,6 +247,8 @@ static inline void TGU_UNLOCK(void __iomem *addr) > * @max_step: Maximum step size > * @max_condition_decode: Maximum number of condition_decode > * @max_condition_select: Maximum number of condition_select > + * @max_timer: Maximum number of timers > + * @max_counter: Maximum number of counters > * > * This structure defines the data associated with a TGU device, > * including its base address, device pointers, clock, spinlock for > @@ -213,6 +265,8 @@ struct tgu_drvdata { > int max_step; > int max_condition_decode; > int max_condition_select; > + int max_timer; > + int max_counter; num_timers, num_counters definitely fits better here Konrad