msm_dp_modeset_init() and msm_dp_bridge_init() take a yuv_supported argument, which the DPU driver fills in from the presence of a CDM block in the hardware catalog. All platforms that support DisplayPort have a CDM block, so this argument is always true and only obscures the code.
Drop the argument and set the bridge's ycbcr_420_allowed flag unconditionally. Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Dmitry Baryshkov <[email protected]> --- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +--- drivers/gpu/drm/msm/dp/dp_display.c | 4 ++-- drivers/gpu/drm/msm/dp/dp_drm.c | 5 +++-- drivers/gpu/drm/msm/dp/dp_drm.h | 3 +-- drivers/gpu/drm/msm/msm_drv.h | 5 ++--- 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index da3556eb6ecc..ede935a426d1 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -653,7 +653,6 @@ static int _dpu_kms_initialize_displayport(struct drm_device *dev, { struct drm_encoder *encoder = NULL; struct msm_display_info info; - bool yuv_supported; int rc; int i; @@ -672,8 +671,7 @@ static int _dpu_kms_initialize_displayport(struct drm_device *dev, return PTR_ERR(encoder); } - yuv_supported = !!dpu_kms->catalog->cdm; - rc = msm_dp_modeset_init(priv->kms->dp[i], dev, encoder, yuv_supported); + rc = msm_dp_modeset_init(priv->kms->dp[i], dev, encoder); if (rc) { DPU_ERROR("modeset_init failed for DP, rc = %d\n", rc); return rc; diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index e0c44eef3aba..5ae5eed7e010 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1318,7 +1318,7 @@ void msm_dp_display_debugfs_init(struct msm_dp *msm_dp_display, struct dentry *r } int msm_dp_modeset_init(struct msm_dp *msm_dp_display, struct drm_device *dev, - struct drm_encoder *encoder, bool yuv_supported) + struct drm_encoder *encoder) { struct msm_dp_display_private *msm_dp_priv; int ret; @@ -1327,7 +1327,7 @@ int msm_dp_modeset_init(struct msm_dp *msm_dp_display, struct drm_device *dev, msm_dp_priv = container_of(msm_dp_display, struct msm_dp_display_private, msm_dp_display); - ret = msm_dp_bridge_init(msm_dp_display, dev, encoder, yuv_supported); + ret = msm_dp_bridge_init(msm_dp_display, dev, encoder); if (ret) { DRM_DEV_ERROR(dev->dev, "failed to create dp bridge: %d\n", ret); diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c index 06881bfd6181..4f615b45fff7 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.c +++ b/drivers/gpu/drm/msm/dp/dp_drm.c @@ -243,7 +243,7 @@ static const struct drm_bridge_funcs msm_edp_bridge_ops = { }; int msm_dp_bridge_init(struct msm_dp *msm_dp_display, struct drm_device *dev, - struct drm_encoder *encoder, bool yuv_supported) + struct drm_encoder *encoder) { int rc; struct msm_dp_bridge *msm_dp_bridge; @@ -259,7 +259,8 @@ int msm_dp_bridge_init(struct msm_dp *msm_dp_display, struct drm_device *dev, bridge = &msm_dp_bridge->bridge; bridge->type = msm_dp_display->connector_type; - bridge->ycbcr_420_allowed = yuv_supported; + /* all platforms which support DP have a CDM block for YUV output */ + bridge->ycbcr_420_allowed = true; /* * Many ops only make sense for DP. Why? diff --git a/drivers/gpu/drm/msm/dp/dp_drm.h b/drivers/gpu/drm/msm/dp/dp_drm.h index 041aa026ae2e..3b046822f05e 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.h +++ b/drivers/gpu/drm/msm/dp/dp_drm.h @@ -22,8 +22,7 @@ struct msm_dp_bridge { struct drm_connector *msm_dp_drm_connector_init(struct msm_dp *msm_dp_display, struct drm_encoder *encoder); int msm_dp_bridge_init(struct msm_dp *msm_dp_display, struct drm_device *dev, - struct drm_encoder *encoder, - bool yuv_supported); + struct drm_encoder *encoder); enum drm_connector_status msm_dp_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector); diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h index 3d5679be488e..0ec0622d9217 100644 --- a/drivers/gpu/drm/msm/msm_drv.h +++ b/drivers/gpu/drm/msm/msm_drv.h @@ -354,7 +354,7 @@ struct msm_dp; int __init msm_dp_register(void); void __exit msm_dp_unregister(void); int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev, - struct drm_encoder *encoder, bool yuv_supported); + struct drm_encoder *encoder); void msm_dp_snapshot(struct msm_disp_state *disp_state, struct msm_dp *dp_display); bool msm_dp_needs_periph_flush(const struct msm_dp *dp_display, const struct drm_display_mode *mode); @@ -370,8 +370,7 @@ static inline void __exit msm_dp_unregister(void) } static inline int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev, - struct drm_encoder *encoder, - bool yuv_supported) + struct drm_encoder *encoder) { return -EINVAL; } -- 2.47.3
