Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp6606574rwi; Mon, 24 Oct 2022 03:55:55 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5if0vHx/XP2vTp9JbNlSYAx+Xp+Yhr87xdRyXojGum+85pDnOx2qGP2cTublYlbli/ulm2 X-Received: by 2002:aa7:de81:0:b0:461:2122:a807 with SMTP id j1-20020aa7de81000000b004612122a807mr18774081edv.382.1666608954791; Mon, 24 Oct 2022 03:55:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666608954; cv=none; d=google.com; s=arc-20160816; b=mIb7N9kJYcTzJjtjrx9O23Nxy3E2nyL/7pZGKB3kqUHJ1DJ57CJbKEdCMvYrVs3O7+ 8N54EugCUY5w9yez5IOkxJsqgnettxqrcgBsZGWijMjmdjvpuSsuxZcwdkYouYF/ZlF/ MEPdsR6g3LIDPFLTraZnGuPzxAuMXtNIE90IxD/+Kw+rcEcAMtBxqZxfSd7mwitlGdFN 2IxHsCZbXO7Ef3Mh3Ex0tTe8v7uZVqiIExxeo+StcEBkAYMgGZb9MPFZkLQL4gjsjdyj d6zD5eC2mYVSjkN5X8s6Uh5isyW50B9HeHDrv1GW2mS3EHxZWDmh1Pn4N7KKAV/MmKnQ m66Q== 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=GJpT99lT5NFpil7JUzHpD1cUmkSKryrnfG6KWRT2p6A=; b=PS9udWwJe/LKQbASXejCtmbWIvRW/ZnsbxyIi9BXMiX2+Kycb9ED783waHKxHX3Ajw 1az6uyGZgwyw7zHCobEI3HEcsKOhrPham1oCDG1WSKcA0yue3tllbvutGR//hZ3Ld8R1 VSP28+rswqH3UhCrla5mwMRGTh8QwcQi8SG/ur40gjizCkBkeAVzaaCw42UAciPhTT5I OYiul6TExR5I3nq/d84Q7HutAiizpMx94flaOqtPjZvs79Rps5Xe4OO8P41hCxxTs4mh CfGAf0D2V1RaJAttVspXR2eBAvXWCTnVIwDBNqejGLNixyKnx2B9TcqITv/r5u8pub2s CAHg== 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 ho40-20020a1709070ea800b0078df1c345dasi29115244ejc.534.2022.10.24.03.55.29; Mon, 24 Oct 2022 03:55:54 -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 S229893AbiJXKcv (ORCPT + 99 others); Mon, 24 Oct 2022 06:32:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229634AbiJXKct (ORCPT ); Mon, 24 Oct 2022 06:32:49 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A599457212; Mon, 24 Oct 2022 03:32:46 -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 1EE022B; Mon, 24 Oct 2022 03:32:51 -0700 (PDT) Received: from [10.57.68.77] (unknown [10.57.68.77]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5CEC13F7B4; Mon, 24 Oct 2022 03:32:42 -0700 (PDT) Message-ID: Date: Mon, 24 Oct 2022 11:32:40 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 Subject: Re: [PATCH 5/9] coresight-tpdm: Add nodes to set trigger timestamp and type To: Tao Zhang , Mathieu Poirier , Alexander Shishkin , Konrad Dybcio , Mike Leach Cc: Jinlong Mao , Leo Yan , Greg Kroah-Hartman , coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Tingwei Zhang , Yuanfang Zhang , Trilok Soni , Hao Zhang , linux-arm-msm@vger.kernel.org, bjorn.andersson@linaro.org References: <1662626705-13097-1-git-send-email-quic_taozha@quicinc.com> <1662626705-13097-6-git-send-email-quic_taozha@quicinc.com> From: Suzuki K Poulose In-Reply-To: <1662626705-13097-6-git-send-email-quic_taozha@quicinc.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_NONE 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 08/09/2022 09:45, Tao Zhang wrote: > The nodes are needed to set or show the trigger timestamp and > trigger type. This change is to add these nodes to achieve these > function. > > Signed-off-by: Tao Zhang > --- > drivers/hwtracing/coresight/coresight-tpdm.c | 90 ++++++++++++++++++++++++++++ > 1 file changed, 90 insertions(+) > > diff --git a/drivers/hwtracing/coresight/coresight-tpdm.c b/drivers/hwtracing/coresight/coresight-tpdm.c > index 74cc653..fae9963 100644 > --- a/drivers/hwtracing/coresight/coresight-tpdm.c > +++ b/drivers/hwtracing/coresight/coresight-tpdm.c > @@ -232,8 +232,98 @@ static struct attribute_group tpdm_attr_grp = { > .attrs = tpdm_attrs, > }; > > +static ssize_t dsb_trig_type_show(struct device *dev, > + struct device_attribute *attr, > + char *buf) > +{ > + struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent); > + > + if (!(drvdata->datasets & TPDM_PIDR0_DS_DSB)) > + return -EPERM; > + > + return scnprintf(buf, PAGE_SIZE, "%u\n", > + (unsigned int)drvdata->dsb->trig_type); > +} > + > +/* > + * value 0: set trigger type as enablement > + * value 1: set trigger type as disablement > + */ > +static ssize_t dsb_trig_type_store(struct device *dev, > + struct device_attribute *attr, > + const char *buf, > + size_t size) > +{ > + struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent); > + unsigned long val; > + > + if ((kstrtoul(buf, 16, &val)) || val < 0 || val > 1) > + return -EINVAL; > + if (!(drvdata->datasets & TPDM_PIDR0_DS_DSB)) > + return -EPERM; > + > + spin_lock(&drvdata->spinlock); > + if (val) > + drvdata->dsb->trig_type = true; > + else > + drvdata->dsb->trig_type = false; > + spin_unlock(&drvdata->spinlock); > + return size; > +} > +static DEVICE_ATTR_RW(dsb_trig_type); > + > +static ssize_t dsb_trig_ts_show(struct device *dev, > + struct device_attribute *attr, > + char *buf) > +{ > + struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent); > + > + if (!(drvdata->datasets & TPDM_PIDR0_DS_DSB)) > + return -EPERM; > + > + return scnprintf(buf, PAGE_SIZE, "%u\n", > + (unsigned int)drvdata->dsb->trig_ts); > +} > + > +/* > + * value 0: set trigger timestamp as enablement > + * value 1: set trigger timestamp as disablement > + */ > +static ssize_t dsb_trig_ts_store(struct device *dev, > + struct device_attribute *attr, > + const char *buf, > + size_t size) > +{ > + struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent); > + unsigned long val; > + > + if ((kstrtoul(buf, 16, &val)) || val < 0 || val > 1) > + return -EINVAL; > + if (!(drvdata->datasets & TPDM_PIDR0_DS_DSB)) > + return -EPERM; > + > + spin_lock(&drvdata->spinlock); > + if (val) > + drvdata->dsb->trig_ts = true; > + else > + drvdata->dsb->trig_ts = false; > + spin_unlock(&drvdata->spinlock); > + return size; > +} > +static DEVICE_ATTR_RW(dsb_trig_ts); > +static struct attribute *tpdm_dsb_attrs[] = { > + &dev_attr_dsb_trig_ts.attr, > + &dev_attr_dsb_trig_type.attr, > + NULL, > +}; > + > +static struct attribute_group tpdm_dsb_attr_grp = { > + .attrs = tpdm_dsb_attrs, > +}; > + Please could we hide the "DSB" related knobs, if the the Data sets are missing using is_visible() hook ? Suzuki