diff mbox series

Revert "drivers: bus: simple-pm-bus: Add support for probing simple bus only devices"

Message ID 20220202195705.3598798-1-khilman@baylibre.com
State New
Headers show
Series Revert "drivers: bus: simple-pm-bus: Add support for probing simple bus only devices" | expand

Commit Message

Kevin Hilman Feb. 2, 2022, 7:57 p.m. UTC
This reverts commit d5f13bbb51046537b2c2b9868177fb8fe8a6a6e9.

This change related to fw_devlink was backported to v5.10 but has
severaly other dependencies that were not backported.  As discussed
with the original author, the best approach for v5.10 is to revert.

Link: https://lore.kernel.org/linux-omap/7hk0efmfzo.fsf@baylibre.com
Cc: Saravana Kannan <saravanak@google.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
---
 drivers/bus/simple-pm-bus.c | 39 +------------------------------------
 1 file changed, 1 insertion(+), 38 deletions(-)

Comments

Saravana Kannan Feb. 2, 2022, 8:06 p.m. UTC | #1
On Wed, Feb 2, 2022 at 11:57 AM Kevin Hilman <khilman@baylibre.com> wrote:
>
> This reverts commit d5f13bbb51046537b2c2b9868177fb8fe8a6a6e9.
>
> This change related to fw_devlink was backported to v5.10 but has
> severaly other dependencies that were not backported.  As discussed
> with the original author, the best approach for v5.10 is to revert.
>
> Link: https://lore.kernel.org/linux-omap/7hk0efmfzo.fsf@baylibre.com
> Cc: Saravana Kannan <saravanak@google.com>
> Signed-off-by: Kevin Hilman <khilman@baylibre.com>

Thanks for getting around to this Kevin. Sorry, I got caught up on
some urgent issues on my end.

Acked-by: Saravana Kannan <saravanak@google.com>

-Saravana

