Re: [PATCH] clk: qcom: gcc-sdm845: Add missing flag to votable GDSCs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 26, 2019 at 7:34 AM Georgi Djakov <georgi.djakov@xxxxxxxxxx> wrote:
>
> On sdm845 devices, during boot we see the following warnings (unless we
> have added 'pd_ignore_unused' to the kernel command line):
>         hlos1_vote_mmnoc_mmu_tbu_sf_gdsc status stuck at 'on'
>         hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc status stuck at 'on'
>         hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc status stuck at 'on'
>         hlos1_vote_aggre_noc_mmu_tbu2_gdsc status stuck at 'on'
>         hlos1_vote_aggre_noc_mmu_tbu1_gdsc status stuck at 'on'
>         hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc status stuck at 'on'
>         hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc status stuck at 'on'
>
> As the name of these GDSCs suggests, they are "votable" and in downstream
> DT, they all have the property "qcom,no-status-check-on-disable", which
> means that we should not poll the status bit when we disable them.
>
> Luckily the VOTABLE flag already exists and it does exactly what we need,
> so let's make use of it to make the warnings disappear.
>
> Fixes: 06391eddb60a ("clk: qcom: Add Global Clock controller (GCC) driver for SDM845")
> Reported-by: Rob Clark <robdclark@xxxxxxxxx>
> Signed-off-by: Georgi Djakov <georgi.djakov@xxxxxxxxxx>

Tested-by: Rob Clark <robdclark@xxxxxxxxx>

(on yoga c630)

> ---
>  drivers/clk/qcom/gcc-sdm845.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/clk/qcom/gcc-sdm845.c b/drivers/clk/qcom/gcc-sdm845.c
> index 95be125c3bdd..56d22dd225c9 100644
> --- a/drivers/clk/qcom/gcc-sdm845.c
> +++ b/drivers/clk/qcom/gcc-sdm845.c
> @@ -3255,6 +3255,7 @@ static struct gdsc hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc = {
>                 .name = "hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc",
>         },
>         .pwrsts = PWRSTS_OFF_ON,
> +       .flags = VOTABLE,
>  };
>
>  static struct gdsc hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc = {
> @@ -3263,6 +3264,7 @@ static struct gdsc hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc = {
>                 .name = "hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc",
>         },
>         .pwrsts = PWRSTS_OFF_ON,
> +       .flags = VOTABLE,
>  };
>
>  static struct gdsc hlos1_vote_aggre_noc_mmu_tbu1_gdsc = {
> @@ -3271,6 +3273,7 @@ static struct gdsc hlos1_vote_aggre_noc_mmu_tbu1_gdsc = {
>                 .name = "hlos1_vote_aggre_noc_mmu_tbu1_gdsc",
>         },
>         .pwrsts = PWRSTS_OFF_ON,
> +       .flags = VOTABLE,
>  };
>
>  static struct gdsc hlos1_vote_aggre_noc_mmu_tbu2_gdsc = {
> @@ -3279,6 +3282,7 @@ static struct gdsc hlos1_vote_aggre_noc_mmu_tbu2_gdsc = {
>                 .name = "hlos1_vote_aggre_noc_mmu_tbu2_gdsc",
>         },
>         .pwrsts = PWRSTS_OFF_ON,
> +       .flags = VOTABLE,
>  };
>
>  static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
> @@ -3287,6 +3291,7 @@ static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
>                 .name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
>         },
>         .pwrsts = PWRSTS_OFF_ON,
> +       .flags = VOTABLE,
>  };
>
>  static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = {
> @@ -3295,6 +3300,7 @@ static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = {
>                 .name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc",
>         },
>         .pwrsts = PWRSTS_OFF_ON,
> +       .flags = VOTABLE,
>  };
>
>  static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf_gdsc = {
> @@ -3303,6 +3309,7 @@ static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf_gdsc = {
>                 .name = "hlos1_vote_mmnoc_mmu_tbu_sf_gdsc",
>         },
>         .pwrsts = PWRSTS_OFF_ON,
> +       .flags = VOTABLE,
>  };
>
>  static struct clk_regmap *gcc_sdm845_clocks[] = {



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux