clk: qcom: gdsc: Don't override existing gdsc pd functions
authorJordan Crouse <jcrouse@codeaurora.org>
Mon, 26 Nov 2018 17:20:31 +0000 (10:20 -0700)
committerStephen Boyd <sboyd@kernel.org>
Wed, 28 Nov 2018 00:54:04 +0000 (16:54 -0800)
In extreme cases an individual gdsc may wish to override the
power domain enable or disable callback functions for their own
purposes. Only set the generic gdsc callback if the function pointers
are not already set.

Acked-by: Rajendra Nayak <rnayak@codeaurora.org>
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/qcom/gdsc.c

index a077133..dd63aa3 100644 (file)
@@ -350,8 +350,10 @@ static int gdsc_init(struct gdsc *sc)
        else
                gdsc_clear_mem_on(sc);
 
-       sc->pd.power_off = gdsc_disable;
-       sc->pd.power_on = gdsc_enable;
+       if (!sc->pd.power_off)
+               sc->pd.power_off = gdsc_disable;
+       if (!sc->pd.power_on)
+               sc->pd.power_on = gdsc_enable;
        pm_genpd_init(&sc->pd, NULL, !on);
 
        return 0;