drm/msm/dpu: do not enable color-management if DSPPs are not available
We can not support color management without DSPP blocks being provided
in the HW catalog. Do not enable color management for CRTCs if num_dspps
is 0.
Fixes: 4259ff7ae5
("drm/msm/dpu: add support for pcc color block in dpu driver")
Reported-by: Yongqin Liu <yongqin.liu@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
Reviewed-by: Sumit Semwal <sumit.semwal@linaro.org>
Tested-by: Yongqin Liu <yongqin.liu@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/542141/
Link: https://lore.kernel.org/r/20230612182534.3345805-1-dmitry.baryshkov@linaro.org
This commit is contained in:
parent
b263325b4f
commit
3bcfc7b904
|
@ -1463,6 +1463,8 @@ static const struct drm_crtc_helper_funcs dpu_crtc_helper_funcs = {
|
||||||
struct drm_crtc *dpu_crtc_init(struct drm_device *dev, struct drm_plane *plane,
|
struct drm_crtc *dpu_crtc_init(struct drm_device *dev, struct drm_plane *plane,
|
||||||
struct drm_plane *cursor)
|
struct drm_plane *cursor)
|
||||||
{
|
{
|
||||||
|
struct msm_drm_private *priv = dev->dev_private;
|
||||||
|
struct dpu_kms *dpu_kms = to_dpu_kms(priv->kms);
|
||||||
struct drm_crtc *crtc = NULL;
|
struct drm_crtc *crtc = NULL;
|
||||||
struct dpu_crtc *dpu_crtc = NULL;
|
struct dpu_crtc *dpu_crtc = NULL;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
@ -1494,7 +1496,8 @@ struct drm_crtc *dpu_crtc_init(struct drm_device *dev, struct drm_plane *plane,
|
||||||
|
|
||||||
drm_crtc_helper_add(crtc, &dpu_crtc_helper_funcs);
|
drm_crtc_helper_add(crtc, &dpu_crtc_helper_funcs);
|
||||||
|
|
||||||
drm_crtc_enable_color_mgmt(crtc, 0, true, 0);
|
if (dpu_kms->catalog->dspp_count)
|
||||||
|
drm_crtc_enable_color_mgmt(crtc, 0, true, 0);
|
||||||
|
|
||||||
/* save user friendly CRTC name for later */
|
/* save user friendly CRTC name for later */
|
||||||
snprintf(dpu_crtc->name, DPU_CRTC_NAME_SIZE, "crtc%u", crtc->base.id);
|
snprintf(dpu_crtc->name, DPU_CRTC_NAME_SIZE, "crtc%u", crtc->base.id);
|
||||||
|
|
Loading…
Reference in New Issue