|
@@ -15,6 +15,7 @@
|
|
|
#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"
|
|
@@ -449,6 +450,10 @@ 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;
|
|
@@ -490,6 +495,8 @@ 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);
|
|
|
|