From: Vinod Koul <vkoul@kernel.org> To: Rob Clark <robdclark@gmail.com> Cc: linux-arm-msm@vger.kernel.org, Bjorn Andersson <bjorn.andersson@linaro.org>, Vinod Koul <vkoul@kernel.org>, David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>, Jonathan Marek <jonathan@marek.ca>, Dmitry Baryshkov <dmitry.baryshkov@linaro.org>, Abhinav Kumar <abhinavk@codeaurora.org>, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, Abhinav Kumar <quic_abhinavk@quicinc.com> Subject: [PATCH v5 10/13] drm/msm/disp/dpu1: Add support for DSC in topology Date: Fri, 25 Mar 2022 16:35:53 +0530 [thread overview] Message-ID: <20220325110556.275490-11-vkoul@kernel.org> (raw) In-Reply-To: <20220325110556.275490-1-vkoul@kernel.org> For DSC to work we typically need a 2,2,1 configuration. This should suffice for resolutions up to 4k. For more resolutions like 8k this won't work. Also, it is better to use 2 LMs and DSC instances as half width results in lesser power consumption as compared to single LM, DSC at full width. The panel has been tested only with 2,2,1 configuration, so for now we blindly create 2,2,1 topology when DSC is enabled Co-developed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Vinod Koul <vkoul@kernel.org> --- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 13 +++++++++++++ drivers/gpu/drm/msm/msm_drv.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c index a672c91dbb8b..7dff39c20dab 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c @@ -590,8 +590,21 @@ static struct msm_display_topology dpu_encoder_get_topology( topology.num_enc = 0; topology.num_intf = intf_count; + if (dpu_enc->dsc) { + /* In case of Display Stream Compression (DSC), we would use + * 2 encoders, 2 layer mixers and 1 interface + * this is power optimal and can drive up to (including) 4k + * screens + */ + topology.num_enc = 2; + topology.num_dsc = 2; + topology.num_intf = 1; + topology.num_lm = 2; + } + return topology; } + static int dpu_encoder_virt_atomic_check( struct drm_encoder *drm_enc, struct drm_crtc_state *crtc_state, diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h index 6425a42e997c..994d895d1a47 100644 --- a/drivers/gpu/drm/msm/msm_drv.h +++ b/drivers/gpu/drm/msm/msm_drv.h @@ -103,12 +103,14 @@ enum msm_event_wait { * @num_enc: number of compression encoder blocks used * @num_intf: number of interfaces the panel is mounted on * @num_dspp: number of dspp blocks used + * @num_dsc: number of Display Stream Compression (DSC) blocks used */ struct msm_display_topology { u32 num_lm; u32 num_enc; u32 num_intf; u32 num_dspp; + u32 num_dsc; }; /** -- 2.34.1
WARNING: multiple messages have this Message-ID (diff)
From: Vinod Koul <vkoul@kernel.org> To: Rob Clark <robdclark@gmail.com> Cc: Jonathan Marek <jonathan@marek.ca>, David Airlie <airlied@linux.ie>, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Abhinav Kumar <abhinavk@codeaurora.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Abhinav Kumar <quic_abhinavk@quicinc.com>, Vinod Koul <vkoul@kernel.org>, dri-devel@lists.freedesktop.org, Dmitry Baryshkov <dmitry.baryshkov@linaro.org>, freedreno@lists.freedesktop.org Subject: [PATCH v5 10/13] drm/msm/disp/dpu1: Add support for DSC in topology Date: Fri, 25 Mar 2022 16:35:53 +0530 [thread overview] Message-ID: <20220325110556.275490-11-vkoul@kernel.org> (raw) In-Reply-To: <20220325110556.275490-1-vkoul@kernel.org> For DSC to work we typically need a 2,2,1 configuration. This should suffice for resolutions up to 4k. For more resolutions like 8k this won't work. Also, it is better to use 2 LMs and DSC instances as half width results in lesser power consumption as compared to single LM, DSC at full width. The panel has been tested only with 2,2,1 configuration, so for now we blindly create 2,2,1 topology when DSC is enabled Co-developed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Vinod Koul <vkoul@kernel.org> --- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 13 +++++++++++++ drivers/gpu/drm/msm/msm_drv.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c index a672c91dbb8b..7dff39c20dab 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c @@ -590,8 +590,21 @@ static struct msm_display_topology dpu_encoder_get_topology( topology.num_enc = 0; topology.num_intf = intf_count; + if (dpu_enc->dsc) { + /* In case of Display Stream Compression (DSC), we would use + * 2 encoders, 2 layer mixers and 1 interface + * this is power optimal and can drive up to (including) 4k + * screens + */ + topology.num_enc = 2; + topology.num_dsc = 2; + topology.num_intf = 1; + topology.num_lm = 2; + } + return topology; } + static int dpu_encoder_virt_atomic_check( struct drm_encoder *drm_enc, struct drm_crtc_state *crtc_state, diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h index 6425a42e997c..994d895d1a47 100644 --- a/drivers/gpu/drm/msm/msm_drv.h +++ b/drivers/gpu/drm/msm/msm_drv.h @@ -103,12 +103,14 @@ enum msm_event_wait { * @num_enc: number of compression encoder blocks used * @num_intf: number of interfaces the panel is mounted on * @num_dspp: number of dspp blocks used + * @num_dsc: number of Display Stream Compression (DSC) blocks used */ struct msm_display_topology { u32 num_lm; u32 num_enc; u32 num_intf; u32 num_dspp; + u32 num_dsc; }; /** -- 2.34.1
next prev parent reply other threads:[~2022-03-25 11:07 UTC|newest] Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-03-25 11:05 [PATCH v5 00/13] drm/msm: Add Display Stream Compression Support Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 11:05 ` [PATCH v5 01/13] drm/msm/dsi: add support for dsc data Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 11:05 ` [PATCH v5 02/13] drm/msm/dsi: Pass DSC params to drm_panel Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 12:24 ` Dmitry Baryshkov 2022-03-25 12:24 ` Dmitry Baryshkov 2022-03-25 11:05 ` [PATCH v5 03/13] drm/msm/disp/dpu1: Add support for DSC Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 11:05 ` [PATCH v5 04/13] drm/msm/disp/dpu1: Add support for DSC in pingpong block Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 11:05 ` [PATCH v5 05/13] drm/msm/disp/dpu1: Add DSC for SDM845 to hw_catalog Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 11:05 ` [PATCH v5 06/13] drm/msm/disp/dpu1: Add DSC support in hw_ctl Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 11:05 ` [PATCH v5 07/13] drm/msm/disp/dpu1: Add support for DSC in encoder Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 11:05 ` [PATCH v5 08/13] drm/msm/dpu: don't use merge_3d if DSC merge topology is used Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 11:05 ` [PATCH v5 09/13] drm/msm: Add missing num_dspp field documentation Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 11:05 ` Vinod Koul [this message] 2022-03-25 11:05 ` [PATCH v5 10/13] drm/msm/disp/dpu1: Add support for DSC in topology Vinod Koul 2022-03-25 11:05 ` [PATCH v5 11/13] drm/msm/disp/dpu1: Add DSC support in RM Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 11:05 ` [PATCH v5 12/13] drm/msm/dsi: add mode valid callback for dsi_mgr Vinod Koul 2022-03-25 11:05 ` Vinod Koul 2022-03-25 11:05 ` [PATCH v5 13/13] drm/msm/dsi: Add support for DSC configuration Vinod Koul 2022-03-25 11:05 ` Vinod Koul
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220325110556.275490-11-vkoul@kernel.org \ --to=vkoul@kernel.org \ --cc=abhinavk@codeaurora.org \ --cc=airlied@linux.ie \ --cc=bjorn.andersson@linaro.org \ --cc=daniel@ffwll.ch \ --cc=dmitry.baryshkov@linaro.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=freedreno@lists.freedesktop.org \ --cc=jonathan@marek.ca \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=quic_abhinavk@quicinc.com \ --cc=robdclark@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.