From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.5 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A12F3C10F11 for ; Mon, 22 Apr 2019 17:06:37 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6D9E72077C for ; Mon, 22 Apr 2019 17:06:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="QhTHeuoB"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Pb6uEJnt" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6D9E72077C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4s6GXTx6QFhRO46hv3HBXP2bPxah+aBGBaAqgIhEjRg=; b=QhTHeuoBOqIRLW 0TySkchyMTolUhZhcbOG6XiUS2L42yHENKjeHW+XiPkLKk05iAt9UriiGwJJSc5pPZo3boiJ15iiY p9BEDOrgghzscIXO8MluN+vCjiYVoyHGtb9Tl3cR4L3rvWk1CnkEZKW8EAtTEDRcaeVXwNITS3uC2 qp7TN/nlRs072nQHrad37hpS1x34OQFX21nqJNu87wwkrZpspFPP6Mv4AzRvU97Sd0+7cT+Mh/27a yuja17h94XwJeSx6pydqmS4/5nqoahD0QNQjaHOLoJIrZKZoVBIO49skYRXbtF6ceWPzNytEd8G0s dgIbp0t9B0nbVhivMW6g==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hIcOq-0007lE-O0; Mon, 22 Apr 2019 17:06:36 +0000 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hIcOm-0007kK-LN for linux-arm-kernel@lists.infradead.org; Mon, 22 Apr 2019 17:06:34 +0000 Received: by mail-pg1-x541.google.com with SMTP id p6so6126909pgh.9 for ; Mon, 22 Apr 2019 10:06:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=UmVQ/Kb+D3agxEJmcF1RGJiBZEdZhtAXjz7AnW27M3E=; b=Pb6uEJnt2ViK0QG8dAl9/5PJrW6CbePJCFvHiuVHcYhwHrBB03VpexFNYgObPoEouy iHvosR/+6sg7BtepjY/hTfDoOCAeQ2Dy3NP17PtQY7pgwVF0e3+AnXcmjp10MJsvtHOi IOSZFvkfLnadis9Rp7xx6JPU3w3JFJO4VeMXZ3cZ/Y0+fls23LVRszBXjhGtP/8/6W8M Xg9HIBkkXKPXsaZap8mGFYGHs3ck7jebvdoSI8syxIWPoPn9SGQmwLiaJ+kVYCenfH6d r5S9m0CFv260qWcECdm5MX7XuJurIgsSSqX9X8uC7AZztbG9ibrrWm0WGVNbXjjYIG1G NFCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=UmVQ/Kb+D3agxEJmcF1RGJiBZEdZhtAXjz7AnW27M3E=; b=dOrNfL+Aey+MgZg44GHuFDc3UyvYr/uHDLjIMEsbHxWzVmtfDsYHKpRx3wi2WGX2RT v4WWguYRKjdt41q75Pbu9JI/4AHUeE1tm+QkHxA1RMYjWEPqnK63P8bFu0UCksDktGXl cENDm9URBbz7/LtcbvW9KK2f7B5AbIRB3+sxbwVyU8uC/uDAx+0Ne3mUqo3LZlbV+Mek OiPp3p0Sf7WAF0B7SFQLSNMyBKUR1jFCPN1qMT4bYQEL9H6QeuZt2/Z72qED4KUg0y53 Q/s2A5L3pMtj99WWbMUrESNiFKDhvDR9JgocKcF+uQjsdoymUztdaxaZ4NpDEaHIa4YZ hiVA== X-Gm-Message-State: APjAAAU/GmppKbLUMIfAEBU2atggH604U1n9qHVW6so+2rgDLhHHrFeO 1fo0y3B41IMM2LGbCnsPp/ZgGUun6AM= X-Google-Smtp-Source: APXvYqybbcm5zbKayfq6GH7v8JSuiDlnXTzD+OMEm+OrpNuytSBmZZsH3ENZcNpFf5ggNIyAsu2+JA== X-Received: by 2002:a65:44c6:: with SMTP id g6mr19591461pgs.157.1555952790548; Mon, 22 Apr 2019 10:06:30 -0700 (PDT) Received: from xps15 (S0106002369de4dac.cg.shawcable.net. [68.147.8.254]) by smtp.gmail.com with ESMTPSA id j28sm16244144pgb.46.2019.04.22.10.06.29 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 22 Apr 2019 10:06:29 -0700 (PDT) Date: Mon, 22 Apr 2019 11:06:27 -0600 From: Mathieu Poirier To: Suzuki K Poulose Subject: Re: [PATCH v2 24/36] coresight: Reuse platform data structure for connection tracking Message-ID: <20190422170627.GA6402@xps15> References: <1555344260-12375-1-git-send-email-suzuki.poulose@arm.com> <1555344260-12375-25-git-send-email-suzuki.poulose@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1555344260-12375-25-git-send-email-suzuki.poulose@arm.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190422_100632_765837_49352BBD X-CRM114-Status: GOOD ( 24.56 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: coresight@lists.linaro.org, rjw@rjwysocki.net, linux-kernel@vger.kernel.org, robert.walker@arm.com, linux-arm-kernel@lists.infradead.org, mike.leach@linaro.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, Apr 15, 2019 at 05:04:07PM +0100, Suzuki K Poulose wrote: > The platform specific information describes the connections and > the ports of a given coresigh device. This information is also > recorded in the coresight device as separate fields. Let us reuse > the original platform description to streamline the handling > of the data. > > Cc: Mathieu Poirier > Signed-off-by: Suzuki K Poulose > --- > drivers/hwtracing/coresight/coresight-tmc-etr.c | 4 +-- > drivers/hwtracing/coresight/coresight.c | 46 ++++++++++++------------- > include/linux/coresight.h | 8 ++--- > 3 files changed, 27 insertions(+), 31 deletions(-) > > diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c > index 0911f9c..d3ff2c7 100644 > --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c > +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c > @@ -747,8 +747,8 @@ tmc_etr_get_catu_device(struct tmc_drvdata *drvdata) > if (!IS_ENABLED(CONFIG_CORESIGHT_CATU)) > return NULL; > > - for (i = 0; i < etr->nr_outport; i++) { > - tmp = etr->conns[i].child_dev; > + for (i = 0; i < etr->pdata->nr_outport; i++) { > + tmp = etr->pdata->conns[i].child_dev; > if (tmp && coresight_is_catu_device(tmp)) > return tmp; > } > diff --git a/drivers/hwtracing/coresight/coresight.c b/drivers/hwtracing/coresight/coresight.c > index 530ad69..f6c5244 100644 > --- a/drivers/hwtracing/coresight/coresight.c > +++ b/drivers/hwtracing/coresight/coresight.c > @@ -100,8 +100,8 @@ static int coresight_find_link_inport(struct coresight_device *csdev, > int i; > struct coresight_connection *conn; > > - for (i = 0; i < parent->nr_outport; i++) { > - conn = &parent->conns[i]; > + for (i = 0; i < parent->pdata->nr_outport; i++) { > + conn = &parent->pdata->conns[i]; > if (conn->child_dev == csdev) > return conn->child_port; > } > @@ -118,8 +118,8 @@ static int coresight_find_link_outport(struct coresight_device *csdev, > int i; > struct coresight_connection *conn; > > - for (i = 0; i < csdev->nr_outport; i++) { > - conn = &csdev->conns[i]; > + for (i = 0; i < csdev->pdata->nr_outport; i++) { > + conn = &csdev->pdata->conns[i]; > if (conn->child_dev == child) > return conn->outport; > } > @@ -304,10 +304,10 @@ static void coresight_disable_link(struct coresight_device *csdev, > > if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_MERG) { > refport = inport; > - nr_conns = csdev->nr_inport; > + nr_conns = csdev->pdata->nr_inport; > } else if (link_subtype == CORESIGHT_DEV_SUBTYPE_LINK_SPLIT) { > refport = outport; > - nr_conns = csdev->nr_outport; > + nr_conns = csdev->pdata->nr_outport; > } else { > refport = 0; > nr_conns = 1; > @@ -593,9 +593,10 @@ static void coresight_grab_device(struct coresight_device *csdev) > { > int i; > > - for (i = 0; i < csdev->nr_outport; i++) { > - struct coresight_device *child = csdev->conns[i].child_dev; > + for (i = 0; i < csdev->pdata->nr_outport; i++) { > + struct coresight_device *child; > > + child = csdev->pdata->conns[i].child_dev; > if (child && child->type == CORESIGHT_DEV_TYPE_HELPER) > pm_runtime_get_sync(child->dev.parent); > } > @@ -611,9 +612,10 @@ static void coresight_drop_device(struct coresight_device *csdev) > int i; > > pm_runtime_put(csdev->dev.parent); > - for (i = 0; i < csdev->nr_outport; i++) { > - struct coresight_device *child = csdev->conns[i].child_dev; > + for (i = 0; i < csdev->pdata->nr_outport; i++) { > + struct coresight_device *child; > > + child = csdev->pdata->conns[i].child_dev; > if (child && child->type == CORESIGHT_DEV_TYPE_HELPER) > pm_runtime_put(child->dev.parent); > } > @@ -643,9 +645,10 @@ static int _coresight_build_path(struct coresight_device *csdev, > goto out; > > /* Not a sink - recursively explore each port found on this element */ > - for (i = 0; i < csdev->nr_outport; i++) { > - struct coresight_device *child_dev = csdev->conns[i].child_dev; > + for (i = 0; i < csdev->pdata->nr_outport; i++) { > + struct coresight_device *child_dev; > > + child_dev = csdev->pdata->conns[i].child_dev; > if (child_dev && > _coresight_build_path(child_dev, sink, path) == 0) { > found = true; > @@ -998,8 +1001,8 @@ static int coresight_orphan_match(struct device *dev, void *data) > * Circle throuch all the connection of that component. If we find > * an orphan connection whose name matches @csdev, link it. > */ > - for (i = 0; i < i_csdev->nr_outport; i++) { > - conn = &i_csdev->conns[i]; > + for (i = 0; i < i_csdev->pdata->nr_outport; i++) { > + conn = &i_csdev->pdata->conns[i]; > > /* We have found at least one orphan connection */ > if (conn->child_dev == NULL) { > @@ -1038,8 +1041,8 @@ static void coresight_fixup_device_conns(struct coresight_device *csdev) > { > int i; > > - for (i = 0; i < csdev->nr_outport; i++) { > - struct coresight_connection *conn = &csdev->conns[i]; > + for (i = 0; i < csdev->pdata->nr_outport; i++) { > + struct coresight_connection *conn = &csdev->pdata->conns[i]; > struct device *dev = NULL; > > if (conn->child_name) > @@ -1073,8 +1076,8 @@ static int coresight_remove_match(struct device *dev, void *data) > * Circle throuch all the connection of that component. If we find > * a connection whose name matches @csdev, remove it. > */ > - for (i = 0; i < iterator->nr_outport; i++) { > - conn = &iterator->conns[i]; > + for (i = 0; i < iterator->pdata->nr_outport; i++) { > + conn = &iterator->pdata->conns[i]; > > if (conn->child_dev == NULL) > continue; > @@ -1106,7 +1109,7 @@ static void coresight_remove_conns(struct coresight_device *csdev) > * doesn't have at least one input port, there is no point > * in searching all the devices. > */ > - if (csdev->nr_inport) > + if (csdev->pdata->nr_inport) > bus_for_each_dev(&coresight_bustype, NULL, > csdev, coresight_remove_match); > } > @@ -1193,10 +1196,7 @@ struct coresight_device *coresight_register(struct coresight_desc *desc) > > csdev->refcnt = refcnts; > > - csdev->nr_inport = desc->pdata->nr_inport; > - csdev->nr_outport = desc->pdata->nr_outport; > - > - csdev->conns = desc->pdata->conns; > + csdev->pdata = desc->pdata; > > csdev->type = desc->type; > csdev->subtype = desc->subtype; > diff --git a/include/linux/coresight.h b/include/linux/coresight.h > index 84a2137..8c10def 100644 > --- a/include/linux/coresight.h > +++ b/include/linux/coresight.h > @@ -140,9 +140,7 @@ struct coresight_connection { > > /** > * struct coresight_device - representation of a device as used by the framework > - * @conns: array of coresight_connections associated to this component. > - * @nr_inport: number of input port associated to this component. > - * @nr_outport: number of output port associated to this component. > + * @pdata: Platform data with device connections associated to this device. > * @type: as defined by @coresight_dev_type. > * @subtype: as defined by @coresight_dev_subtype. > * @ops: generic operations for this component, as defined > @@ -157,9 +155,7 @@ struct coresight_connection { > * @ea: Device attribute for sink representation under PMU directory. > */ > struct coresight_device { > - struct coresight_connection *conns; > - int nr_inport; > - int nr_outport; > + struct coresight_platform_data *pdata; > enum coresight_dev_type type; > union coresight_dev_subtype subtype; > const struct coresight_ops *ops; For patches 21 to 24: Reviewed-by: Mathieu Poirier > -- > 2.7.4 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel