diff --git a/drivers/gpu/drm/imx/hdp/imx-hdp.c b/drivers/gpu/drm/imx/hdp/imx-hdp.c index 70b31c85c98d930c71e9d7c3ffc038004e966ec3..774857843a086774509a74809c5542a690ad8441 100644 --- a/drivers/gpu/drm/imx/hdp/imx-hdp.c +++ b/drivers/gpu/drm/imx/hdp/imx-hdp.c @@ -1065,6 +1065,10 @@ static void imx_hdp_imx_encoder_enable(struct drm_encoder *encoder) struct drm_connector_state *conn_state = hdp->connector.state; int ret = 0; + if (conn_state->content_protection == + DRM_MODE_CONTENT_PROTECTION_DESIRED) + imx_hdcp_enable(hdp); + if (!hdp->ops->write_hdr_metadata) goto out; @@ -1093,10 +1097,6 @@ static void imx_hdp_imx_encoder_enable(struct drm_encoder *encoder) hdp->ops->write_hdr_metadata(&hdp->state, &frame); - if (conn_state->content_protection == - DRM_MODE_CONTENT_PROTECTION_DESIRED) - imx_hdcp_enable(hdp); - out: imx_hdp_call(hdp, pixel_link_validate, &hdp->state); imx_hdp_call(hdp, pixel_link_sync_ctrl_enable, &hdp->state);