public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] cdx: register shutdown callback for cdx controller
@ 2024-10-17 10:32 Abhijit Gangurde
  2024-11-04  0:43 ` Greg KH
  2024-11-11 11:28 ` Agarwal, Nikhil
  0 siblings, 2 replies; 3+ messages in thread
From: Abhijit Gangurde @ 2024-10-17 10:32 UTC (permalink / raw)
  To: gregkh, linux-kernel
  Cc: git, michal.simek, Nipun.Gupta, nikhil.agarwal, Abhijit Gangurde

register shutdown callback for cdx controller platform device
to handle graceful connection closure of rpmsg transport.
Also, handle shutdown of cdx bus device by disabling the bus.

Signed-off-by: Abhijit Gangurde <abhijit.gangurde@amd.com>
---
 drivers/cdx/cdx.c                       | 5 ++++-
 drivers/cdx/controller/cdx_controller.c | 6 ++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/cdx/cdx.c b/drivers/cdx/cdx.c
index 07371cb653d3..655a056bca4e 100644
--- a/drivers/cdx/cdx.c
+++ b/drivers/cdx/cdx.c
@@ -338,8 +338,11 @@ static void cdx_shutdown(struct device *dev)
 {
 	struct cdx_driver *cdx_drv = to_cdx_driver(dev->driver);
 	struct cdx_device *cdx_dev = to_cdx_device(dev);
+	struct cdx_controller *cdx = cdx_dev->cdx;
 
-	if (cdx_drv && cdx_drv->shutdown)
+	if (cdx_dev->is_bus && cdx_dev->enabled && cdx->ops->bus_disable)
+		cdx->ops->bus_disable(cdx, cdx_dev->bus_num);
+	else if (cdx_drv && cdx_drv->shutdown)
 		cdx_drv->shutdown(cdx_dev);
 }
 
diff --git a/drivers/cdx/controller/cdx_controller.c b/drivers/cdx/controller/cdx_controller.c
index 7c1ea5373b12..9aad5a9b328c 100644
--- a/drivers/cdx/controller/cdx_controller.c
+++ b/drivers/cdx/controller/cdx_controller.c
@@ -261,6 +261,11 @@ static void xlnx_cdx_remove(struct platform_device *pdev)
 	kfree(cdx_mcdi);
 }
 
+static void xlnx_cdx_shutdown(struct platform_device *pdev)
+{
+	cdx_destroy_rpmsg(pdev);
+}
+
 static const struct of_device_id cdx_match_table[] = {
 	{.compatible = "xlnx,versal-net-cdx",},
 	{ },
@@ -276,6 +281,7 @@ static struct platform_driver cdx_pdriver = {
 		   },
 	.probe = xlnx_cdx_probe,
 	.remove_new = xlnx_cdx_remove,
+	.shutdown = xlnx_cdx_shutdown,
 };
 
 static int __init cdx_controller_init(void)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/1] cdx: register shutdown callback for cdx controller
  2024-10-17 10:32 [PATCH 1/1] cdx: register shutdown callback for cdx controller Abhijit Gangurde
@ 2024-11-04  0:43 ` Greg KH
  2024-11-11 11:28 ` Agarwal, Nikhil
  1 sibling, 0 replies; 3+ messages in thread
From: Greg KH @ 2024-11-04  0:43 UTC (permalink / raw)
  To: Abhijit Gangurde
  Cc: linux-kernel, git, michal.simek, Nipun.Gupta, nikhil.agarwal

On Thu, Oct 17, 2024 at 04:02:16PM +0530, Abhijit Gangurde wrote:
> register shutdown callback for cdx controller platform device
> to handle graceful connection closure of rpmsg transport.
> Also, handle shutdown of cdx bus device by disabling the bus.

When you say "also" that implies it should be a separate patch, right?

And why send this to me and not to the cdx maintainers?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [PATCH 1/1] cdx: register shutdown callback for cdx controller
  2024-10-17 10:32 [PATCH 1/1] cdx: register shutdown callback for cdx controller Abhijit Gangurde
  2024-11-04  0:43 ` Greg KH
@ 2024-11-11 11:28 ` Agarwal, Nikhil
  1 sibling, 0 replies; 3+ messages in thread
From: Agarwal, Nikhil @ 2024-11-11 11:28 UTC (permalink / raw)
  To: Gangurde, Abhijit, linux-kernel@vger.kernel.org,
	gregkh@linuxfoundation.org
  Cc: git (AMD-Xilinx), Simek, Michal, Gupta, Nipun, Gangurde, Abhijit



> -----Original Message-----
> From: Abhijit Gangurde <abhijit.gangurde@amd.com>
> 
> register shutdown callback for cdx controller platform device to handle graceful
> connection closure of rpmsg transport.
> Also, handle shutdown of cdx bus device by disabling the bus.
> 
> Signed-off-by: Abhijit Gangurde <abhijit.gangurde@amd.com>
> ---
>  drivers/cdx/cdx.c                       | 5 ++++-
>  drivers/cdx/controller/cdx_controller.c | 6 ++++++
>  2 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/cdx/cdx.c b/drivers/cdx/cdx.c index 07371cb653d3..655a056bca4e
> 100644
> --- a/drivers/cdx/cdx.c
> +++ b/drivers/cdx/cdx.c
> @@ -338,8 +338,11 @@ static void cdx_shutdown(struct device *dev)  {
>  	struct cdx_driver *cdx_drv = to_cdx_driver(dev->driver);
>  	struct cdx_device *cdx_dev = to_cdx_device(dev);
> +	struct cdx_controller *cdx = cdx_dev->cdx;
> 
> -	if (cdx_drv && cdx_drv->shutdown)
> +	if (cdx_dev->is_bus && cdx_dev->enabled && cdx->ops->bus_disable)
> +		cdx->ops->bus_disable(cdx, cdx_dev->bus_num);
> +	else if (cdx_drv && cdx_drv->shutdown)
>  		cdx_drv->shutdown(cdx_dev);
Please drop else from here.

Also, as suggested by Greg, please split this patch into 2 separate patches 
for device shutdown and controller shutdown.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-11-11 11:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-17 10:32 [PATCH 1/1] cdx: register shutdown callback for cdx controller Abhijit Gangurde
2024-11-04  0:43 ` Greg KH
2024-11-11 11:28 ` Agarwal, Nikhil

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox