Message ID | 20230712121145.1994830-9-dmitry.baryshkov@linaro.org |
---|---|
State | Accepted |
Commit | 4e125191e6cb00d6c3f3a8e1b67fd242e639b3c3 |
Headers | show |
Series | MDSS reg bus interconnect | expand |
On 12.07.2023 14:11, Dmitry Baryshkov wrote: > Add support for the MDSS cfg-cpu bus vote on the SM8450 platform. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > arch/arm64/boot/dts/qcom/sm8450.dtsi | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi > index 595533aeafc4..0b01f3027ee3 100644 > --- a/arch/arm64/boot/dts/qcom/sm8450.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi > @@ -13,6 +13,7 @@ > #include <dt-bindings/mailbox/qcom-ipcc.h> > #include <dt-bindings/phy/phy-qcom-qmp.h> > #include <dt-bindings/power/qcom-rpmpd.h> > +#include <dt-bindings/interconnect/qcom,icc.h> > #include <dt-bindings/interconnect/qcom,sm8450.h> > #include <dt-bindings/soc/qcom,gpr.h> > #include <dt-bindings/soc/qcom,rpmh-rsc.h> > @@ -2672,8 +2673,12 @@ mdss: display-subsystem@ae00000 { > > /* same path used twice */ > interconnects = <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>, > - <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>; > - interconnect-names = "mdp0-mem", "mdp1-mem"; > + <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>, > + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY > + &config_noc SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ACTIVE_ONLY>; Looking at icc_set_tag occurences in msm-5.10/techpack/display, I *think* active-only is only possible for the data bus (MDP-EBI) Moreover, I think Linux is supposed to cast MDSS votes through the APPS RSC (so, nodes without _DISP [1][2]) and conversely, DISP_RSC is supposed to active-only votes Konrad [1] not that it matters today because it's not implemented yet [2] https://lore.kernel.org/linux-arm-msm/20230708-topic-rpmh_icc_rsc-v1-0-b223bd2ac8dd@linaro.org > + interconnect-names = "mdp0-mem", > + "mdp1-mem", > + "cpu-cfg"; > > resets = <&dispcc DISP_CC_MDSS_CORE_BCR>; >
On Thu, 13 Jul 2023 at 11:41, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > On 12.07.2023 14:11, Dmitry Baryshkov wrote: > > Add support for the MDSS cfg-cpu bus vote on the SM8450 platform. > > > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > --- > > arch/arm64/boot/dts/qcom/sm8450.dtsi | 9 +++++++-- > > 1 file changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi > > index 595533aeafc4..0b01f3027ee3 100644 > > --- a/arch/arm64/boot/dts/qcom/sm8450.dtsi > > +++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi > > @@ -13,6 +13,7 @@ > > #include <dt-bindings/mailbox/qcom-ipcc.h> > > #include <dt-bindings/phy/phy-qcom-qmp.h> > > #include <dt-bindings/power/qcom-rpmpd.h> > > +#include <dt-bindings/interconnect/qcom,icc.h> > > #include <dt-bindings/interconnect/qcom,sm8450.h> > > #include <dt-bindings/soc/qcom,gpr.h> > > #include <dt-bindings/soc/qcom,rpmh-rsc.h> > > @@ -2672,8 +2673,12 @@ mdss: display-subsystem@ae00000 { > > > > /* same path used twice */ > > interconnects = <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>, > > - <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>; > > - interconnect-names = "mdp0-mem", "mdp1-mem"; > > + <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>, > > + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY > > + &config_noc SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ACTIVE_ONLY>; > Looking at icc_set_tag occurences in msm-5.10/techpack/display, > I *think* active-only is only possible for the data bus (MDP-EBI) Here I followed the vendor mdss fbdev driver (mdss_mdp.c), which explicitly states: static struct msm_bus_scale_pdata mdp_reg_bus_scale_table = { .usecase = mdp_reg_bus_usecases, .num_usecases = ARRAY_SIZE(mdp_reg_bus_usecases), .name = "mdss_reg", .active_only = true, }; > > Moreover, I think Linux is supposed to cast MDSS votes through the > APPS RSC (so, nodes without _DISP [1][2]) and conversely, DISP_RSC is > supposed to active-only votes We can change this once your DISP_RSC lands. Anyway, I think we will have to add the LLCC-MEM vote at some point later. > > Konrad > > [1] not that it matters today because it's not implemented yet > [2] https://lore.kernel.org/linux-arm-msm/20230708-topic-rpmh_icc_rsc-v1-0-b223bd2ac8dd@linaro.org > > > + interconnect-names = "mdp0-mem", > > + "mdp1-mem", > > + "cpu-cfg"; > > > > resets = <&dispcc DISP_CC_MDSS_CORE_BCR>; > >
diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi index 595533aeafc4..0b01f3027ee3 100644 --- a/arch/arm64/boot/dts/qcom/sm8450.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi @@ -13,6 +13,7 @@ #include <dt-bindings/mailbox/qcom-ipcc.h> #include <dt-bindings/phy/phy-qcom-qmp.h> #include <dt-bindings/power/qcom-rpmpd.h> +#include <dt-bindings/interconnect/qcom,icc.h> #include <dt-bindings/interconnect/qcom,sm8450.h> #include <dt-bindings/soc/qcom,gpr.h> #include <dt-bindings/soc/qcom,rpmh-rsc.h> @@ -2672,8 +2673,12 @@ mdss: display-subsystem@ae00000 { /* same path used twice */ interconnects = <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>, - <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>; - interconnect-names = "mdp0-mem", "mdp1-mem"; + <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>, + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY + &config_noc SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ACTIVE_ONLY>; + interconnect-names = "mdp0-mem", + "mdp1-mem", + "cpu-cfg"; resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
Add support for the MDSS cfg-cpu bus vote on the SM8450 platform. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- arch/arm64/boot/dts/qcom/sm8450.dtsi | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)