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
next prev parent 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: linkBe 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.