mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
pmdomain providers:
- imx: Remove incorrect reset/clock mask for 8mq vpu - rockchip: Fix initial state of PM domain -----BEGIN PGP SIGNATURE----- iQJLBAABCgA1FiEEugLDXPmKSktSkQsV/iaEJXNYjCkFAmlzZXoXHHVsZi5oYW5z c29uQGxpbmFyby5vcmcACgkQ/iaEJXNYjCl2MQ/9ENVi3Us1n2Uk6hBI9FC8l1I8 JHtk7Oy8K+QYcenHU9Fevcgb/7HtR2XsugBu3Xuvn8jHGmdQM0ldCBoLDGamTvJX oUVjXNAW5Gh+M5OA5dnjt+kh0Nut7WjdAupdVlQwydD0mykakdp845Sc6PquqcrE SVFlElvmyfdKwbB+Quj4q49gJtEqqq9EKhZ2IxHTLC/uL/NdZV8vZSTsHe5V0s4q ofSPHtnNI8CfGPFCGWw5/DoFukPCboSbr/0T0qieDpRTyFee0HecdIFyyLSyLmAt +Z1LIaD+GLkMStLU25Klh7c08MPMD2vUYU2u2or1V5KTw7xU/mChzClTKYGBobce QC/HrniQKqJ5hJlPsMXJk0CurEkDt3/VoBj9DXkCqVGJSHVkg1zUB30Z/9IyKE9l GhYpVDBWS4lG9ABHo8uLXdH9T7/+dMioDUTs4QkoAc4NSygK4gLRpaMV6yk1dPdh gMEzzkFdhV+BpMHl83HGkTujhHpL9lHDcHYKFDqPNmMcuTzR9htQfSFlmrQjF6Nd t9sZ8PiK8JN8QLPNGK7o4amoAZ6o0FpEw7PU5oYDX+2mAHHwanNhJV/vQVDZb3pw CfurtSwV3blgfSt2ytlRwUZtDIIyFiu1bOdU03oup+Y2b+/yGw4IuK7REcUVHl7k ZRhWyLRYlxQ3omHcVvo= =yDKM -----END PGP SIGNATURE----- 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:
commit
9731fa48be
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user