All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peng Fan <peng.fan@nxp.com>
To: Georgi Djakov <djakov@kernel.org>,
	"Peng Fan (OSS)" <peng.fan@oss.nxp.com>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
	"festevam@gmail.com" <festevam@gmail.com>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"krzysztof.kozlowski+dt@linaro.org" 
	<krzysztof.kozlowski+dt@linaro.org>,
	Abel Vesa <abel.vesa@nxp.com>,
	"abailon@baylibre.com" <abailon@baylibre.com>,
	"l.stach@pengutronix.de" <l.stach@pengutronix.de>,
	"laurent.pinchart@ideasonboard.com" 
	<laurent.pinchart@ideasonboard.com>,
	"marex@denx.de" <marex@denx.de>,
	"paul.elder@ideasonboard.com" <paul.elder@ideasonboard.com>,
	"Markus.Niebel@ew.tq-group.com" <Markus.Niebel@ew.tq-group.com>,
	"aford173@gmail.com" <aford173@gmail.com>
Cc: "kernel@pengutronix.de" <kernel@pengutronix.de>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	dl-linux-imx <linux-imx@nxp.com>,
	"abelvesa@kernel.org" <abelvesa@kernel.org>
Subject: RE: [PATCH V2 8/9] interconnect: imx: configure NoC mode/prioriry/ext_control
Date: Sat, 2 Jul 2022 12:41:14 +0000	[thread overview]
Message-ID: <DU0PR04MB94173A39251811928E28A5E788BC9@DU0PR04MB9417.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <ae4b19a2-0315-a748-d048-6eb3ed2cc65a@kernel.org>

