Received: by 2002:a05:6358:7058:b0:131:369:b2a3 with SMTP id 24csp893683rwp; Thu, 13 Jul 2023 02:53:55 -0700 (PDT) X-Google-Smtp-Source: APBJJlG27FjISXmqv8amCFSRNnggPEsXj7ImLfA7JIVRdtFhkPIWS1LSAVNbdBXvmrF3XQ/O9wVc X-Received: by 2002:a17:902:dac9:b0:1b6:b703:36f8 with SMTP id q9-20020a170902dac900b001b6b70336f8mr1945017plx.25.1689242035135; Thu, 13 Jul 2023 02:53:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689242035; cv=none; d=google.com; s=arc-20160816; b=PIJTgFxjuQkty44S9x8jXGt3Js3zFxg6kMrG8rBmEDzJdGtdUU01eviTvkVp2omsSF nHTnRD1gJVCWjmP+I3dEEfU0nrDlNBLrMrXX1NWcDy3v6Fsn4GBl0HNrZPRJd/xysKRP EqRJzPGc+krFmSgeucGXddvstwXeP4rgxzn9FVdyzy24yN7pO/5wmlQQw999GZg+tkMc 8swzBJ/vV3clQPu8APYhktoBmoa5gvGYJJl3U/jxN3M9/uf+7pmZgvldc55E2mYUoBc2 gc7rBv1yt1sRr0MPFNVTIVUyawpJAElFwcUCNp0IE0QJnsZry5nG1sxJYVM+xiZn2276 ab5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:subject:user-agent:mime-version:date:message-id; bh=On4/8X3H7/pCQkAAANOvgcZYApuFO/Jjm//WdiEnmgs=; fh=eYlTAknfe1E9pAF6rA2NGAYDyDM2dM6zmNxd5uDk7xM=; b=M27CJpMtvv9LCKEqcsyQXn7jr0q1U8+3VZqBQ8p054Q5j8AjDJZwlWTJ4kornHKYov q0YfklJi90p6p1MckESk7Bt1IlS/6uUDaVf5drDFIL8AfkcjmPBpr+jd7D9oDNzOoVqq 3bR7g8AFmJ2GUZt3ORlaPiO8IdFwGFAL4gvu0pkKGU/l6Qa3k/jbwWdTf0lfAH+Kn0YY ggIMDf38js5MhdMWyEcDRFqolv+sKpaISMaNSrt5VDtK2fzvzeroMBwAUiAzs6gBfYQs x9YkSWK5Vf17424ZUCD4U4oeH2q1G2rJ4iA1pt6PIFfjjLi6VldQO1QEcRZXJSQcJq6W H6Bg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ky15-20020a170902f98f00b001b8b386ae30si4876431plb.335.2023.07.13.02.53.43; Thu, 13 Jul 2023 02:53:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231703AbjGMJeI (ORCPT + 99 others); Thu, 13 Jul 2023 05:34:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55322 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230408AbjGMJeG (ORCPT ); Thu, 13 Jul 2023 05:34:06 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 91D391FC7; Thu, 13 Jul 2023 02:34:04 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C60ED1570; Thu, 13 Jul 2023 02:34:46 -0700 (PDT) Received: from [10.1.36.45] (FVFF763DQ05P.cambridge.arm.com [10.1.36.45]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D04143F740; Thu, 13 Jul 2023 02:34:01 -0700 (PDT) Message-ID: <77343663-2d09-53bf-d463-36b979e433ea@arm.com> Date: Thu, 13 Jul 2023 10:34:00 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v6 09/13] Add nodes for dsb edge control To: Mike Leach , Tao Zhang Cc: Greg Kroah-Hartman , Mathieu Poirier , Alexander Shishkin , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Jinlong Mao , Leo Yan , coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Tingwei Zhang , Yuanfang Zhang , Trilok Soni , Hao Zhang , linux-arm-msm@vger.kernel.org, andersson@kernel.org References: <1687246361-23607-1-git-send-email-quic_taozha@quicinc.com> <1687246361-23607-10-git-send-email-quic_taozha@quicinc.com> <2023062024-sincere-tripod-95dc@gregkh> <3aca4a55-0dc7-b34c-d2c0-111a96c33ec3@quicinc.com> From: Suzuki K Poulose In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 13/07/2023 09:54, Mike Leach wrote: > HI Tao, > > On Wed, 12 Jul 2023 at 14:53, Tao Zhang wrote: >> >> >> On 6/20/2023 9:41 PM, Suzuki K Poulose wrote: >>> On 20/06/2023 09:31, Tao Zhang wrote: >>>> >>>> On 6/20/2023 3:37 PM, Greg Kroah-Hartman wrote: >>>>> On Tue, Jun 20, 2023 at 03:32:37PM +0800, Tao Zhang wrote: >>>>>> Add the nodes to set value for DSB edge control and DSB edge >>>>>> control mask. Each DSB subunit TPDM has maximum of n(n<16) EDCR >>>>>> resgisters to configure edge control. DSB edge detection control >>>>>> 00: Rising edge detection >>>>>> 01: Falling edge detection >>>>>> 10: Rising and falling edge detection (toggle detection) >>>>>> And each DSB subunit TPDM has maximum of m(m<8) ECDMR registers to >>>>>> configure mask. Eight 32 bit registers providing DSB interface >>>>>> edge detection mask control. >>>>>> >>>>>> Signed-off-by: Tao Zhang >>>>>> --- >>>>>> .../ABI/testing/sysfs-bus-coresight-devices-tpdm | 32 +++++ >>>>>> drivers/hwtracing/coresight/coresight-tpdm.c | 143 >>>>>> ++++++++++++++++++++- >>>>>> drivers/hwtracing/coresight/coresight-tpdm.h | 22 ++++ >>>>>> 3 files changed, 196 insertions(+), 1 deletion(-) >>>>>> >>>>>> diff --git >>>>>> a/Documentation/ABI/testing/sysfs-bus-coresight-devices-tpdm >>>>>> b/Documentation/ABI/testing/sysfs-bus-coresight-devices-tpdm >>>>>> index 2a82cd0..34189e4a 100644 >>>>>> --- a/Documentation/ABI/testing/sysfs-bus-coresight-devices-tpdm >>>>>> +++ b/Documentation/ABI/testing/sysfs-bus-coresight-devices-tpdm >>>>>> @@ -60,3 +60,35 @@ Description: >>>>>> Bit[3] : Set to 0 for low performance mode. >>>>>> Set to 1 for high performance mode. >>>>>> Bit[4:8] : Select byte lane for high performance mode. >>>>>> + >>>>>> +What: /sys/bus/coresight/devices//dsb_edge_ctrl >>>>>> +Date: March 2023 >>>>>> +KernelVersion 6.5 >>>>>> +Contact: Jinlong Mao (QUIC) , Tao >>>>>> Zhang (QUIC) >>>>>> +Description: >>>>>> + Read/Write a set of the edge control registers of the DSB >>>>>> + in TPDM. >>>>>> + >>>>>> + Expected format is the following: >>>>>> + >>>>> sysfs is "one value", not 3. Please never have to parse a sysfs file. >>>> >>>> Do you mean sysfs file can only accept "one value"? >>>> >>>> I see that more than one value are written to the sysfs file >>>> "trigout_attach". >>>> >>>>> >>>>>> +static ssize_t dsb_edge_ctrl_show(struct device *dev, >>>>>> + struct device_attribute *attr, >>>>>> + char *buf) >>>>>> +{ >>>>>> + struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent); >>>>>> + ssize_t size = 0; >>>>>> + unsigned long bytes; >>>>>> + int i; >>>>>> + >>>>>> + spin_lock(&drvdata->spinlock); >>>>>> + for (i = 0; i < TPDM_DSB_MAX_EDCR; i++) { >>>>>> + bytes = sysfs_emit_at(buf, size, >>>>>> + "Index:0x%x Val:0x%x\n", i, >>>>> Again, no, one value, no "string" needed to parse anything. >>>> >>>> I also see other sysfs files can be read more than one value in other >>>> drivers. >>>> >>>> Is this "one value" limitation the usage rule of Linux sysfs system? >>>> >>>> Or am I misunderstanding what you mean? >>> >>> Please fix the other sysfs tunables in the following patches. >> >> List a new solution for the similar cases below, please see if this >> design is reasonable? >> >> 1. Two SysFS files("dsb_edge_ctrl_idx" and "dsb_edge_ctrl_val") will be >> created in this case. >> >> 2. First write to the node "dsb_edge_ctrl_idx" to set the index number >> of the edge detection. >> >> 3. Then write to the node "dsb_edge_ctrl_val" to set the value of the >> edge detection. >> >> For example, if we need need to set "Falling edge detection" to the edge >> detection #220-#222, we can issue the following commands. >> >> echo 0xdc > tpdm1/dsb_edge_ctrl_idx >> >> echo 0x1 > tpdm1/dsb_edge_ctrl_val >> >> echo 0xdd > tpdm1/dsb_edge_ctrl_idx >> >> echo 0x1 > tpdm1/dsb_edge_ctrl_val >> >> echo 0xde > tpdm1/dsb_edge_ctrl_idx >> >> echo 0x1 > tpdm1/dsb_edge_ctrl_val >> >> If this design is acceptable, we will rewrite other similar nodes based >> on this solution. >> > > This index / value model is used in the coresight drivers so should be > OK - eg etm4 has cntr_idx / cntrldvr / cntr_val / cntr_ctrl, where > index selects the counter, and the other val registers are applied to > that counter. True. That model is useful when there are variable number of "counters". I guess it doesn't hurt to have a 64bit (or even 32bit) file for each EDCR. e.g, edcr0...edcr15 Given there are only 16 of them, it is fine to keep a file for each. This may be grouped under "mgmt" similar to what we have for other components. That way, it can be easily hidden by checking for the presence of DSB. Suzuki