All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nava kishore Manne <navam@xilinx.com>
To: Tom Rix <trix@redhat.com>, "mdf@kernel.org" <mdf@kernel.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	Michal Simek <michals@xilinx.com>,
	"linux-fpga@vger.kernel.org" <linux-fpga@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>
Cc: git <git@xilinx.com>,
	"chinnikishore369@gmail.com" <chinnikishore369@gmail.com>
Subject: RE: [PATCH 2/2] fpga: Add support for Xilinx DFX AXI Shutdown manager
Date: Tue, 19 Jan 2021 06:16:50 +0000	[thread overview]
Message-ID: <MWHPR02MB26232753E624335632BCE511C2A30@MWHPR02MB2623.namprd02.prod.outlook.com> (raw)
In-Reply-To: <2dc469ae-cdf4-0774-c786-7dd01c4914c9@redhat.com>

Hi Tom,

	Thanks for the review.
Please find my response inline.

> -----Original Message-----
> From: Tom Rix <trix@redhat.com>
> Sent: Friday, January 15, 2021 11:56 PM
> To: Nava kishore Manne <navam@xilinx.com>; mdf@kernel.org;
> robh+dt@kernel.org; Michal Simek <michals@xilinx.com>; linux-
> fpga@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-
> kernel@lists.infradead.org; linux-kernel@vger.kernel.org
> Cc: git <git@xilinx.com>; chinnikishore369@gmail.com
> Subject: Re: [PATCH 2/2] fpga: Add support for Xilinx DFX AXI Shutdown
> manager
> 
> 
> On 1/14/21 5:34 PM, Nava kishore Manne wrote:
> > This patch adds support for Xilinx Dynamic Function eXchange(DFX) AXI
> > shutdown manager IP. It can be used to safely handling the AXI traffic
> > on a Reconfigurable Partition when it is undergoing dynamic
> > reconfiguration and there by preventing system deadlock that may occur
> > if AXI transactions are interrupted during reconfiguration.
> >
> > PR-Decoupler and AXI shutdown manager are completely different IPs.
> > But both the IP registers are compatible and also both belong to the
> > same sub-system (fpga-bridge).So using same driver for both IP's.
> >
> > Signed-off-by: Nava kishore Manne <nava.manne@xilinx.com>
> > ---
> >  drivers/fpga/xilinx-pr-decoupler.c | 35
> > ++++++++++++++++++++++++++----
> 
> It looks like the copyright is wrong, please review spelling of Xilix
> 
>  * Copyright (c) 2017, Xilix Inc
> 
Will fix in v2.
> 
> >  1 file changed, 31 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/fpga/xilinx-pr-decoupler.c
> > b/drivers/fpga/xilinx-pr-decoupler.c
> > index 7d69af230567..c95f3d065ccb 100644
> > --- a/drivers/fpga/xilinx-pr-decoupler.c
> > +++ b/drivers/fpga/xilinx-pr-decoupler.c
> > @@ -19,10 +19,15 @@
> >  #define CTRL_OFFSET		0
> >
> >  struct xlnx_pr_decoupler_data {
> > +	const struct xlnx_config_data *ipconfig;
> >  	void __iomem *io_base;
> >  	struct clk *clk;
> >  };
> >
> > +struct xlnx_config_data {
> > +	char *name;
> > +};
> 
> Move xlnx_config_data above xlnx_pr_decouple_data.
> 
Will fix in v2.

