2022-07-06 15:25:37

by Abel Vesa

[permalink] [raw]
Subject: [RFC 2/2] clk: qcom: sdm845: Add clk_sync_state_disable_unused as sync_state

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 <[email protected]>
---
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


2022-09-29 15:44:21

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [RFC 2/2] clk: qcom: sdm845: Add clk_sync_state_disable_unused as sync_state

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 <[email protected]>

> Signed-off-by: Abel Vesa <[email protected]>
> ---
> 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
>