OSDN Git Service

Revert "rpmsg: core: add support to power domains for devices"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Sep 2018 11:53:39 +0000 (13:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 29 Sep 2018 09:55:57 +0000 (02:55 -0700)
This reverts commit e5d9ae0077a5cf336d298002959dc0c8dcfe7b89 which is
commit fe782affd0f440a4e60e2cc81b8f2eccb2923113 upstream

Rafael reports that this patch causes problems:
> -rc2 looks good. There is a problem on dragonboard during boot that was
> introduced in v4.14.71 that I didn't notice last week. We'll bisect it
> and report back later this week. dragonboard on the other branches (4.9,
> 4.18, mainline) looks fine.

As Dan pointed out, during validation, we have bisected this issue on
a dragonboard 410c (can't find root device) to the following commit
for v4.14:

[1ed3a9307230] rpmsg: core: add support to power domains for devices

There is an on-going discussion on "[PATCH] rpmsg: core: add support
to power domains for devices" about this patch having other
dependencies and breaking something else on v4.14 as well.

so drop it.

Reported-by: Rafael Tinoco <rafael.tinoco@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/rpmsg/rpmsg_core.c

index 8122807..b714a54 100644 (file)
@@ -15,7 +15,6 @@
 #include <linux/module.h>
 #include <linux/rpmsg.h>
 #include <linux/of_device.h>
-#include <linux/pm_domain.h>
 #include <linux/slab.h>
 
 #include "rpmsg_internal.h"
@@ -450,10 +449,6 @@ static int rpmsg_dev_probe(struct device *dev)
        struct rpmsg_endpoint *ept = NULL;
        int err;
 
-       err = dev_pm_domain_attach(dev, true);
-       if (err)
-               goto out;
-
        if (rpdrv->callback) {
                strncpy(chinfo.name, rpdev->id.name, RPMSG_NAME_SIZE);
                chinfo.src = rpdev->src;
@@ -495,8 +490,6 @@ static int rpmsg_dev_remove(struct device *dev)
 
        rpdrv->remove(rpdev);
 
-       dev_pm_domain_detach(dev, true);
-
        if (rpdev->ept)
                rpmsg_destroy_ept(rpdev->ept);