> could you 'const' char *name ?
> 
Will fix in v2.
> > +
> >  static inline void xlnx_pr_decoupler_write(struct xlnx_pr_decoupler_data
> *d,
> >  					   u32 offset, u32 val)
> >  {
> > @@ -76,15 +81,28 @@ static const struct fpga_bridge_ops
> xlnx_pr_decoupler_br_ops = {
> >  	.enable_show = xlnx_pr_decoupler_enable_show,  };
> >
> > +static const struct xlnx_config_data decoupler_config = {
> > +	.name = "Xilinx PR Decoupler",
> > +};
> > +
> > +static const struct xlnx_config_data shutdown_config = {
> > +	.name = "Xilinx DFX AXI shutdown mgr",
> 
> To be consistent with decoupler name,
> 
> shutdown mgr -> Shutdown Manager
> 

Will fix in v2.

> > +};
> > +
> >  static const struct of_device_id xlnx_pr_decoupler_of_match[] = {
> > -	{ .compatible = "xlnx,pr-decoupler-1.00", },
> > -	{ .compatible = "xlnx,pr-decoupler", },
> > +	{ .compatible = "xlnx,pr-decoupler-1.00", .data = &decoupler_config
> },
> > +	{ .compatible = "xlnx,pr-decoupler", .data = &decoupler_config },
> > +	{ .compatible = "xlnx,dfx-axi-shutdown-manager-1.00",
> > +					.data = &shutdown_config },
> > +	{ .compatible = "xlnx,dfx-axi-shutdown-manager",
> > +					.data = &shutdown_config },
> >  	{},
> >  };
> >  MODULE_DEVICE_TABLE(of, xlnx_pr_decoupler_of_match);
> >
> >  static int xlnx_pr_decoupler_probe(struct platform_device *pdev)  {
> > +	struct device_node *np = pdev->dev.of_node;
> >  	struct xlnx_pr_decoupler_data *priv;
> >  	struct fpga_bridge *br;
> >  	int err;
> > @@ -94,6 +112,14 @@ static int xlnx_pr_decoupler_probe(struct
> platform_device *pdev)
> >  	if (!priv)
> >  		return -ENOMEM;
> >
> > +	if (np) {
> > +		const struct of_device_id *match;
> > +
> > +		match = of_match_node(xlnx_pr_decoupler_of_match, np);
> > +		if (match && match->data)
> > +			priv->ipconfig = match->data;
> > +	}
> > +
> >  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> >  	priv->io_base = devm_ioremap_resource(&pdev->dev, res);
> >  	if (IS_ERR(priv->io_base))
> > @@ -114,7 +140,7 @@ static int xlnx_pr_decoupler_probe(struct
> > platform_device *pdev)
> >
> >  	clk_disable(priv->clk);
> >
> > -	br = devm_fpga_bridge_create(&pdev->dev, "Xilinx PR Decoupler",
> > +	br = devm_fpga_bridge_create(&pdev->dev, priv->ipconfig->name,
> >  				     &xlnx_pr_decoupler_br_ops, priv);
> >  	if (!br) {
> >  		err = -ENOMEM;
> > @@ -125,7 +151,8 @@ static int xlnx_pr_decoupler_probe(struct
> > platform_device *pdev)
> >
> >  	err = fpga_bridge_register(br);
> >  	if (err) {
> > -		dev_err(&pdev->dev, "unable to register Xilinx PR
> Decoupler");
> > +		dev_err(&pdev->dev, "unable to register %s",
> > +			priv->ipconfig->name);
> >  		goto err_clk;
> >  	}
> 
> Look at XILINX_PR_DECOUPLER entry in Kconfig, maybe add something like
> 
> help
> 
>   Say Y to enable drivers for the  ... Decoupler or DFX AIX Shutdown Manager
>

Will in v2.

Regards,
Navakishore.

WARNING: multiple messages have this Message-ID (diff)
From: Nava kishore Manne <navam@xilinx.com>
To: Tom Rix <trix@redhat.com>, "mdf@kernel.org" <mdf@kernel.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	Michal Simek <michals@xilinx.com>,
	 "linux-fpga@vger.kernel.org" <linux-fpga@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>
Cc: git <git@xilinx.com>,
	"chinnikishore369@gmail.com" <chinnikishore369@gmail.com>
Subject: RE: [PATCH 2/2] fpga: Add support for Xilinx DFX AXI Shutdown manager
Date: Tue, 19 Jan 2021 06:16:50 +0000	[thread overview]
Message-ID: <MWHPR02MB26232753E624335632BCE511C2A30@MWHPR02MB2623.namprd02.prod.outlook.com> (raw)
In-Reply-To: <2dc469ae-cdf4-0774-c786-7dd01c4914c9@redhat.com>

Hi Tom,

	Thanks for the review.
Please find my response inline.

> -----Original Message-----
> From: Tom Rix <trix@redhat.com>
> Sent: Friday, January 15, 2021 11:56 PM
> To: Nava kishore Manne <navam@xilinx.com>; mdf@kernel.org;
> robh+dt@kernel.org; Michal Simek <michals@xilinx.com>; linux-
> fpga@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-
> kernel@lists.infradead.org; linux-kernel@vger.kernel.org
> Cc: git <git@xilinx.com>; chinnikishore369@gmail.com
> Subject: Re: [PATCH 2/2] fpga: Add support for Xilinx DFX AXI Shutdown
> manager
> 
> 
> On 1/14/21 5:34 PM, Nava kishore Manne wrote:
> > This patch adds support for Xilinx Dynamic Function eXchange(DFX) AXI
> > shutdown manager IP. It can be used to safely handling the AXI traffic
> > on a Reconfigurable Partition when it is undergoing dynamic
> > reconfiguration and there by preventing system deadlock that may occur
> > if AXI transactions are interrupted during reconfiguration.
> >
> > PR-Decoupler and AXI shutdown manager are completely different IPs.
> > But both the IP registers are compatible and also both belong to the
> > same sub-system (fpga-bridge).So using same driver for both IP's.
> >
> > Signed-off-by: Nava kishore Manne <nava.manne@xilinx.com>
> > ---
> >  drivers/fpga/xilinx-pr-decoupler.c | 35
> > ++++++++++++++++++++++++++----
> 
> It looks like the copyright is wrong, please review spelling of Xilix
> 
>  * Copyright (c) 2017, Xilix Inc
> 
Will fix in v2.
> 
> >  1 file changed, 31 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/fpga/xilinx-pr-decoupler.c
> > b/drivers/fpga/xilinx-pr-decoupler.c
> > index 7d69af230567..c95f3d065ccb 100644
> > --- a/drivers/fpga/xilinx-pr-decoupler.c
> > +++ b/drivers/fpga/xilinx-pr-decoupler.c
> > @@ -19,10 +19,15 @@
> >  #define CTRL_OFFSET		0
> >
> >  struct xlnx_pr_decoupler_data {
> > +	const struct xlnx_config_data *ipconfig;
> >  	void __iomem *io_base;
> >  	struct clk *clk;
> >  };
> >
> > +struct xlnx_config_data {
> > +	char *name;
> > +};
> 
> Move xlnx_config_data above xlnx_pr_decouple_data.
> 
Will fix in v2.

> could you 'const' char *name ?
> 
Will fix in v2.
> > +
> >  static inline void xlnx_pr_decoupler_write(struct xlnx_pr_decoupler_data
> *d,
> >  					   u32 offset, u32 val)
> >  {
> > @@ -76,15 +81,28 @@ static const struct fpga_bridge_ops
> xlnx_pr_decoupler_br_ops = {
> >  	.enable_show = xlnx_pr_decoupler_enable_show,  };
> >
> > +static const struct xlnx_config_data decoupler_config = {
> > +	.name = "Xilinx PR Decoupler",
> > +};
> > +
> > +static const struct xlnx_config_data shutdown_config = {
> > +	.name = "Xilinx DFX AXI shutdown mgr",
> 
> To be consistent with decoupler name,
> 
> shutdown mgr -> Shutdown Manager
> 

Will fix in v2.

> > +};
> > +
> >  static const struct of_device_id xlnx_pr_decoupler_of_match[] = {
> > -	{ .compatible = "xlnx,pr-decoupler-1.00", },
> > -	{ .compatible = "xlnx,pr-decoupler", },
> > +	{ .compatible = "xlnx,pr-decoupler-1.00", .data = &decoupler_config
> },
> > +	{ .compatible = "xlnx,pr-decoupler", .data = &decoupler_config },
> > +	{ .compatible = "xlnx,dfx-axi-shutdown-manager-1.00",
> > +					.data = &shutdown_config },
> > +	{ .compatible = "xlnx,dfx-axi-shutdown-manager",
> > +					.data = &shutdown_config },
> >  	{},
> >  };
> >  MODULE_DEVICE_TABLE(of, xlnx_pr_decoupler_of_match);
> >
> >  static int xlnx_pr_decoupler_probe(struct platform_device *pdev)  {
> > +	struct device_node *np = pdev->dev.of_node;
> >  	struct xlnx_pr_decoupler_data *priv;
> >  	struct fpga_bridge *br;
> >  	int err;
> > @@ -94,6 +112,14 @@ static int xlnx_pr_decoupler_probe(struct
> platform_device *pdev)
> >  	if (!priv)
> >  		return -ENOMEM;
> >
> > +	if (np) {
> > +		const struct of_device_id *match;
> > +
> > +		match = of_match_node(xlnx_pr_decoupler_of_match, np);
> > +		if (match && match->data)
> > +			priv->ipconfig = match->data;
> > +	}
> > +
> >  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> >  	priv->io_base = devm_ioremap_resource(&pdev->dev, res);
> >  	if (IS_ERR(priv->io_base))
> > @@ -114,7 +140,7 @@ static int xlnx_pr_decoupler_probe(struct
> > platform_device *pdev)
> >
> >  	clk_disable(priv->clk);
> >
> > -	br = devm_fpga_bridge_create(&pdev->dev, "Xilinx PR Decoupler",
> > +	br = devm_fpga_bridge_create(&pdev->dev, priv->ipconfig->name,
> >  				     &xlnx_pr_decoupler_br_ops, priv);
> >  	if (!br) {
> >  		err = -ENOMEM;
> > @@ -125,7 +151,8 @@ static int xlnx_pr_decoupler_probe(struct
> > platform_device *pdev)
> >
> >  	err = fpga_bridge_register(br);
> >  	if (err) {
> > -		dev_err(&pdev->dev, "unable to register Xilinx PR
> Decoupler");
> > +		dev_err(&pdev->dev, "unable to register %s",
> > +			priv->ipconfig->name);
> >  		goto err_clk;
> >  	}
> 
> Look at XILINX_PR_DECOUPLER entry in Kconfig, maybe add something like
> 
> help
> 
>   Say Y to enable drivers for the  ... Decoupler or DFX AIX Shutdown Manager
>

Will in v2.

Regards,
Navakishore.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-01-19  6:28 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-15  1:34 [PATCH 1/2] dt-bindings: fpga: Add compatible value for Xilinx DFX AXI shutdown manger Nava kishore Manne
2021-01-15  1:34 ` Nava kishore Manne
2021-01-15  1:34 ` [PATCH 2/2] fpga: Add support for Xilinx DFX AXI Shutdown manager Nava kishore Manne
2021-01-15  1:34   ` Nava kishore Manne
2021-01-15 18:26   ` Tom Rix
2021-01-15 18:26     ` Tom Rix
2021-01-19  6:16     ` Nava kishore Manne [this message]
2021-01-19  6:16       ` Nava kishore Manne
2021-01-16  2:58   ` Moritz Fischer
2021-01-16  2:58     ` Moritz Fischer
2021-01-19  6:34     ` Nava kishore Manne
2021-01-19  6:34       ` Nava kishore Manne
2021-01-22  5:15       ` Moritz Fischer
2021-01-22  5:15         ` Moritz Fischer
2021-01-27  8:46         ` Nava kishore Manne
2021-01-27  8:46           ` Nava kishore Manne
2021-01-15 18:07 ` [PATCH 1/2] dt-bindings: fpga: Add compatible value for Xilinx DFX AXI shutdown manger Tom Rix
2021-01-15 18:07   ` Tom Rix
2021-01-19  6:09   ` Nava kishore Manne
2021-01-19  6:09     ` Nava kishore Manne

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=MWHPR02MB26232753E624335632BCE511C2A30@MWHPR02MB2623.namprd02.prod.outlook.com \
    --to=navam@xilinx.com \
    --cc=chinnikishore369@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=git@xilinx.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-fpga@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mdf@kernel.org \
    --cc=michals@xilinx.com \
    --cc=robh+dt@kernel.org \
    --cc=trix@redhat.com \
    /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.