From: Jessica Zhang <quic_jesszhan@quicinc.com> To: <freedreno@lists.freedesktop.org> Cc: Marijn Suijten <marijn.suijten@somainline.org>, Konrad Dybcio <konrad.dybcio@linaro.org>, Daniel Vetter <daniel@ffwll.ch>, Rob Clark <robdclark@gmail.com>, Abhinav Kumar <quic_abhinavk@quicinc.com>, "Dmitry Baryshkov" <dmitry.baryshkov@linaro.org>, Sean Paul <sean@poorly.run>, <dri-devel@lists.freedesktop.org>, <linux-arm-msm@vger.kernel.org>, "Jessica Zhang" <quic_jesszhan@quicinc.com> Subject: [PATCH RFC 5/5] drm/msm/dsi: Use MSM and DRM DSC helper methods Date: Wed, 29 Mar 2023 16:18:50 -0700 [thread overview] Message-ID: <20230329-rfc-msm-dsc-helper-v1-5-f3e479f59b6d@quicinc.com> (raw) In-Reply-To: <20230329-rfc-msm-dsc-helper-v1-0-f3e479f59b6d@quicinc.com> Use MSM and DRM DSC helper methods. Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> --- drivers/gpu/drm/msm/dsi/dsi_host.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c index 74d38f90398a..7419fe58a941 100644 --- a/drivers/gpu/drm/msm/dsi/dsi_host.c +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c @@ -31,6 +31,7 @@ #include "msm_kms.h" #include "msm_gem.h" #include "phy/dsi_phy.h" +#include "disp/msm_dsc_helper.h" #define DSI_RESET_TOGGLE_DELAY_MS 20 @@ -841,14 +842,14 @@ static void dsi_update_dsc_timing(struct msm_dsi_host *msm_host, bool is_cmd_mod { struct drm_dsc_config *dsc = msm_host->dsc; u32 reg, reg_ctrl, reg_ctrl2; - u32 slice_per_intf, total_bytes_per_intf; + u32 slice_per_intf; u32 pkt_per_line; u32 eol_byte_num; /* first calculate dsc parameters and then program * compress mode registers */ - slice_per_intf = DIV_ROUND_UP(hdisplay, dsc->slice_width); + slice_per_intf = msm_dsc_get_slice_per_intf(dsc, hdisplay); /* * If slice_count is greater than slice_per_intf @@ -858,10 +859,10 @@ static void dsi_update_dsc_timing(struct msm_dsi_host *msm_host, bool is_cmd_mod if (dsc->slice_count > slice_per_intf) dsc->slice_count = 1; - total_bytes_per_intf = dsc->slice_chunk_size * slice_per_intf; + eol_byte_num = msm_dsc_get_eol_byte_num(msm_host->dsc, hdisplay, + dsi_get_bpp(msm_host->format)); - eol_byte_num = total_bytes_per_intf % 3; - pkt_per_line = slice_per_intf / dsc->slice_count; + pkt_per_line = slice_per_intf / MSM_DSC_SLICE_PER_PKT; if (is_cmd_mode) /* packet data type */ reg = DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE(MIPI_DSI_DCS_LONG_WRITE); @@ -911,6 +912,11 @@ static void dsi_timing_setup(struct msm_dsi_host *msm_host, bool is_bonded_dsi) DBG(""); + if (msm_host->mode_flags & MIPI_DSI_MODE_VIDEO) + /* Default widebus_en to false for now. */ + hdisplay = msm_dsc_get_pclk_per_line(msm_host->dsc, mode->hdisplay, + dsi_get_bpp(msm_host->format)); + /* * For bonded DSI mode, the current DRM mode has * the complete width of the panel. Since, the complete @@ -1759,7 +1765,7 @@ static int dsi_populate_dsc_params(struct msm_dsi_host *msm_host, struct drm_dsc return ret; } - dsc->initial_scale_value = 32; + dsc->initial_scale_value = drm_dsc_calculate_initial_scale_value(dsc); dsc->line_buf_depth = dsc->bits_per_component + 1; return drm_dsc_compute_rc_parameters(dsc); -- 2.39.2
WARNING: multiple messages have this Message-ID (diff)
From: Jessica Zhang <quic_jesszhan@quicinc.com> To: <freedreno@lists.freedesktop.org> Cc: linux-arm-msm@vger.kernel.org, Abhinav Kumar <quic_abhinavk@quicinc.com>, dri-devel@lists.freedesktop.org, Konrad Dybcio <konrad.dybcio@linaro.org>, Jessica Zhang <quic_jesszhan@quicinc.com>, Dmitry Baryshkov <dmitry.baryshkov@linaro.org>, Marijn Suijten <marijn.suijten@somainline.org>, Sean Paul <sean@poorly.run> Subject: [PATCH RFC 5/5] drm/msm/dsi: Use MSM and DRM DSC helper methods Date: Wed, 29 Mar 2023 16:18:50 -0700 [thread overview] Message-ID: <20230329-rfc-msm-dsc-helper-v1-5-f3e479f59b6d@quicinc.com> (raw) In-Reply-To: <20230329-rfc-msm-dsc-helper-v1-0-f3e479f59b6d@quicinc.com> Use MSM and DRM DSC helper methods. Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> --- drivers/gpu/drm/msm/dsi/dsi_host.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c index 74d38f90398a..7419fe58a941 100644 --- a/drivers/gpu/drm/msm/dsi/dsi_host.c +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c @@ -31,6 +31,7 @@ #include "msm_kms.h" #include "msm_gem.h" #include "phy/dsi_phy.h" +#include "disp/msm_dsc_helper.h" #define DSI_RESET_TOGGLE_DELAY_MS 20 @@ -841,14 +842,14 @@ static void dsi_update_dsc_timing(struct msm_dsi_host *msm_host, bool is_cmd_mod { struct drm_dsc_config *dsc = msm_host->dsc; u32 reg, reg_ctrl, reg_ctrl2; - u32 slice_per_intf, total_bytes_per_intf; + u32 slice_per_intf; u32 pkt_per_line; u32 eol_byte_num; /* first calculate dsc parameters and then program * compress mode registers */ - slice_per_intf = DIV_ROUND_UP(hdisplay, dsc->slice_width); + slice_per_intf = msm_dsc_get_slice_per_intf(dsc, hdisplay); /* * If slice_count is greater than slice_per_intf @@ -858,10 +859,10 @@ static void dsi_update_dsc_timing(struct msm_dsi_host *msm_host, bool is_cmd_mod if (dsc->slice_count > slice_per_intf) dsc->slice_count = 1; - total_bytes_per_intf = dsc->slice_chunk_size * slice_per_intf; + eol_byte_num = msm_dsc_get_eol_byte_num(msm_host->dsc, hdisplay, + dsi_get_bpp(msm_host->format)); - eol_byte_num = total_bytes_per_intf % 3; - pkt_per_line = slice_per_intf / dsc->slice_count; + pkt_per_line = slice_per_intf / MSM_DSC_SLICE_PER_PKT; if (is_cmd_mode) /* packet data type */ reg = DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE(MIPI_DSI_DCS_LONG_WRITE); @@ -911,6 +912,11 @@ static void dsi_timing_setup(struct msm_dsi_host *msm_host, bool is_bonded_dsi) DBG(""); + if (msm_host->mode_flags & MIPI_DSI_MODE_VIDEO) + /* Default widebus_en to false for now. */ + hdisplay = msm_dsc_get_pclk_per_line(msm_host->dsc, mode->hdisplay, + dsi_get_bpp(msm_host->format)); + /* * For bonded DSI mode, the current DRM mode has * the complete width of the panel. Since, the complete @@ -1759,7 +1765,7 @@ static int dsi_populate_dsc_params(struct msm_dsi_host *msm_host, struct drm_dsc return ret; } - dsc->initial_scale_value = 32; + dsc->initial_scale_value = drm_dsc_calculate_initial_scale_value(dsc); dsc->line_buf_depth = dsc->bits_per_component + 1; return drm_dsc_compute_rc_parameters(dsc); -- 2.39.2
next prev parent reply other threads:[~2023-03-29 23:19 UTC|newest] Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-03-29 23:18 [PATCH RFC 0/5] Introduce MSM-specific DSC helpers Jessica Zhang 2023-03-29 23:18 ` Jessica Zhang 2023-03-29 23:18 ` [PATCH RFC 1/5] drm/display/dsc: Add flatness and initial scale value calculations Jessica Zhang 2023-03-29 23:18 ` Jessica Zhang 2023-03-29 23:25 ` Dmitry Baryshkov 2023-03-29 23:25 ` Dmitry Baryshkov 2023-03-29 23:47 ` Jessica Zhang 2023-03-29 23:47 ` Jessica Zhang 2023-03-29 23:18 ` [PATCH RFC 2/5] drm/msm: Add MSM-specific DSC helper methods Jessica Zhang 2023-03-29 23:18 ` Jessica Zhang 2023-03-30 0:40 ` Dmitry Baryshkov 2023-03-30 0:40 ` Dmitry Baryshkov 2023-03-30 23:06 ` [Freedreno] " Jessica Zhang 2023-03-30 23:06 ` Jessica Zhang 2023-03-30 0:49 ` Dmitry Baryshkov 2023-03-30 0:49 ` Dmitry Baryshkov 2023-03-29 23:18 ` [PATCH RFC 3/5] drm/msm/dpu: Use DRM DSC helper for det_thresh_flatness Jessica Zhang 2023-03-29 23:18 ` Jessica Zhang 2023-03-29 23:31 ` Dmitry Baryshkov 2023-03-29 23:31 ` Dmitry Baryshkov 2023-03-29 23:45 ` Jessica Zhang 2023-03-29 23:45 ` Jessica Zhang 2023-03-29 23:51 ` Dmitry Baryshkov 2023-03-29 23:51 ` Dmitry Baryshkov 2023-03-29 23:18 ` [PATCH RFC 4/5] drm/msm/dpu: Fix slice_last_group_size calculation Jessica Zhang 2023-03-29 23:18 ` Jessica Zhang 2023-03-29 23:33 ` Dmitry Baryshkov 2023-03-29 23:33 ` Dmitry Baryshkov 2023-03-29 23:18 ` Jessica Zhang [this message] 2023-03-29 23:18 ` [PATCH RFC 5/5] drm/msm/dsi: Use MSM and DRM DSC helper methods Jessica Zhang 2023-03-29 23:48 ` Dmitry Baryshkov 2023-03-29 23:48 ` Dmitry Baryshkov 2023-03-30 22:49 ` Jessica Zhang 2023-03-30 22:49 ` Jessica Zhang 2023-03-30 23:14 ` Dmitry Baryshkov 2023-03-30 23:14 ` Dmitry Baryshkov 2023-03-31 0:07 ` Jessica Zhang 2023-03-31 0:07 ` Jessica Zhang 2023-03-31 0:16 ` Dmitry Baryshkov 2023-03-31 0:16 ` Dmitry Baryshkov 2023-03-31 1:12 ` Jessica Zhang 2023-03-31 1:12 ` Jessica Zhang 2023-03-31 1:18 ` Konrad Dybcio 2023-03-31 1:18 ` Konrad Dybcio 2023-03-31 1:25 ` Dmitry Baryshkov 2023-03-31 1:25 ` Dmitry Baryshkov 2023-03-31 1:31 ` Abhinav Kumar 2023-03-31 1:31 ` Abhinav Kumar 2023-03-31 1:33 ` [Freedreno] " Abhinav Kumar 2023-03-31 1:33 ` Abhinav Kumar 2023-03-31 2:47 ` Dmitry Baryshkov 2023-03-31 2:47 ` Dmitry Baryshkov 2023-03-31 4:57 ` Abhinav Kumar 2023-03-31 4:57 ` Abhinav Kumar
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=20230329-rfc-msm-dsc-helper-v1-5-f3e479f59b6d@quicinc.com \ --to=quic_jesszhan@quicinc.com \ --cc=daniel@ffwll.ch \ --cc=dmitry.baryshkov@linaro.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=freedreno@lists.freedesktop.org \ --cc=konrad.dybcio@linaro.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=marijn.suijten@somainline.org \ --cc=quic_abhinavk@quicinc.com \ --cc=robdclark@gmail.com \ --cc=sean@poorly.run \ /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.