Message ID | 20220706150411.708213-2-abel.vesa@linaro.org (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | [RFC,1/2] clk: Add generic sync_state callback for disabling unused clocks | expand |
On Wed, Jul 06, 2022 at 06:04:11PM +0300, Abel Vesa wrote: > By adding the newly added clk_sync_state_disable_unused as sync_state > callback to all sdm845 clock providers, we make sure that no clock > belonging to these providers gets disabled on clk_disable_unused, > but rather they are disabled on sync_state, when it is safe, since > all the consumers build as modules have their chance of enabling > their own clocks. > Reviewed-by: Bjorn Andersson <andersson@kernel.org> > Signed-off-by: Abel Vesa <abel.vesa@linaro.org> > --- > drivers/clk/qcom/camcc-sdm845.c | 1 + > drivers/clk/qcom/dispcc-sdm845.c | 1 + > drivers/clk/qcom/gcc-sdm845.c | 1 + > drivers/clk/qcom/gpucc-sdm845.c | 1 + > 4 files changed, 4 insertions(+) > > diff --git a/drivers/clk/qcom/camcc-sdm845.c b/drivers/clk/qcom/camcc-sdm845.c > index 27d44188a7ab..e5aeb832e47b 100644 > --- a/drivers/clk/qcom/camcc-sdm845.c > +++ b/drivers/clk/qcom/camcc-sdm845.c > @@ -1743,6 +1743,7 @@ static struct platform_driver cam_cc_sdm845_driver = { > .driver = { > .name = "sdm845-camcc", > .of_match_table = cam_cc_sdm845_match_table, > + .sync_state = clk_sync_state_disable_unused, > }, > }; > > diff --git a/drivers/clk/qcom/dispcc-sdm845.c b/drivers/clk/qcom/dispcc-sdm845.c > index 735adfefc379..1810d58bad09 100644 > --- a/drivers/clk/qcom/dispcc-sdm845.c > +++ b/drivers/clk/qcom/dispcc-sdm845.c > @@ -869,6 +869,7 @@ static struct platform_driver disp_cc_sdm845_driver = { > .driver = { > .name = "disp_cc-sdm845", > .of_match_table = disp_cc_sdm845_match_table, > + .sync_state = clk_sync_state_disable_unused, > }, > }; > > diff --git a/drivers/clk/qcom/gcc-sdm845.c b/drivers/clk/qcom/gcc-sdm845.c > index 58aa3ec9a7fc..5db75d5ba584 100644 > --- a/drivers/clk/qcom/gcc-sdm845.c > +++ b/drivers/clk/qcom/gcc-sdm845.c > @@ -3624,6 +3624,7 @@ static struct platform_driver gcc_sdm845_driver = { > .driver = { > .name = "gcc-sdm845", > .of_match_table = gcc_sdm845_match_table, > + .sync_state = clk_sync_state_disable_unused, > }, > }; > > diff --git a/drivers/clk/qcom/gpucc-sdm845.c b/drivers/clk/qcom/gpucc-sdm845.c > index 110b54401bc6..622a54a67d32 100644 > --- a/drivers/clk/qcom/gpucc-sdm845.c > +++ b/drivers/clk/qcom/gpucc-sdm845.c > @@ -205,6 +205,7 @@ static struct platform_driver gpu_cc_sdm845_driver = { > .driver = { > .name = "sdm845-gpucc", > .of_match_table = gpu_cc_sdm845_match_table, > + .sync_state = clk_sync_state_disable_unused, > }, > }; > > -- > 2.34.3 >
diff --git a/drivers/clk/qcom/camcc-sdm845.c b/drivers/clk/qcom/camcc-sdm845.c index 27d44188a7ab..e5aeb832e47b 100644 --- a/drivers/clk/qcom/camcc-sdm845.c +++ b/drivers/clk/qcom/camcc-sdm845.c @@ -1743,6 +1743,7 @@ static struct platform_driver cam_cc_sdm845_driver = { .driver = { .name = "sdm845-camcc", .of_match_table = cam_cc_sdm845_match_table, + .sync_state = clk_sync_state_disable_unused, }, }; diff --git a/drivers/clk/qcom/dispcc-sdm845.c b/drivers/clk/qcom/dispcc-sdm845.c index 735adfefc379..1810d58bad09 100644 --- a/drivers/clk/qcom/dispcc-sdm845.c +++ b/drivers/clk/qcom/dispcc-sdm845.c @@ -869,6 +869,7 @@ static struct platform_driver disp_cc_sdm845_driver = { .driver = { .name = "disp_cc-sdm845", .of_match_table = disp_cc_sdm845_match_table, + .sync_state = clk_sync_state_disable_unused, }, }; diff --git a/drivers/clk/qcom/gcc-sdm845.c b/drivers/clk/qcom/gcc-sdm845.c index 58aa3ec9a7fc..5db75d5ba584 100644 --- a/drivers/clk/qcom/gcc-sdm845.c +++ b/drivers/clk/qcom/gcc-sdm845.c @@ -3624,6 +3624,7 @@ static struct platform_driver gcc_sdm845_driver = { .driver = { .name = "gcc-sdm845", .of_match_table = gcc_sdm845_match_table, + .sync_state = clk_sync_state_disable_unused, }, }; diff --git a/drivers/clk/qcom/gpucc-sdm845.c b/drivers/clk/qcom/gpucc-sdm845.c index 110b54401bc6..622a54a67d32 100644 --- a/drivers/clk/qcom/gpucc-sdm845.c +++ b/drivers/clk/qcom/gpucc-sdm845.c @@ -205,6 +205,7 @@ static struct platform_driver gpu_cc_sdm845_driver = { .driver = { .name = "sdm845-gpucc", .of_match_table = gpu_cc_sdm845_match_table, + .sync_state = clk_sync_state_disable_unused, }, };
By adding the newly added clk_sync_state_disable_unused as sync_state callback to all sdm845 clock providers, we make sure that no clock belonging to these providers gets disabled on clk_disable_unused, but rather they are disabled on sync_state, when it is safe, since all the consumers build as modules have their chance of enabling their own clocks. Signed-off-by: Abel Vesa <abel.vesa@linaro.org> --- drivers/clk/qcom/camcc-sdm845.c | 1 + drivers/clk/qcom/dispcc-sdm845.c | 1 + drivers/clk/qcom/gcc-sdm845.c | 1 + drivers/clk/qcom/gpucc-sdm845.c | 1 + 4 files changed, 4 insertions(+)