arm: tegra: add api to remove device from domain
[linux-3.10.git] / arch / arm / mach-tegra / pm_domains.c
index 83d10b0..e5fcada 100644 (file)
@@ -208,6 +208,8 @@ static struct domain_client client_list[] = {
        { .name = "tegra30-hda", .domain = &tegra_mc_chain_a.gpd },
        { .name = "tegra-apbdma", .domain = &tegra_mc_chain_b.gpd },
        { .name = "tegra-otg", .domain = &tegra_mc_chain_b.gpd },
+       { .name = "tegra-ehci", .domain = &tegra_mc_chain_b.gpd },
+       { .name = "tegra-xhci", .domain = &tegra_mc_chain_b.gpd },
        { .name = "host1x", .domain = &tegra_mc_chain_b.gpd },
        { .name = "tsec", .domain = &tegra_mc_chain_b.gpd },
        { .name = "nvavp", .domain = &tegra_mc_chain_b.gpd },
@@ -225,6 +227,8 @@ static struct domain_client client_list[] = {
        { .name = "tegra30-hda", .domain = &tegra_mc_clk.gpd },
        { .name = "tegra-apbdma", .domain = &tegra_mc_clk.gpd },
        { .name = "tegra-otg", .domain = &tegra_mc_clk.gpd },
+       { .name = "tegra-ehci", .domain = &tegra_mc_clk.gpd },
+       { .name = "tegra-xhci", .domain = &tegra_mc_clk.gpd },
        { .name = "host1x", .domain = &tegra_mc_clk.gpd },
        { .name = "tsec", .domain = &tegra_mc_clk.gpd },
        { .name = "nvavp", .domain = &tegra_mc_clk.gpd },
@@ -276,6 +280,15 @@ void tegra_pd_add_device(struct device *dev)
 }
 EXPORT_SYMBOL(tegra_pd_add_device);
 
+void tegra_pd_remove_device(struct device *dev)
+{
+       struct generic_pm_domain *genpd = dev_to_genpd(dev);
+
+       if (!IS_ERR_OR_NULL(genpd))
+               pm_genpd_remove_device(genpd, dev);
+}
+EXPORT_SYMBOL(tegra_pd_remove_device);
+
 void tegra_pd_add_sd(struct generic_pm_domain *sd)
 {
        struct generic_pm_domain *master = tegra_pd_get_domain(sd->name);