Skip to content

Commit

Permalink
amba: Add support for attach/detach of PM domains
Browse files Browse the repository at this point in the history
AMBA devices may on some SoCs resides in PM domains. To be able to
manage these devices from there, let's try to attach devices to their
corresponding PM domain during the probe phase.

To reverse these actions at the remove phase, we try to detach the
device from its PM domain.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Kevin Hilman <khilman@linaro.org>
Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Ulf Hansson authored and Rafael J. Wysocki committed Sep 22, 2014
1 parent 676e7c2 commit 207f1a2
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion drivers/amba/bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,9 +182,15 @@ static int amba_probe(struct device *dev)
int ret;

do {
ret = dev_pm_domain_attach(dev, true);
if (ret == -EPROBE_DEFER)
break;

ret = amba_get_enable_pclk(pcdev);
if (ret)
if (ret) {
dev_pm_domain_detach(dev, true);
break;
}

pm_runtime_get_noresume(dev);
pm_runtime_set_active(dev);
Expand All @@ -199,6 +205,7 @@ static int amba_probe(struct device *dev)
pm_runtime_put_noidle(dev);

amba_put_disable_pclk(pcdev);
dev_pm_domain_detach(dev, true);
} while (0);

return ret;
Expand All @@ -220,6 +227,7 @@ static int amba_remove(struct device *dev)
pm_runtime_put_noidle(dev);

amba_put_disable_pclk(pcdev);
dev_pm_domain_detach(dev, true);

return ret;
}
Expand Down

0 comments on commit 207f1a2

Please sign in to comment.