Message ID | 20230417-topic-dpu_regbus-v1-0-06fbdc1643c0@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | MDSS reg bus interconnect | expand |
On 4/17/2023 8:30 AM, Konrad Dybcio wrote: > Apart from the already handled data bus (MAS_MDP_Pn<->DDR), there's > another path that needs to be handled to ensure MDSS functions properly, > namely the "reg bus", a.k.a the CPU-MDSS interconnect. > > Gating that path may have a variety of effects.. from none to otherwise > inexplicable DSI timeouts.. Current DPU driver already votes on the "reg bus" indirectly through the display AHB clock handle[<&dispcc DISP_CC_MDSS_AHB_CLK>] in DTSI. Can you provide more details on the issues that warrants this patch series? Thanks Jeykumar S > > This series tries to address the lack of that. > > Example path: > > interconnects = <&bimc MASTER_AMPSS_M0 0 &config_noc SLAVE_DISPLAY_CFG 0>; > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > --- > Konrad Dybcio (5): > dt-bindings: display/msm: Add reg bus interconnect > drm/msm/dpu1: Rename path references to mdp_path > drm/msm/mdss: Rename path references to mdp_path > drm/msm/mdss: Handle the reg bus ICC path > drm/msm/dpu1: Handle the reg bus ICC path > > .../bindings/display/msm/mdss-common.yaml | 1 + > drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 10 +++---- > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 34 ++++++++++++++++----- > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 5 ++-- > drivers/gpu/drm/msm/msm_mdss.c | 35 ++++++++++++++-------- > 5 files changed, 57 insertions(+), 28 deletions(-) > --- > base-commit: d3f2cd24819158bb70701c3549e586f9df9cee67 > change-id: 20230417-topic-dpu_regbus-abc94a770952 > > Best regards,
On Mon, 17 Apr 2023 at 18:30, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > Apart from the already handled data bus (MAS_MDP_Pn<->DDR), there's > another path that needs to be handled to ensure MDSS functions properly, > namely the "reg bus", a.k.a the CPU-MDSS interconnect. > > Gating that path may have a variety of effects.. from none to otherwise > inexplicable DSI timeouts.. > > This series tries to address the lack of that. > > Example path: > > interconnects = <&bimc MASTER_AMPSS_M0 0 &config_noc SLAVE_DISPLAY_CFG 0>; If we are going to touch the MDSS interconnects, could you please also add the rotator interconnect to the bindings? We do not need to touch it at this time, but let's not have to change bindings later again. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > --- > Konrad Dybcio (5): > dt-bindings: display/msm: Add reg bus interconnect > drm/msm/dpu1: Rename path references to mdp_path > drm/msm/mdss: Rename path references to mdp_path > drm/msm/mdss: Handle the reg bus ICC path > drm/msm/dpu1: Handle the reg bus ICC path > > .../bindings/display/msm/mdss-common.yaml | 1 + > drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 10 +++---- > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 34 ++++++++++++++++----- > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 5 ++-- > drivers/gpu/drm/msm/msm_mdss.c | 35 ++++++++++++++-------- > 5 files changed, 57 insertions(+), 28 deletions(-) > --- > base-commit: d3f2cd24819158bb70701c3549e586f9df9cee67 > change-id: 20230417-topic-dpu_regbus-abc94a770952 > > Best regards, > -- > Konrad Dybcio <konrad.dybcio@linaro.org> >
On 29.05.2023 04:42, Dmitry Baryshkov wrote: > On Mon, 17 Apr 2023 at 18:30, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: >> >> Apart from the already handled data bus (MAS_MDP_Pn<->DDR), there's >> another path that needs to be handled to ensure MDSS functions properly, >> namely the "reg bus", a.k.a the CPU-MDSS interconnect. >> >> Gating that path may have a variety of effects.. from none to otherwise >> inexplicable DSI timeouts.. >> >> This series tries to address the lack of that. >> >> Example path: >> >> interconnects = <&bimc MASTER_AMPSS_M0 0 &config_noc SLAVE_DISPLAY_CFG 0>; > > If we are going to touch the MDSS interconnects, could you please also > add the rotator interconnect to the bindings? > We do not need to touch it at this time, but let's not have to change > bindings later again. > Ack Konrad >> >> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> >> --- >> Konrad Dybcio (5): >> dt-bindings: display/msm: Add reg bus interconnect >> drm/msm/dpu1: Rename path references to mdp_path >> drm/msm/mdss: Rename path references to mdp_path >> drm/msm/mdss: Handle the reg bus ICC path >> drm/msm/dpu1: Handle the reg bus ICC path >> >> .../bindings/display/msm/mdss-common.yaml | 1 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 10 +++---- >> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 34 ++++++++++++++++----- >> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 5 ++-- >> drivers/gpu/drm/msm/msm_mdss.c | 35 ++++++++++++++-------- >> 5 files changed, 57 insertions(+), 28 deletions(-) >> --- >> base-commit: d3f2cd24819158bb70701c3549e586f9df9cee67 >> change-id: 20230417-topic-dpu_regbus-abc94a770952 >> >> Best regards, >> -- >> Konrad Dybcio <konrad.dybcio@linaro.org> >> > >
On 29/05/2023 10:42, Konrad Dybcio wrote: > > > On 29.05.2023 04:42, Dmitry Baryshkov wrote: >> On Mon, 17 Apr 2023 at 18:30, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: >>> >>> Apart from the already handled data bus (MAS_MDP_Pn<->DDR), there's >>> another path that needs to be handled to ensure MDSS functions properly, >>> namely the "reg bus", a.k.a the CPU-MDSS interconnect. >>> >>> Gating that path may have a variety of effects.. from none to otherwise >>> inexplicable DSI timeouts.. >>> >>> This series tries to address the lack of that. >>> >>> Example path: >>> >>> interconnects = <&bimc MASTER_AMPSS_M0 0 &config_noc SLAVE_DISPLAY_CFG 0>; >> >> If we are going to touch the MDSS interconnects, could you please also >> add the rotator interconnect to the bindings? >> We do not need to touch it at this time, but let's not have to change >> bindings later again. >> > Ack Also, several points noted from the mdss fbdev driver: - All possible clents vote for the low bw setting. This includes DSI, HDMI, MDSS itself and INTF - SMMU also casts such vote, which I do not think should be necessary, unless there is a separate MDSS SMMU? - PINGPONG cacsts high bw setting for the sake of speeding up the LUT tables if required.
On 29.05.2023 10:47, Dmitry Baryshkov wrote: > On 29/05/2023 10:42, Konrad Dybcio wrote: >> >> >> On 29.05.2023 04:42, Dmitry Baryshkov wrote: >>> On Mon, 17 Apr 2023 at 18:30, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: >>>> >>>> Apart from the already handled data bus (MAS_MDP_Pn<->DDR), there's >>>> another path that needs to be handled to ensure MDSS functions properly, >>>> namely the "reg bus", a.k.a the CPU-MDSS interconnect. >>>> >>>> Gating that path may have a variety of effects.. from none to otherwise >>>> inexplicable DSI timeouts.. >>>> >>>> This series tries to address the lack of that. >>>> >>>> Example path: >>>> >>>> interconnects = <&bimc MASTER_AMPSS_M0 0 &config_noc SLAVE_DISPLAY_CFG 0>; >>> >>> If we are going to touch the MDSS interconnects, could you please also >>> add the rotator interconnect to the bindings? >>> We do not need to touch it at this time, but let's not have to change >>> bindings later again. >>> >> Ack > > Also, several points noted from the mdss fbdev driver: > > - All possible clents vote for the low bw setting. This includes DSI, HDMI, MDSS itself and INTF As in, "you need NUM_CLIENTS * MIN_VOTE" or as in "any client necessitates a vote"? > - SMMU also casts such vote, which I do not think should be necessary, unless there is a separate MDSS SMMU? There's one on 8996, pre-845 SoCs often have a MMSS MMU, 845 and later have a MMSS-specific TBU which (theoretically) requires a vote for access to 0x400-0x7ff SIDs > - PINGPONG cacsts high bw setting for the sake of speeding up the LUT tables if required. Hm, I think is would be a separate topic. Konrad >
On 29/05/2023 12:08, Konrad Dybcio wrote: > > > On 29.05.2023 10:47, Dmitry Baryshkov wrote: >> On 29/05/2023 10:42, Konrad Dybcio wrote: >>> >>> >>> On 29.05.2023 04:42, Dmitry Baryshkov wrote: >>>> On Mon, 17 Apr 2023 at 18:30, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: >>>>> >>>>> Apart from the already handled data bus (MAS_MDP_Pn<->DDR), there's >>>>> another path that needs to be handled to ensure MDSS functions properly, >>>>> namely the "reg bus", a.k.a the CPU-MDSS interconnect. >>>>> >>>>> Gating that path may have a variety of effects.. from none to otherwise >>>>> inexplicable DSI timeouts.. >>>>> >>>>> This series tries to address the lack of that. >>>>> >>>>> Example path: >>>>> >>>>> interconnects = <&bimc MASTER_AMPSS_M0 0 &config_noc SLAVE_DISPLAY_CFG 0>; >>>> >>>> If we are going to touch the MDSS interconnects, could you please also >>>> add the rotator interconnect to the bindings? >>>> We do not need to touch it at this time, but let's not have to change >>>> bindings later again. >>>> >>> Ack >> >> Also, several points noted from the mdss fbdev driver: >> >> - All possible clents vote for the low bw setting. This includes DSI, HDMI, MDSS itself and INTF > As in, "you need NUM_CLIENTS * MIN_VOTE" or as in "any client necessitates > a vote"? Each client has separate vote > >> - SMMU also casts such vote, which I do not think should be necessary, unless there is a separate MDSS SMMU? > There's one on 8996, pre-845 SoCs often have a MMSS MMU, 845 and > later have a MMSS-specific TBU which (theoretically) requires a > vote for access to 0x400-0x7ff SIDs Ack. > >> - PINGPONG cacsts high bw setting for the sake of speeding up the LUT tables if required. > Hm, I think is would be a separate topic. I think so. I'd do a single vote from mdp5/dpu1. Then we can cast higher vote from PP/DSPP/etc.
Apart from the already handled data bus (MAS_MDP_Pn<->DDR), there's another path that needs to be handled to ensure MDSS functions properly, namely the "reg bus", a.k.a the CPU-MDSS interconnect. Gating that path may have a variety of effects.. from none to otherwise inexplicable DSI timeouts.. This series tries to address the lack of that. Example path: interconnects = <&bimc MASTER_AMPSS_M0 0 &config_noc SLAVE_DISPLAY_CFG 0>; Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> --- Konrad Dybcio (5): dt-bindings: display/msm: Add reg bus interconnect drm/msm/dpu1: Rename path references to mdp_path drm/msm/mdss: Rename path references to mdp_path drm/msm/mdss: Handle the reg bus ICC path drm/msm/dpu1: Handle the reg bus ICC path .../bindings/display/msm/mdss-common.yaml | 1 + drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 10 +++---- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 34 ++++++++++++++++----- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 5 ++-- drivers/gpu/drm/msm/msm_mdss.c | 35 ++++++++++++++-------- 5 files changed, 57 insertions(+), 28 deletions(-) --- base-commit: d3f2cd24819158bb70701c3549e586f9df9cee67 change-id: 20230417-topic-dpu_regbus-abc94a770952 Best regards,