Commit 9731fa48 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
parents d4be90cc 861d21c4
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -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),
	},
};

+10 −0
Original line number Diff line number Diff line
@@ -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;