mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 07:47:50 +00:00
Merge tag 'pmdomain-v6.19-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm
Pull pmdomain fixes from Ulf Hansson: - imx: Remove incorrect reset/clock mask for 8mq vpu - rockchip: Fix initial state of PM domain * tag 'pmdomain-v6.19-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm: pmdomain:rockchip: Fix init genpd as GENPD_STATE_ON before regulator ready pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu
This commit is contained in:
@@ -846,22 +846,25 @@ static int imx8mq_vpu_power_notifier(struct notifier_block *nb,
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* For i.MX8MQ, the ADB in the VPUMIX domain has no separate reset and clock
|
||||
* enable bits, but is ungated and reset together with the VPUs.
|
||||
* Resetting G1 or G2 separately may led to system hang.
|
||||
* Remove the rst_mask and clk_mask from the domain data of G1 and G2,
|
||||
* Let imx8mq_vpu_power_notifier() do really vpu reset.
|
||||
*/
|
||||
static const struct imx8m_blk_ctrl_domain_data imx8mq_vpu_blk_ctl_domain_data[] = {
|
||||
[IMX8MQ_VPUBLK_PD_G1] = {
|
||||
.name = "vpublk-g1",
|
||||
.clk_names = (const char *[]){ "g1", },
|
||||
.num_clks = 1,
|
||||
.gpc_name = "g1",
|
||||
.rst_mask = BIT(1),
|
||||
.clk_mask = BIT(1),
|
||||
},
|
||||
[IMX8MQ_VPUBLK_PD_G2] = {
|
||||
.name = "vpublk-g2",
|
||||
.clk_names = (const char *[]){ "g2", },
|
||||
.num_clks = 1,
|
||||
.gpc_name = "g2",
|
||||
.rst_mask = BIT(0),
|
||||
.clk_mask = BIT(0),
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -879,6 +879,16 @@ static int rockchip_pm_add_one_domain(struct rockchip_pmu *pmu,
|
||||
pd->genpd.name = pd->info->name;
|
||||
else
|
||||
pd->genpd.name = kbasename(node->full_name);
|
||||
|
||||
/*
|
||||
* power domain's needing a regulator should default to off, since
|
||||
* the regulator state is unknown at probe time. Also the regulator
|
||||
* state cannot be checked, since that usually requires IP needing
|
||||
* (a different) power domain.
|
||||
*/
|
||||
if (pd->info->need_regulator)
|
||||
rockchip_pd_power(pd, false);
|
||||
|
||||
pd->genpd.power_off = rockchip_pd_power_off;
|
||||
pd->genpd.power_on = rockchip_pd_power_on;
|
||||
pd->genpd.attach_dev = rockchip_pd_attach_dev;
|
||||
|
||||
Reference in New Issue
Block a user