Message ID | 20241217-bridge-conn-fmt-prio-v3-2-3ecb3c8fc06f@collabora.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Fix ycbcr_420_allowed inconsistency for HDMI bridges | expand |
On Tue, Dec 17, 2024 at 12:54:08AM +0200, Cristian Ciocaltea wrote: > Ensure HDMI connector initialization fails when the presence of > HDMI_COLORSPACE_YUV420 in the given supported_formats bitmask doesn't > match the value of drm_connector->ycbcr_420_allowed. > > Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> > --- > drivers/gpu/drm/drm_connector.c | 3 +++ > 1 file changed, 3 insertions(+) > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
On Tue, Dec 17, 2024 at 12:54:08AM +0200, Cristian Ciocaltea wrote: > Ensure HDMI connector initialization fails when the presence of > HDMI_COLORSPACE_YUV420 in the given supported_formats bitmask doesn't > match the value of drm_connector->ycbcr_420_allowed. > > Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> > --- > drivers/gpu/drm/drm_connector.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c > index fc35f47e2849ed6786d6223ac9c69e1c359fc648..ca7f43c8d6f1b31ef9d3a1ee05f4df930ecffac4 100644 > --- a/drivers/gpu/drm/drm_connector.c > +++ b/drivers/gpu/drm/drm_connector.c > @@ -507,6 +507,9 @@ int drmm_connector_hdmi_init(struct drm_device *dev, > if (!supported_formats || !(supported_formats & BIT(HDMI_COLORSPACE_RGB))) > return -EINVAL; > > + if (connector->ycbcr_420_allowed != !!(supported_formats & BIT(HDMI_COLORSPACE_YUV420))) > + return -EINVAL; > + > if (!(max_bpc == 8 || max_bpc == 10 || max_bpc == 12)) > return -EINVAL; The patch looks fine to me, but we need to have unit tests to cover this case. Maxime
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c index fc35f47e2849ed6786d6223ac9c69e1c359fc648..ca7f43c8d6f1b31ef9d3a1ee05f4df930ecffac4 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -507,6 +507,9 @@ int drmm_connector_hdmi_init(struct drm_device *dev, if (!supported_formats || !(supported_formats & BIT(HDMI_COLORSPACE_RGB))) return -EINVAL; + if (connector->ycbcr_420_allowed != !!(supported_formats & BIT(HDMI_COLORSPACE_YUV420))) + return -EINVAL; + if (!(max_bpc == 8 || max_bpc == 10 || max_bpc == 12)) return -EINVAL;
Ensure HDMI connector initialization fails when the presence of HDMI_COLORSPACE_YUV420 in the given supported_formats bitmask doesn't match the value of drm_connector->ycbcr_420_allowed. Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com> --- drivers/gpu/drm/drm_connector.c | 3 +++ 1 file changed, 3 insertions(+)