summaryrefslogtreecommitdiffstats
path: root/drivers/pmdomain
diff options
context:
space:
mode:
authorDario Binacchi <dario.binacchi@amarulasolutions.com>2024-08-25 16:34:01 +0200
committerUlf Hansson <ulf.hansson@linaro.org>2024-09-13 12:45:39 +0200
commit28717ec8b948eedca5855ac4f587b45bcb1d57e5 (patch)
treedabd2e37c3ae7badf8dab2410c51d3e19f32c69c /drivers/pmdomain
parentpmdomain: imx93-pd: replace dev_err() with dev_err_probe() (diff)
downloadlinux-28717ec8b948eedca5855ac4f587b45bcb1d57e5.tar.xz
linux-28717ec8b948eedca5855ac4f587b45bcb1d57e5.zip
pmdomain: imx93-pd: don't unprepare clocks on driver remove
The removed code was added to handle the case where the power domain is already on during the driver's probing. In this use case, the "is_off" parameter is passed as false to pm_genpd_init() to inform it not to call the power_on() callback, as it's unnecessary to perform the hardware power-on procedure since the power domain is already on. Therefore, with the call to clk_bulk_prepare_enable() by probe(), the system is in the same operational state as when "is_off" is passed as true after the power_on() callback execution: probe() -> is_off == true -> clk_bulk_prepare_enable() called by power_on() probe() -> is_off == false -> clk_bulk_prepare_enable() called by probe() Reaching the same logical and operational state, it follows that upon driver removal, there is no need to perform different actions depending on the power domain's on/off state during probing. Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Link: https://lore.kernel.org/r/20240825143428.556439-2-dario.binacchi@amarulasolutions.com Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/pmdomain')
-rw-r--r--drivers/pmdomain/imx/imx93-pd.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/drivers/pmdomain/imx/imx93-pd.c b/drivers/pmdomain/imx/imx93-pd.c
index 44daecbe5cc3..fb53a8e359bc 100644
--- a/drivers/pmdomain/imx/imx93-pd.c
+++ b/drivers/pmdomain/imx/imx93-pd.c
@@ -90,9 +90,6 @@ static void imx93_pd_remove(struct platform_device *pdev)
struct device *dev = &pdev->dev;
struct device_node *np = dev->of_node;
- if (!domain->init_off)
- clk_bulk_disable_unprepare(domain->num_clks, domain->clks);
-
of_genpd_del_provider(np);
pm_genpd_remove(&domain->genpd);
}