> Subject: Re: [PATCH V2 8/9] interconnect: imx: configure NoC
> mode/prioriry/ext_control
> 
> Hi Peng,
> 
> On 16.06.22 10:33, Peng Fan (OSS) wrote:
> > From: Peng Fan <peng.fan@nxp.com>
> >
> > Introduce imx_icc_noc_setting structure to describe a master port
> > setting Pass imx_icc_noc_setting as a parameter from specific driver
> > Set priority level, mode, ext control in imx_icc_node_set
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > ---
> >   drivers/interconnect/imx/imx.c    | 43 ++++++++++++++++++++++++++----
> >   drivers/interconnect/imx/imx.h    | 44
> ++++++++++++++++++++++++++++++-
> >   drivers/interconnect/imx/imx8mm.c |  2 +-
> >   drivers/interconnect/imx/imx8mn.c |  2 +-
> >   drivers/interconnect/imx/imx8mq.c |  2 +-
> >   5 files changed, 84 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/interconnect/imx/imx.c
> > b/drivers/interconnect/imx/imx.c index 78557fe6da2c..bd728caf2b85
> > 100644
> 
> [..]
> 
> > @@ -37,8 +40,24 @@ static int imx_icc_node_set(struct icc_node *node)
> >   {
> >   	struct device *dev = node->provider->dev;
> >   	struct imx_icc_node *node_data = node->data;
> > +	void __iomem *base;
> > +	u32 prio;
> >   	u64 freq;
> >
> > +	if (node_data->setting && !node_data->setting->ignore && node-
> >peak_bw) {
> > +		base = node_data->setting->reg + node_data-
> >imx_provider->noc_base;
> > +		if (node_data->setting->mode == IMX_NOC_MODE_FIXED) {
> > +			prio = node_data->setting->prio_level;
> > +			prio = PRIORITY_COMP_MARK | (prio << 8) | prio;
> > +			writel(prio, base + IMX_NOC_PRIO_REG);
> > +			writel(node_data->setting->mode, base +
> IMX_NOC_MODE_REG);
> > +			writel(node_data->setting->ext_control, base +
> IMX_NOC_EXT_CTL_REG);
> > +		} else {
> > +			dev_info(dev, "mode: %d not supported\n",
> node_data->setting->mode);
> > +			return -ENOTSUPP;
> 
> Nit: I believe that -EOPNOTSUPP is the preferred error code.

Fix in V3.

> 
> > +		}
> > +	}
> > +
> >   	if (!node_data->qos_dev)
> >   		return 0;
> >
> 
> [..]
> 
> > @@ -237,7 +263,8 @@ static int get_max_node_id(struct
> imx_icc_node_desc *nodes, int nodes_count)
> >   }
> >
> >   int imx_icc_register(struct platform_device *pdev,
> > -		     struct imx_icc_node_desc *nodes, int nodes_count)
> > +		     struct imx_icc_node_desc *nodes, int nodes_count,
> > +		     struct imx_icc_noc_setting *settings)
> >   {
> >   	struct device *dev = &pdev->dev;
> >   	struct icc_onecell_data *data;
> > @@ -267,13 +294,19 @@ int imx_icc_register(struct platform_device
> *pdev,
> >   	provider->dev->of_node = dev->parent->of_node;
> >   	platform_set_drvdata(pdev, imx_provider);
> >
> > +	if (settings) {
> > +		imx_provider->noc_base = devm_of_iomap(dev, provider-
> >dev->of_node, 0, NULL);
> > +		if (!imx_provider->noc_base)
> 
> devm_of_iomap() returns ERR_PTR(). So we should check it with IS_ERR().

Oops, fix in V3.

Thanks,
Peng.

> 
> Thanks,
> Georgi
> 
> > +			return PTR_ERR(imx_provider->noc_base);
> > +	}
> > +
> >   	ret = icc_provider_add(provider);
> >   	if (ret) {
> >   		dev_err(dev, "error adding interconnect provider: %d\n",
> ret);
> >   		return ret;
> >   	}
> >
> > -	ret = imx_icc_register_nodes(imx_provider, nodes, nodes_count);
> > +	ret = imx_icc_register_nodes(imx_provider, nodes, nodes_count,
> > +settings);
> >   	if (ret)
> >   		goto provider_del;
> >

WARNING: multiple messages have this Message-ID (diff)
From: Peng Fan <peng.fan@nxp.com>
To: Georgi Djakov <djakov@kernel.org>,
	"Peng Fan (OSS)" <peng.fan@oss.nxp.com>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
	"festevam@gmail.com" <festevam@gmail.com>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"krzysztof.kozlowski+dt@linaro.org"
	<krzysztof.kozlowski+dt@linaro.org>,
	Abel Vesa <abel.vesa@nxp.com>,
	"abailon@baylibre.com" <abailon@baylibre.com>,
	"l.stach@pengutronix.de" <l.stach@pengutronix.de>,
	"laurent.pinchart@ideasonboard.com"
	<laurent.pinchart@ideasonboard.com>,
	"marex@denx.de" <marex@denx.de>,
	"paul.elder@ideasonboard.com" <paul.elder@ideasonboard.com>,
	"Markus.Niebel@ew.tq-group.com" <Markus.Niebel@ew.tq-group.com>,
	"aford173@gmail.com" <aford173@gmail.com>
Cc: "kernel@pengutronix.de" <kernel@pengutronix.de>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	dl-linux-imx <linux-imx@nxp.com>,
	"abelvesa@kernel.org" <abelvesa@kernel.org>
Subject: RE: [PATCH V2 8/9] interconnect: imx: configure NoC mode/prioriry/ext_control
Date: Sat, 2 Jul 2022 12:41:14 +0000	[thread overview]
Message-ID: <DU0PR04MB94173A39251811928E28A5E788BC9@DU0PR04MB9417.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <ae4b19a2-0315-a748-d048-6eb3ed2cc65a@kernel.org>

> Subject: Re: [PATCH V2 8/9] interconnect: imx: configure NoC
> mode/prioriry/ext_control
> 
> Hi Peng,
> 
> On 16.06.22 10:33, Peng Fan (OSS) wrote:
> > From: Peng Fan <peng.fan@nxp.com>
> >
> > Introduce imx_icc_noc_setting structure to describe a master port
> > setting Pass imx_icc_noc_setting as a parameter from specific driver
> > Set priority level, mode, ext control in imx_icc_node_set
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > ---
> >   drivers/interconnect/imx/imx.c    | 43 ++++++++++++++++++++++++++----
> >   drivers/interconnect/imx/imx.h    | 44
> ++++++++++++++++++++++++++++++-
> >   drivers/interconnect/imx/imx8mm.c |  2 +-
> >   drivers/interconnect/imx/imx8mn.c |  2 +-
> >   drivers/interconnect/imx/imx8mq.c |  2 +-
> >   5 files changed, 84 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/interconnect/imx/imx.c
> > b/drivers/interconnect/imx/imx.c index 78557fe6da2c..bd728caf2b85
> > 100644
> 
> [..]
> 
> > @@ -37,8 +40,24 @@ static int imx_icc_node_set(struct icc_node *node)
> >   {
> >   	struct device *dev = node->provider->dev;
> >   	struct imx_icc_node *node_data = node->data;
> > +	void __iomem *base;
> > +	u32 prio;
> >   	u64 freq;
> >
> > +	if (node_data->setting && !node_data->setting->ignore && node-
> >peak_bw) {
> > +		base = node_data->setting->reg + node_data-
> >imx_provider->noc_base;
> > +		if (node_data->setting->mode == IMX_NOC_MODE_FIXED) {
> > +			prio = node_data->setting->prio_level;
> > +			prio = PRIORITY_COMP_MARK | (prio << 8) | prio;
> > +			writel(prio, base + IMX_NOC_PRIO_REG);
> > +			writel(node_data->setting->mode, base +
> IMX_NOC_MODE_REG);
> > +			writel(node_data->setting->ext_control, base +
> IMX_NOC_EXT_CTL_REG);
> > +		} else {
> > +			dev_info(dev, "mode: %d not supported\n",
> node_data->setting->mode);
> > +			return -ENOTSUPP;
> 
> Nit: I believe that -EOPNOTSUPP is the preferred error code.

Fix in V3.

> 
> > +		}
> > +	}
> > +
> >   	if (!node_data->qos_dev)
> >   		return 0;
> >
> 
> [..]
> 
> > @@ -237,7 +263,8 @@ static int get_max_node_id(struct
> imx_icc_node_desc *nodes, int nodes_count)
> >   }
> >
> >   int imx_icc_register(struct platform_device *pdev,
> > -		     struct imx_icc_node_desc *nodes, int nodes_count)
> > +		     struct imx_icc_node_desc *nodes, int nodes_count,
> > +		     struct imx_icc_noc_setting *settings)
> >   {
> >   	struct device *dev = &pdev->dev;
> >   	struct icc_onecell_data *data;
> > @@ -267,13 +294,19 @@ int imx_icc_register(struct platform_device
> *pdev,
> >   	provider->dev->of_node = dev->parent->of_node;
> >   	platform_set_drvdata(pdev, imx_provider);
> >
> > +	if (settings) {
> > +		imx_provider->noc_base = devm_of_iomap(dev, provider-
> >dev->of_node, 0, NULL);
> > +		if (!imx_provider->noc_base)
> 
> devm_of_iomap() returns ERR_PTR(). So we should check it with IS_ERR().

Oops, fix in V3.

Thanks,
Peng.

> 
> Thanks,
> Georgi
> 
> > +			return PTR_ERR(imx_provider->noc_base);
> > +	}
> > +
> >   	ret = icc_provider_add(provider);
> >   	if (ret) {
> >   		dev_err(dev, "error adding interconnect provider: %d\n",
> ret);
> >   		return ret;
> >   	}
> >
> > -	ret = imx_icc_register_nodes(imx_provider, nodes, nodes_count);
> > +	ret = imx_icc_register_nodes(imx_provider, nodes, nodes_count,
> > +settings);
> >   	if (ret)
> >   		goto provider_del;
> >
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-07-02 12:41 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-16  7:33 [PATCH V2 0/9] interconnect: support i.MX8MP Peng Fan (OSS)
2022-06-16  7:33 ` Peng Fan (OSS)
2022-06-16  7:33 ` [PATCH V2 1/9] dt-bindings: interconnect: imx8m: Add bindings for imx8mp noc Peng Fan (OSS)
2022-06-16  7:33   ` Peng Fan (OSS)
2022-06-27 22:18   ` Rob Herring
2022-06-27 22:18     ` Rob Herring
2022-06-16  7:33 ` [PATCH V2 2/9] dt-bindings: interconnect: add fsl,imx8mp.h Peng Fan (OSS)
2022-06-16  7:33   ` Peng Fan (OSS)
2022-06-27 22:19   ` Rob Herring
2022-06-27 22:19     ` Rob Herring
2022-06-16  7:33 ` [PATCH V2 3/9] interconnect: add device managed bulk API Peng Fan (OSS)
2022-06-16  7:33   ` Peng Fan (OSS)
2022-06-16  7:33 ` [PATCH V2 4/9] interconnect: imx: fix max_node_id Peng Fan (OSS)
2022-06-16  7:33   ` Peng Fan (OSS)
2022-06-16  7:33 ` [PATCH V2 5/9] interconnect: imx: set src node Peng Fan (OSS)
2022-06-16  7:33   ` Peng Fan (OSS)
2022-06-16  7:33 ` [PATCH V2 6/9] interconnect: imx: introduce imx_icc_provider Peng Fan (OSS)
2022-06-16  7:33   ` Peng Fan (OSS)
2022-06-16  7:33 ` [PATCH V2 7/9] interconnect: imx: set of_node for interconnect provider Peng Fan (OSS)
2022-06-16  7:33   ` Peng Fan (OSS)
2022-06-29 15:08   ` Lucas Stach
2022-06-29 15:08     ` Lucas Stach
2022-06-29 17:32     ` Laurent Pinchart
2022-06-29 17:32       ` Laurent Pinchart
2022-07-03  8:43       ` Peng Fan (OSS)
2022-07-03  8:43         ` Peng Fan (OSS)
2022-07-02 12:48     ` Peng Fan
2022-07-02 12:48       ` Peng Fan
2022-06-16  7:33 ` [PATCH V2 8/9] interconnect: imx: configure NoC mode/prioriry/ext_control Peng Fan (OSS)
2022-06-16  7:33   ` Peng Fan (OSS)
2022-06-28 17:57   ` Georgi Djakov
2022-06-28 17:57     ` Georgi Djakov
2022-07-02 12:41     ` Peng Fan [this message]
2022-07-02 12:41       ` Peng Fan
2022-06-29 15:14   ` Lucas Stach
2022-06-29 15:14     ` Lucas Stach
2022-07-02 12:50     ` Peng Fan
2022-07-02 12:50       ` Peng Fan
2022-06-16  7:33 ` [PATCH V2 9/9] interconnect: imx: Add platform driver for imx8mp Peng Fan (OSS)
2022-06-16  7:33   ` Peng Fan (OSS)
2022-06-28 17:58   ` Georgi Djakov
2022-06-28 17:58     ` Georgi Djakov
2022-06-29 15:17   ` Lucas Stach
2022-06-29 15:17     ` Lucas Stach
2022-07-02 12:51     ` Peng Fan
2022-07-02 12:51       ` Peng Fan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DU0PR04MB94173A39251811928E28A5E788BC9@DU0PR04MB9417.eurprd04.prod.outlook.com \
    --to=peng.fan@nxp.com \
    --cc=Markus.Niebel@ew.tq-group.com \
    --cc=abailon@baylibre.com \
    --cc=abel.vesa@nxp.com \
    --cc=abelvesa@kernel.org \
    --cc=aford173@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=djakov@kernel.org \
    --cc=festevam@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=l.stach@pengutronix.de \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=marex@denx.de \
    --cc=paul.elder@ideasonboard.com \
    --cc=peng.fan@oss.nxp.com \
    --cc=robh+dt@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.