mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
soc: rockchip: power-domain: export pd on/off and pd status
Some special applications of video may require: rockchip_pmu_pd_on(dev)---> force power on pd rockchip_pmu_pd_off(dev)---> force power down pd rockchip_pmu_pd_is_on(dev)---> pd status Change-Id: I264d76559aef0b0540130bf29a4635a3f5380a7c Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
This commit is contained in:
@@ -499,6 +499,65 @@ static int rockchip_pd_power_off(struct generic_pm_domain *domain)
|
||||
return rockchip_pd_power(pd, false);
|
||||
}
|
||||
|
||||
int rockchip_pmu_pd_on(struct device *dev)
|
||||
{
|
||||
struct generic_pm_domain *genpd;
|
||||
struct rockchip_pm_domain *pd;
|
||||
|
||||
if (IS_ERR_OR_NULL(dev))
|
||||
return -EINVAL;
|
||||
|
||||
if (IS_ERR_OR_NULL(dev->pm_domain))
|
||||
return -EINVAL;
|
||||
|
||||
genpd = pd_to_genpd(dev->pm_domain);
|
||||
pd = to_rockchip_pd(genpd);
|
||||
|
||||
return rockchip_pd_power(pd, true);
|
||||
}
|
||||
EXPORT_SYMBOL(rockchip_pmu_pd_on);
|
||||
|
||||
int rockchip_pmu_pd_off(struct device *dev)
|
||||
{
|
||||
struct generic_pm_domain *genpd;
|
||||
struct rockchip_pm_domain *pd;
|
||||
|
||||
if (IS_ERR_OR_NULL(dev))
|
||||
return -EINVAL;
|
||||
|
||||
if (IS_ERR_OR_NULL(dev->pm_domain))
|
||||
return -EINVAL;
|
||||
|
||||
genpd = pd_to_genpd(dev->pm_domain);
|
||||
pd = to_rockchip_pd(genpd);
|
||||
|
||||
return rockchip_pd_power(pd, false);
|
||||
}
|
||||
EXPORT_SYMBOL(rockchip_pmu_pd_off);
|
||||
|
||||
bool rockchip_pmu_pd_is_on(struct device *dev)
|
||||
{
|
||||
struct generic_pm_domain *genpd;
|
||||
struct rockchip_pm_domain *pd;
|
||||
bool is_on;
|
||||
|
||||
if (IS_ERR_OR_NULL(dev))
|
||||
return false;
|
||||
|
||||
if (IS_ERR_OR_NULL(dev->pm_domain))
|
||||
return false;
|
||||
|
||||
genpd = pd_to_genpd(dev->pm_domain);
|
||||
pd = to_rockchip_pd(genpd);
|
||||
|
||||
rockchip_pmu_lock(pd);
|
||||
is_on = rockchip_pmu_domain_is_on(pd);
|
||||
rockchip_pmu_unlock(pd);
|
||||
|
||||
return is_on;
|
||||
}
|
||||
EXPORT_SYMBOL(rockchip_pmu_pd_is_on);
|
||||
|
||||
static int rockchip_pd_attach_dev(struct generic_pm_domain *genpd,
|
||||
struct device *dev)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user