Messages in this thread Patch in this message | | | From | Dmitry Osipenko <> | Subject | [PATCH v1 1/2] soc/tegra: pmc: Don't sync core domain if it's missing in device-tree | Date | Wed, 2 Jun 2021 02:10:02 +0300 |
| |
Older device-trees don't have core domain node. In this case we shouldn't mark the domain as synced, allowing to begin core voltage scaling.
Signed-off-by: Dmitry Osipenko <digetx@gmail.com> --- drivers/soc/tegra/pmc.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c index d8eee285fd58..d317532130c3 100644 --- a/drivers/soc/tegra/pmc.c +++ b/drivers/soc/tegra/pmc.c @@ -431,6 +431,7 @@ struct tegra_pmc { struct notifier_block clk_nb; bool core_domain_state_synced; + bool core_domain_registered; }; static struct tegra_pmc *pmc = &(struct tegra_pmc) { @@ -1382,6 +1383,8 @@ static int tegra_pmc_core_pd_add(struct tegra_pmc *pmc, struct device_node *np) goto remove_genpd; } + pmc->core_domain_registered = true; + return 0; remove_genpd: @@ -3798,6 +3801,14 @@ static void tegra_pmc_sync_state(struct device *dev) { int err; + /* + * Older device-trees don't have core PD, and thus, there are + * no dependencies that will block the state syncing. We shouldn't + * mark the domain as synced in this case. + */ + if (!pmc->core_domain_registered) + return; + pmc->core_domain_state_synced = true; /* this is a no-op if core regulator isn't used */ -- 2.30.2
| |