From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Paloma Arellano <quic_parellan@quicinc.com>,
freedreno@lists.freedesktop.org
Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
robdclark@gmail.com, seanpaul@chromium.org, swboyd@chromium.org,
quic_abhinavk@quicinc.com, quic_jesszhan@quicinc.com,
quic_khsieh@quicinc.com, marijn.suijten@somainline.org,
neil.armstrong@linaro.org
Subject: Re: [PATCH 14/17] drm/msm/dpu: modify encoder programming for CDM over DP
Date: Thu, 25 Jan 2024 23:57:45 +0200 [thread overview]
Message-ID: <52674357-2135-4784-a371-e7809b632c19@linaro.org> (raw)
In-Reply-To: <20240125193834.7065-15-quic_parellan@quicinc.com>
On 25/01/2024 21:38, Paloma Arellano wrote:
> Adjust the encoder format programming in the case of video mode for DP
> to accommodate CDM related changes.
>
> Signed-off-by: Paloma Arellano <quic_parellan@quicinc.com>
> ---
> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 16 +++++++++
> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 8 +++++
> .../drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 35 ++++++++++++++++---
> drivers/gpu/drm/msm/dp/dp_display.c | 12 +++++++
> drivers/gpu/drm/msm/msm_drv.h | 9 ++++-
> 5 files changed, 75 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> index b0896814c1562..99ec53446ad21 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> @@ -222,6 +222,22 @@ static u32 dither_matrix[DITHER_MATRIX_SZ] = {
> 15, 7, 13, 5, 3, 11, 1, 9, 12, 4, 14, 6, 0, 8, 2, 10
> };
>
> +u32 dpu_encoder_get_drm_fmt(const struct drm_encoder *drm_enc, const struct drm_display_mode *mode)
> +{
> + const struct dpu_encoder_virt *dpu_enc;
> + const struct msm_display_info *disp_info;
> + struct msm_drm_private *priv;
> +
> + dpu_enc = to_dpu_encoder_virt(drm_enc);
> + disp_info = &dpu_enc->disp_info;
> + priv = drm_enc->dev->dev_private;
> +
> + if (disp_info->intf_type == INTF_DP &&
> + msm_dp_is_yuv_420_enabled(priv->dp[disp_info->h_tile_instance[0]], mode))
This should not require interacting with DP. If we got here, we must be
sure that 4:2:0 is supported and can be configured.
> + return DRM_FORMAT_YUV420;
> +
> + return DRM_FORMAT_RGB888;
> +}
>
> bool dpu_encoder_is_widebus_enabled(const struct drm_encoder *drm_enc)
> {
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h
> index 7b4afa71f1f96..62255d0aa4487 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h
> @@ -162,6 +162,14 @@ int dpu_encoder_get_vsync_count(struct drm_encoder *drm_enc);
> */
> bool dpu_encoder_is_widebus_enabled(const struct drm_encoder *drm_enc);
>
> +/**
> + * dpu_encoder_get_drm_fmt - return DRM fourcc format
> + * @drm_enc: Pointer to previously created drm encoder structure
> + * @mode: Corresponding drm_display_mode for dpu encoder
> + */
> +u32 dpu_encoder_get_drm_fmt(const struct drm_encoder *drm_enc,
> + const struct drm_display_mode *mode);
> +
> /**
> * dpu_encoder_get_crc_values_cnt - get number of physical encoders contained
> * in virtual encoder that can collect CRC values
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c
> index e284bf448bdda..a1dde0ff35dc8 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c
> @@ -234,6 +234,7 @@ static void dpu_encoder_phys_vid_setup_timing_engine(
> {
> struct drm_display_mode mode;
> struct dpu_hw_intf_timing_params timing_params = { 0 };
> + struct dpu_hw_cdm *hw_cdm;
> const struct dpu_format *fmt = NULL;
> u32 fmt_fourcc = DRM_FORMAT_RGB888;
> unsigned long lock_flags;
> @@ -254,17 +255,26 @@ static void dpu_encoder_phys_vid_setup_timing_engine(
> DPU_DEBUG_VIDENC(phys_enc, "enabling mode:\n");
> drm_mode_debug_printmodeline(&mode);
>
> - if (phys_enc->split_role != ENC_ROLE_SOLO) {
> + hw_cdm = phys_enc->hw_cdm;
> + if (hw_cdm) {
> + intf_cfg.cdm = hw_cdm->idx;
> + fmt_fourcc = dpu_encoder_get_drm_fmt(phys_enc->parent, &mode);
> + }
> +
> + if (phys_enc->split_role != ENC_ROLE_SOLO ||
> + dpu_encoder_get_drm_fmt(phys_enc->parent, &mode) == DRM_FORMAT_YUV420) {
> mode.hdisplay >>= 1;
> mode.htotal >>= 1;
> mode.hsync_start >>= 1;
> mode.hsync_end >>= 1;
> + mode.hskew >>= 1;
Separate patch.
>
> DPU_DEBUG_VIDENC(phys_enc,
> - "split_role %d, halve horizontal %d %d %d %d\n",
> + "split_role %d, halve horizontal %d %d %d %d %d\n",
> phys_enc->split_role,
> mode.hdisplay, mode.htotal,
> - mode.hsync_start, mode.hsync_end);
> + mode.hsync_start, mode.hsync_end,
> + mode.hskew);
> }
>
> drm_mode_to_intf_timing_params(phys_enc, &mode, &timing_params);
> @@ -412,8 +422,15 @@ static int dpu_encoder_phys_vid_control_vblank_irq(
> static void dpu_encoder_phys_vid_enable(struct dpu_encoder_phys *phys_enc)
> {
> struct dpu_hw_ctl *ctl;
> + struct dpu_hw_cdm *hw_cdm;
> + const struct dpu_format *fmt = NULL;
> + u32 fmt_fourcc = DRM_FORMAT_RGB888;
>
> ctl = phys_enc->hw_ctl;
> + hw_cdm = phys_enc->hw_cdm;
> + if (hw_cdm)
> + fmt_fourcc = dpu_encoder_get_drm_fmt(phys_enc->parent, &phys_enc->cached_mode);
> + fmt = dpu_get_dpu_format(fmt_fourcc);
>
> DPU_DEBUG_VIDENC(phys_enc, "\n");
>
> @@ -422,6 +439,8 @@ static void dpu_encoder_phys_vid_enable(struct dpu_encoder_phys *phys_enc)
>
> dpu_encoder_helper_split_config(phys_enc, phys_enc->hw_intf->idx);
>
> + dpu_encoder_helper_phys_setup_cdm(phys_enc, fmt, CDM_CDWN_OUTPUT_HDMI);
If there is no CDM, why do we need to call this?
> +
> dpu_encoder_phys_vid_setup_timing_engine(phys_enc);
>
> /*
> @@ -437,7 +456,15 @@ static void dpu_encoder_phys_vid_enable(struct dpu_encoder_phys *phys_enc)
> if (ctl->ops.update_pending_flush_merge_3d && phys_enc->hw_pp->merge_3d)
> ctl->ops.update_pending_flush_merge_3d(ctl, phys_enc->hw_pp->merge_3d->idx);
>
> - if (ctl->ops.update_pending_flush_periph && phys_enc->hw_intf->cap->type == INTF_DP)
> + if (ctl->ops.update_pending_flush_cdm && phys_enc->hw_cdm)
> + ctl->ops.update_pending_flush_cdm(ctl, hw_cdm->idx);
> +
> + /*
> + * Peripheral flush must be updated whenever flushing SDP packets is needed.
> + * SDP packets are required for any YUV format (YUV420, YUV422, YUV444).
> + */
> + if (ctl->ops.update_pending_flush_periph && phys_enc->hw_intf->cap->type == INTF_DP &&
> + phys_enc->hw_cdm)
> ctl->ops.update_pending_flush_periph(ctl, phys_enc->hw_intf->idx);
Should there be a flush if we are switching from YUV 420 to RGB mode?
Also, I'd say, we should move update_pending_flush_periph invocation to
this patch.
>
> skip_flush:
> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
> index 6d764f5b08727..4329435518351 100644
> --- a/drivers/gpu/drm/msm/dp/dp_display.c
> +++ b/drivers/gpu/drm/msm/dp/dp_display.c
> @@ -1399,6 +1399,18 @@ void __exit msm_dp_unregister(void)
> platform_driver_unregister(&dp_display_driver);
> }
>
> +bool msm_dp_is_yuv_420_enabled(const struct msm_dp *dp_display,
> + const struct drm_display_mode *mode)
> +{
> + struct dp_display_private *dp;
> + const struct drm_display_info *info;
> +
> + dp = container_of(dp_display, struct dp_display_private, dp_display);
> + info = &dp_display->connector->display_info;
> +
> + return dp_panel_vsc_sdp_supported(dp->panel) && drm_mode_is_420_only(info, mode);
YUV 420 modes should be filtered out in mode_valid if VSC SDP is not
supported.
> +}
> +
> bool msm_dp_wide_bus_available(const struct msm_dp *dp_display)
> {
> struct dp_display_private *dp;
> diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
> index 16a7cbc0b7dd8..b9581bd934e9e 100644
> --- a/drivers/gpu/drm/msm/msm_drv.h
> +++ b/drivers/gpu/drm/msm/msm_drv.h
> @@ -387,7 +387,8 @@ void __exit msm_dp_unregister(void);
> int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev,
> struct drm_encoder *encoder);
> void msm_dp_snapshot(struct msm_disp_state *disp_state, struct msm_dp *dp_display);
> -
> +bool msm_dp_is_yuv_420_enabled(const struct msm_dp *dp_display,
> + const struct drm_display_mode *mode);
> bool msm_dp_wide_bus_available(const struct msm_dp *dp_display);
>
> #else
> @@ -409,6 +410,12 @@ static inline void msm_dp_snapshot(struct msm_disp_state *disp_state, struct msm
> {
> }
>
> +static inline bool msm_dp_is_yuv_420_enabled(const struct msm_dp *dp_display,
> + const struct drm_display_mode *mode)
> +{
> + return false;
> +}
> +
> static inline bool msm_dp_wide_bus_available(const struct msm_dp *dp_display)
> {
> return false;
--
With best wishes
Dmitry
WARNING: multiple messages have this Message-ID (diff)
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Paloma Arellano <quic_parellan@quicinc.com>,
freedreno@lists.freedesktop.org
Cc: neil.armstrong@linaro.org, linux-arm-msm@vger.kernel.org,
quic_abhinavk@quicinc.com, dri-devel@lists.freedesktop.org,
swboyd@chromium.org, seanpaul@chromium.org,
marijn.suijten@somainline.org, quic_jesszhan@quicinc.com,
quic_khsieh@quicinc.com
Subject: Re: [PATCH 14/17] drm/msm/dpu: modify encoder programming for CDM over DP
Date: Thu, 25 Jan 2024 23:57:45 +0200 [thread overview]
Message-ID: <52674357-2135-4784-a371-e7809b632c19@linaro.org> (raw)
In-Reply-To: <20240125193834.7065-15-quic_parellan@quicinc.com>
On 25/01/2024 21:38, Paloma Arellano wrote:
> Adjust the encoder format programming in the case of video mode for DP
> to accommodate CDM related changes.
>
> Signed-off-by: Paloma Arellano <quic_parellan@quicinc.com>
> ---
> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 16 +++++++++
> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 8 +++++
> .../drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 35 ++++++++++++++++---
> drivers/gpu/drm/msm/dp/dp_display.c | 12 +++++++
> drivers/gpu/drm/msm/msm_drv.h | 9 ++++-
> 5 files changed, 75 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> index b0896814c1562..99ec53446ad21 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> @@ -222,6 +222,22 @@ static u32 dither_matrix[DITHER_MATRIX_SZ] = {
> 15, 7, 13, 5, 3, 11, 1, 9, 12, 4, 14, 6, 0, 8, 2, 10
> };
>
> +u32 dpu_encoder_get_drm_fmt(const struct drm_encoder *drm_enc, const struct drm_display_mode *mode)
> +{
> + const struct dpu_encoder_virt *dpu_enc;
> + const struct msm_display_info *disp_info;
> + struct msm_drm_private *priv;
> +
> + dpu_enc = to_dpu_encoder_virt(drm_enc);
> + disp_info = &dpu_enc->disp_info;
> + priv = drm_enc->dev->dev_private;
> +
> + if (disp_info->intf_type == INTF_DP &&
> + msm_dp_is_yuv_420_enabled(priv->dp[disp_info->h_tile_instance[0]], mode))
This should not require interacting with DP. If we got here, we must be
sure that 4:2:0 is supported and can be configured.
> + return DRM_FORMAT_YUV420;
> +
> + return DRM_FORMAT_RGB888;
> +}
>
> bool dpu_encoder_is_widebus_enabled(const struct drm_encoder *drm_enc)
> {
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h
> index 7b4afa71f1f96..62255d0aa4487 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h
> @@ -162,6 +162,14 @@ int dpu_encoder_get_vsync_count(struct drm_encoder *drm_enc);
> */
> bool dpu_encoder_is_widebus_enabled(const struct drm_encoder *drm_enc);
>
> +/**
> + * dpu_encoder_get_drm_fmt - return DRM fourcc format
> + * @drm_enc: Pointer to previously created drm encoder structure
> + * @mode: Corresponding drm_display_mode for dpu encoder
> + */
> +u32 dpu_encoder_get_drm_fmt(const struct drm_encoder *drm_enc,
> + const struct drm_display_mode *mode);
> +
> /**
> * dpu_encoder_get_crc_values_cnt - get number of physical encoders contained
> * in virtual encoder that can collect CRC values
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c
> index e284bf448bdda..a1dde0ff35dc8 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c
> @@ -234,6 +234,7 @@ static void dpu_encoder_phys_vid_setup_timing_engine(
> {
> struct drm_display_mode mode;
> struct dpu_hw_intf_timing_params timing_params = { 0 };
> + struct dpu_hw_cdm *hw_cdm;
> const struct dpu_format *fmt = NULL;
> u32 fmt_fourcc = DRM_FORMAT_RGB888;
> unsigned long lock_flags;
> @@ -254,17 +255,26 @@ static void dpu_encoder_phys_vid_setup_timing_engine(
> DPU_DEBUG_VIDENC(phys_enc, "enabling mode:\n");
> drm_mode_debug_printmodeline(&mode);
>
> - if (phys_enc->split_role != ENC_ROLE_SOLO) {
> + hw_cdm = phys_enc->hw_cdm;
> + if (hw_cdm) {
> + intf_cfg.cdm = hw_cdm->idx;
> + fmt_fourcc = dpu_encoder_get_drm_fmt(phys_enc->parent, &mode);
> + }
> +
> + if (phys_enc->split_role != ENC_ROLE_SOLO ||
> + dpu_encoder_get_drm_fmt(phys_enc->parent, &mode) == DRM_FORMAT_YUV420) {
> mode.hdisplay >>= 1;
> mode.htotal >>= 1;
> mode.hsync_start >>= 1;
> mode.hsync_end >>= 1;
> + mode.hskew >>= 1;
Separate patch.
>
> DPU_DEBUG_VIDENC(phys_enc,
> - "split_role %d, halve horizontal %d %d %d %d\n",
> + "split_role %d, halve horizontal %d %d %d %d %d\n",
> phys_enc->split_role,
> mode.hdisplay, mode.htotal,
> - mode.hsync_start, mode.hsync_end);
> + mode.hsync_start, mode.hsync_end,
> + mode.hskew);
> }
>
> drm_mode_to_intf_timing_params(phys_enc, &mode, &timing_params);
> @@ -412,8 +422,15 @@ static int dpu_encoder_phys_vid_control_vblank_irq(
> static void dpu_encoder_phys_vid_enable(struct dpu_encoder_phys *phys_enc)
> {
> struct dpu_hw_ctl *ctl;
> + struct dpu_hw_cdm *hw_cdm;
> + const struct dpu_format *fmt = NULL;
> + u32 fmt_fourcc = DRM_FORMAT_RGB888;
>
> ctl = phys_enc->hw_ctl;
> + hw_cdm = phys_enc->hw_cdm;
> + if (hw_cdm)
> + fmt_fourcc = dpu_encoder_get_drm_fmt(phys_enc->parent, &phys_enc->cached_mode);
> + fmt = dpu_get_dpu_format(fmt_fourcc);
>
> DPU_DEBUG_VIDENC(phys_enc, "\n");
>
> @@ -422,6 +439,8 @@ static void dpu_encoder_phys_vid_enable(struct dpu_encoder_phys *phys_enc)
>
> dpu_encoder_helper_split_config(phys_enc, phys_enc->hw_intf->idx);
>
> + dpu_encoder_helper_phys_setup_cdm(phys_enc, fmt, CDM_CDWN_OUTPUT_HDMI);
If there is no CDM, why do we need to call this?
> +
> dpu_encoder_phys_vid_setup_timing_engine(phys_enc);
>
> /*
> @@ -437,7 +456,15 @@ static void dpu_encoder_phys_vid_enable(struct dpu_encoder_phys *phys_enc)
> if (ctl->ops.update_pending_flush_merge_3d && phys_enc->hw_pp->merge_3d)
> ctl->ops.update_pending_flush_merge_3d(ctl, phys_enc->hw_pp->merge_3d->idx);
>
> - if (ctl->ops.update_pending_flush_periph && phys_enc->hw_intf->cap->type == INTF_DP)
> + if (ctl->ops.update_pending_flush_cdm && phys_enc->hw_cdm)
> + ctl->ops.update_pending_flush_cdm(ctl, hw_cdm->idx);
> +
> + /*
> + * Peripheral flush must be updated whenever flushing SDP packets is needed.
> + * SDP packets are required for any YUV format (YUV420, YUV422, YUV444).
> + */
> + if (ctl->ops.update_pending_flush_periph && phys_enc->hw_intf->cap->type == INTF_DP &&
> + phys_enc->hw_cdm)
> ctl->ops.update_pending_flush_periph(ctl, phys_enc->hw_intf->idx);
Should there be a flush if we are switching from YUV 420 to RGB mode?
Also, I'd say, we should move update_pending_flush_periph invocation to
this patch.
>
> skip_flush:
> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
> index 6d764f5b08727..4329435518351 100644
> --- a/drivers/gpu/drm/msm/dp/dp_display.c
> +++ b/drivers/gpu/drm/msm/dp/dp_display.c
> @@ -1399,6 +1399,18 @@ void __exit msm_dp_unregister(void)
> platform_driver_unregister(&dp_display_driver);
> }
>
> +bool msm_dp_is_yuv_420_enabled(const struct msm_dp *dp_display,
> + const struct drm_display_mode *mode)
> +{
> + struct dp_display_private *dp;
> + const struct drm_display_info *info;
> +
> + dp = container_of(dp_display, struct dp_display_private, dp_display);
> + info = &dp_display->connector->display_info;
> +
> + return dp_panel_vsc_sdp_supported(dp->panel) && drm_mode_is_420_only(info, mode);
YUV 420 modes should be filtered out in mode_valid if VSC SDP is not
supported.
> +}
> +
> bool msm_dp_wide_bus_available(const struct msm_dp *dp_display)
> {
> struct dp_display_private *dp;
> diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
> index 16a7cbc0b7dd8..b9581bd934e9e 100644
> --- a/drivers/gpu/drm/msm/msm_drv.h
> +++ b/drivers/gpu/drm/msm/msm_drv.h
> @@ -387,7 +387,8 @@ void __exit msm_dp_unregister(void);
> int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev,
> struct drm_encoder *encoder);
> void msm_dp_snapshot(struct msm_disp_state *disp_state, struct msm_dp *dp_display);
> -
> +bool msm_dp_is_yuv_420_enabled(const struct msm_dp *dp_display,
> + const struct drm_display_mode *mode);
> bool msm_dp_wide_bus_available(const struct msm_dp *dp_display);
>
> #else
> @@ -409,6 +410,12 @@ static inline void msm_dp_snapshot(struct msm_disp_state *disp_state, struct msm
> {
> }
>
> +static inline bool msm_dp_is_yuv_420_enabled(const struct msm_dp *dp_display,
> + const struct drm_display_mode *mode)
> +{
> + return false;
> +}
> +
> static inline bool msm_dp_wide_bus_available(const struct msm_dp *dp_display)
> {
> return false;
--
With best wishes
Dmitry
next prev parent reply other threads:[~2024-01-25 21:57 UTC|newest]
Thread overview: 186+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-25 19:38 [PATCH 00/17] Add support for CDM over DP Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 19:38 ` [PATCH 01/17] drm/msm/dpu: allow dpu_encoder_helper_phys_setup_cdm to work for DP Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:14 ` Dmitry Baryshkov
2024-01-25 21:14 ` Dmitry Baryshkov
2024-01-27 0:39 ` Paloma Arellano
2024-01-27 0:39 ` Paloma Arellano
2024-01-29 3:06 ` Abhinav Kumar
2024-01-29 3:06 ` Abhinav Kumar
2024-01-29 3:23 ` Dmitry Baryshkov
2024-01-29 3:23 ` Dmitry Baryshkov
2024-01-29 4:00 ` Abhinav Kumar
2024-01-29 4:00 ` Abhinav Kumar
2024-01-29 4:12 ` Dmitry Baryshkov
2024-01-29 4:12 ` Dmitry Baryshkov
2024-01-29 4:33 ` Abhinav Kumar
2024-01-29 4:33 ` Abhinav Kumar
2024-01-29 5:12 ` Dmitry Baryshkov
2024-01-29 5:12 ` Dmitry Baryshkov
2024-01-29 23:06 ` Paloma Arellano
2024-01-29 23:06 ` Paloma Arellano
2024-01-25 19:38 ` [PATCH 02/17] drm/msm/dpu: move dpu_encoder_helper_phys_setup_cdm to dpu_encoder Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:16 ` Dmitry Baryshkov
2024-01-25 21:16 ` Dmitry Baryshkov
2024-01-27 0:43 ` Paloma Arellano
2024-01-27 0:43 ` Paloma Arellano
2024-01-27 2:26 ` Dmitry Baryshkov
2024-01-27 2:26 ` Dmitry Baryshkov
2024-01-25 19:38 ` [PATCH 03/17] drm/msm/dp: rename wide_bus_en to wide_bus_supported Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:17 ` Dmitry Baryshkov
2024-01-25 21:17 ` Dmitry Baryshkov
2024-01-25 19:38 ` [PATCH 04/17] drm/msm/dp: store mode YUV420 information to be used by rest of DP Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:20 ` Dmitry Baryshkov
2024-01-25 21:20 ` Dmitry Baryshkov
2024-01-27 0:48 ` Paloma Arellano
2024-01-27 0:48 ` Paloma Arellano
2024-01-27 2:29 ` Dmitry Baryshkov
2024-01-27 2:29 ` Dmitry Baryshkov
2024-01-25 19:38 ` [PATCH 05/17] drm/msm/dp: add an API to indicate if sink supports VSC SDP Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:23 ` Dmitry Baryshkov
2024-01-25 21:23 ` Dmitry Baryshkov
2024-01-27 0:58 ` Paloma Arellano
2024-01-27 0:58 ` Paloma Arellano
2024-01-27 2:40 ` Dmitry Baryshkov
2024-01-27 2:40 ` Dmitry Baryshkov
2024-01-27 3:57 ` Abhinav Kumar
2024-01-27 3:57 ` Abhinav Kumar
2024-01-27 5:31 ` Dmitry Baryshkov
2024-01-27 5:31 ` Dmitry Baryshkov
2024-01-29 23:20 ` Paloma Arellano
2024-01-29 23:20 ` Paloma Arellano
2024-01-25 19:38 ` [PATCH 06/17] drm/msm/dpu: move widebus logic to its own API Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:25 ` Dmitry Baryshkov
2024-01-25 21:25 ` Dmitry Baryshkov
2024-01-25 19:38 ` [PATCH 07/17] drm/msm/dpu: disallow widebus en in INTF_CONFIG2 when DP is YUV420 Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:26 ` Dmitry Baryshkov
2024-01-25 21:26 ` Dmitry Baryshkov
2024-01-27 5:42 ` Dmitry Baryshkov
2024-01-27 5:42 ` Dmitry Baryshkov
2024-01-28 5:16 ` Paloma Arellano
2024-01-28 5:16 ` Paloma Arellano
2024-01-28 5:33 ` Dmitry Baryshkov
2024-01-28 5:33 ` Dmitry Baryshkov
2024-01-29 23:51 ` Abhinav Kumar
2024-01-29 23:51 ` Abhinav Kumar
2024-01-30 0:03 ` Dmitry Baryshkov
2024-01-30 0:03 ` Dmitry Baryshkov
2024-01-30 1:07 ` Abhinav Kumar
2024-01-30 1:07 ` Abhinav Kumar
2024-01-30 1:43 ` Dmitry Baryshkov
2024-01-30 1:43 ` Dmitry Baryshkov
2024-01-30 4:10 ` Abhinav Kumar
2024-01-30 4:10 ` Abhinav Kumar
2024-01-30 5:28 ` Dmitry Baryshkov
2024-01-30 5:28 ` Dmitry Baryshkov
2024-01-30 6:03 ` Abhinav Kumar
2024-01-30 6:03 ` Abhinav Kumar
2024-01-25 19:38 ` [PATCH 08/17] drm/msm/dp: change YUV420 related programming for DP Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:29 ` Dmitry Baryshkov
2024-01-25 21:29 ` Dmitry Baryshkov
2024-01-28 5:18 ` Paloma Arellano
2024-01-28 5:18 ` Paloma Arellano
2024-01-25 19:38 ` [PATCH 09/17] drm/msm/dp: move parity calculation to dp_catalog Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:32 ` Dmitry Baryshkov
2024-01-25 21:32 ` Dmitry Baryshkov
2024-01-28 5:18 ` Paloma Arellano
2024-01-28 5:18 ` Paloma Arellano
2024-01-25 19:38 ` [PATCH 10/17] drm/msm/dp: modify dp_catalog_hw_revision to show major and minor val Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 22:07 ` Dmitry Baryshkov
2024-01-25 22:07 ` Dmitry Baryshkov
2024-01-28 5:30 ` Paloma Arellano
2024-01-28 5:30 ` Paloma Arellano
2024-01-28 5:35 ` Dmitry Baryshkov
2024-01-28 5:35 ` Dmitry Baryshkov
2024-01-27 23:43 ` kernel test robot
2024-01-27 23:43 ` kernel test robot
2024-01-28 14:02 ` kernel test robot
2024-01-28 14:02 ` kernel test robot
2024-01-25 19:38 ` [PATCH 11/17] drm/msm/dp: add VSC SDP support for YUV420 over DP Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:48 ` Dmitry Baryshkov
2024-01-25 21:48 ` Dmitry Baryshkov
2024-01-28 5:34 ` Paloma Arellano
2024-01-28 5:34 ` Paloma Arellano
2024-01-28 5:39 ` Dmitry Baryshkov
2024-01-28 5:39 ` Dmitry Baryshkov
2024-02-01 1:56 ` Abhinav Kumar
2024-02-01 1:56 ` Abhinav Kumar
2024-02-01 4:36 ` Dmitry Baryshkov
2024-02-01 4:36 ` Dmitry Baryshkov
2024-02-02 6:25 ` Abhinav Kumar
2024-01-25 19:38 ` [PATCH 12/17] drm/msm/dpu: add support of new peripheral flush mechanism Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:49 ` Dmitry Baryshkov
2024-01-25 21:49 ` Dmitry Baryshkov
2024-01-28 5:40 ` Paloma Arellano
2024-01-28 5:40 ` Paloma Arellano
2024-01-28 5:42 ` Dmitry Baryshkov
2024-01-28 5:42 ` Dmitry Baryshkov
2024-02-08 23:09 ` Paloma Arellano
2024-01-25 19:38 ` [PATCH 13/17] drm/msm/dp: enable SDP and SDE periph flush update Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:50 ` Dmitry Baryshkov
2024-01-25 21:50 ` Dmitry Baryshkov
2024-01-28 5:42 ` Paloma Arellano
2024-01-28 5:42 ` Paloma Arellano
2024-01-25 19:38 ` [PATCH 14/17] drm/msm/dpu: modify encoder programming for CDM over DP Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:57 ` Dmitry Baryshkov [this message]
2024-01-25 21:57 ` Dmitry Baryshkov
2024-01-28 5:48 ` Paloma Arellano
2024-01-28 5:48 ` Paloma Arellano
2024-01-28 5:55 ` Dmitry Baryshkov
2024-01-28 5:55 ` Dmitry Baryshkov
2024-01-29 2:58 ` Abhinav Kumar
2024-01-29 2:58 ` Abhinav Kumar
2024-01-29 3:42 ` Dmitry Baryshkov
2024-01-29 3:42 ` Dmitry Baryshkov
2024-01-29 5:03 ` Abhinav Kumar
2024-01-29 5:03 ` Abhinav Kumar
2024-01-29 6:12 ` Dmitry Baryshkov
2024-01-29 6:12 ` Dmitry Baryshkov
2024-01-29 7:08 ` Abhinav Kumar
2024-01-29 7:08 ` Abhinav Kumar
2024-01-29 23:44 ` Dmitry Baryshkov
2024-01-29 23:44 ` Dmitry Baryshkov
2024-02-01 1:30 ` Abhinav Kumar
2024-02-01 1:30 ` Abhinav Kumar
2024-02-01 3:17 ` Dmitry Baryshkov
2024-02-01 3:17 ` Dmitry Baryshkov
2024-02-01 19:01 ` Abhinav Kumar
2024-01-25 19:38 ` [PATCH 15/17] drm/msm/dpu: allow certain formats for CDM for DP Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 21:58 ` Dmitry Baryshkov
2024-01-25 21:58 ` Dmitry Baryshkov
2024-02-08 23:19 ` Paloma Arellano
2024-01-25 19:38 ` [PATCH 16/17] drm/msm/dpu: reserve CDM blocks for DP if mode is YUV420 Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 22:01 ` Dmitry Baryshkov
2024-01-25 22:01 ` Dmitry Baryshkov
2024-01-28 5:48 ` Paloma Arellano
2024-01-28 5:48 ` Paloma Arellano
2024-01-25 19:38 ` [PATCH 17/17] drm/msm/dp: allow YUV420 mode for DP connector when VSC SDP supported Paloma Arellano
2024-01-25 19:38 ` Paloma Arellano
2024-01-25 22:05 ` Dmitry Baryshkov
2024-01-25 22:05 ` Dmitry Baryshkov
2024-01-29 3:17 ` Abhinav Kumar
2024-01-29 3:17 ` Abhinav Kumar
2024-01-29 3:52 ` Dmitry Baryshkov
2024-01-29 3:52 ` Dmitry Baryshkov
2024-01-29 4:30 ` Abhinav Kumar
2024-01-29 4:30 ` Abhinav Kumar
2024-01-29 5:05 ` Dmitry Baryshkov
2024-01-29 5:05 ` Dmitry Baryshkov
2024-01-29 5:36 ` Abhinav Kumar
2024-01-29 5:36 ` 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=52674357-2135-4784-a371-e7809b632c19@linaro.org \
--to=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=freedreno@lists.freedesktop.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=marijn.suijten@somainline.org \
--cc=neil.armstrong@linaro.org \
--cc=quic_abhinavk@quicinc.com \
--cc=quic_jesszhan@quicinc.com \
--cc=quic_khsieh@quicinc.com \
--cc=quic_parellan@quicinc.com \
--cc=robdclark@gmail.com \
--cc=seanpaul@chromium.org \
--cc=swboyd@chromium.org \
/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: link
Be 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.