> ---
>  drivers/bus/simple-pm-bus.c | 39 +------------------------------------
>  1 file changed, 1 insertion(+), 38 deletions(-)
>
> diff --git a/drivers/bus/simple-pm-bus.c b/drivers/bus/simple-pm-bus.c
> index 244b8f3b38b4..c5eb46cbf388 100644
> --- a/drivers/bus/simple-pm-bus.c
> +++ b/drivers/bus/simple-pm-bus.c
> @@ -16,33 +16,7 @@
>
>  static int simple_pm_bus_probe(struct platform_device *pdev)
>  {
> -       const struct device *dev = &pdev->dev;
> -       struct device_node *np = dev->of_node;
> -       const struct of_device_id *match;
> -
> -       /*
> -        * Allow user to use driver_override to bind this driver to a
> -        * transparent bus device which has a different compatible string
> -        * that's not listed in simple_pm_bus_of_match. We don't want to do any
> -        * of the simple-pm-bus tasks for these devices, so return early.
> -        */
> -       if (pdev->driver_override)
> -               return 0;
> -
> -       match = of_match_device(dev->driver->of_match_table, dev);
> -       /*
> -        * These are transparent bus devices (not simple-pm-bus matches) that
> -        * have their child nodes populated automatically.  So, don't need to
> -        * do anything more. We only match with the device if this driver is
> -        * the most specific match because we don't want to incorrectly bind to
> -        * a device that has a more specific driver.
> -        */
> -       if (match && match->data) {
> -               if (of_property_match_string(np, "compatible", match->compatible) == 0)
> -                       return 0;
> -               else
> -                       return -ENODEV;
> -       }
> +       struct device_node *np = pdev->dev.of_node;
>
>         dev_dbg(&pdev->dev, "%s\n", __func__);
>
> @@ -56,25 +30,14 @@ static int simple_pm_bus_probe(struct platform_device *pdev)
>
>  static int simple_pm_bus_remove(struct platform_device *pdev)
>  {
> -       const void *data = of_device_get_match_data(&pdev->dev);
> -
> -       if (pdev->driver_override || data)
> -               return 0;
> -
>         dev_dbg(&pdev->dev, "%s\n", __func__);
>
>         pm_runtime_disable(&pdev->dev);
>         return 0;
>  }
>
> -#define ONLY_BUS       ((void *) 1) /* Match if the device is only a bus. */
> -
>  static const struct of_device_id simple_pm_bus_of_match[] = {
>         { .compatible = "simple-pm-bus", },
> -       { .compatible = "simple-bus",   .data = ONLY_BUS },
> -       { .compatible = "simple-mfd",   .data = ONLY_BUS },
> -       { .compatible = "isa",          .data = ONLY_BUS },
> -       { .compatible = "arm,amba-bus", .data = ONLY_BUS },
>         { /* sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(of, simple_pm_bus_of_match);
> --
> 2.34.0
>
Greg KH Feb. 3, 2022, 5:03 p.m. UTC | #2
On Wed, Feb 02, 2022 at 12:06:35PM -0800, Saravana Kannan wrote:
> On Wed, Feb 2, 2022 at 11:57 AM Kevin Hilman <khilman@baylibre.com> wrote:
> >
> > This reverts commit d5f13bbb51046537b2c2b9868177fb8fe8a6a6e9.
> >
> > This change related to fw_devlink was backported to v5.10 but has
> > severaly other dependencies that were not backported.  As discussed
> > with the original author, the best approach for v5.10 is to revert.
> >
> > Link: https://lore.kernel.org/linux-omap/7hk0efmfzo.fsf@baylibre.com
> > Cc: Saravana Kannan <saravanak@google.com>
> > Signed-off-by: Kevin Hilman <khilman@baylibre.com>
> 
> Thanks for getting around to this Kevin. Sorry, I got caught up on
> some urgent issues on my end.
> 
> Acked-by: Saravana Kannan <saravanak@google.com>

Now queued up,t hanks.

greg k-h
diff mbox series

Patch

diff --git a/drivers/bus/simple-pm-bus.c b/drivers/bus/simple-pm-bus.c
index 244b8f3b38b4..c5eb46cbf388 100644
--- a/drivers/bus/simple-pm-bus.c
+++ b/drivers/bus/simple-pm-bus.c
@@ -16,33 +16,7 @@ 
 
 static int simple_pm_bus_probe(struct platform_device *pdev)
 {
-	const struct device *dev = &pdev->dev;
-	struct device_node *np = dev->of_node;
-	const struct of_device_id *match;
-
-	/*
-	 * Allow user to use driver_override to bind this driver to a
-	 * transparent bus device which has a different compatible string
-	 * that's not listed in simple_pm_bus_of_match. We don't want to do any
-	 * of the simple-pm-bus tasks for these devices, so return early.
-	 */
-	if (pdev->driver_override)
-		return 0;
-
-	match = of_match_device(dev->driver->of_match_table, dev);
-	/*
-	 * These are transparent bus devices (not simple-pm-bus matches) that
-	 * have their child nodes populated automatically.  So, don't need to
-	 * do anything more. We only match with the device if this driver is
-	 * the most specific match because we don't want to incorrectly bind to
-	 * a device that has a more specific driver.
-	 */
-	if (match && match->data) {
-		if (of_property_match_string(np, "compatible", match->compatible) == 0)
-			return 0;
-		else
-			return -ENODEV;
-	}
+	struct device_node *np = pdev->dev.of_node;
 
 	dev_dbg(&pdev->dev, "%s\n", __func__);
 
@@ -56,25 +30,14 @@  static int simple_pm_bus_probe(struct platform_device *pdev)
 
 static int simple_pm_bus_remove(struct platform_device *pdev)
 {
-	const void *data = of_device_get_match_data(&pdev->dev);
-
-	if (pdev->driver_override || data)
-		return 0;
-
 	dev_dbg(&pdev->dev, "%s\n", __func__);
 
 	pm_runtime_disable(&pdev->dev);
 	return 0;
 }
 
-#define ONLY_BUS	((void *) 1) /* Match if the device is only a bus. */
-
 static const struct of_device_id simple_pm_bus_of_match[] = {
 	{ .compatible = "simple-pm-bus", },
-	{ .compatible = "simple-bus",	.data = ONLY_BUS },
-	{ .compatible = "simple-mfd",	.data = ONLY_BUS },
-	{ .compatible = "isa",		.data = ONLY_BUS },
-	{ .compatible = "arm,amba-bus",	.data = ONLY_BUS },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, simple_pm_bus_of_match);