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[] = {