[PATCH v3 2/3] Subject: [PATCH] drm/mediatek/dp: Add HDCP2.x feature for DisplayPort
CK Hu (胡俊光)
ck.hu at mediatek.com
Mon Aug 12 00:25:27 PDT 2024
Hi, Mac:
On Sat, 2024-06-08 at 20:01 +0800, mac.shen wrote:
> Changes in v3:
> - refine the function to get system time
> - refine the flow to do HDCP with content type and
> protection value which set by user space
> - refine the flow to update content protection
> - refine the flow to do HDCP2.x authentication
> per suggestion from the previous thread:
> https://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-mediatek__;!!CTRNKA9wMg0ARbw!md6xUiYN88D2YmETs8FQgaExM2zH8S1SmAEU9GRchwpNsXOyDFul3ziVKhRpCJaj8Rcn-gvM-801runjwA$
> /patch/20240205055055.25340-3-mac.shen at mediatek.com/
>
> Signed-off-by: mac.shen <mac.shen at mediatek.com>
> ---
[snip]
> @@ -2242,6 +2373,7 @@ static void mtk_dp_bridge_atomic_enable(struct drm_bridge *bridge,
> struct drm_bridge_state *old_state)
> {
> struct mtk_dp *mtk_dp = mtk_dp_from_bridge(bridge);
> + struct drm_connector_state *connector_state;
> int ret;
>
> mtk_dp->conn = drm_atomic_get_new_connector_for_encoder(old_state->base.state,
> @@ -2252,6 +2384,8 @@ static void mtk_dp_bridge_atomic_enable(struct drm_bridge *bridge,
> return;
> }
>
> + connector_state = drm_atomic_get_connector_state(old_state->base.state, mtk_dp->conn);
> +
> mtk_dp_aux_panel_poweron(mtk_dp, true);
>
> /* Training */
> @@ -2281,6 +2415,14 @@ static void mtk_dp_bridge_atomic_enable(struct drm_bridge *bridge,
> mtk_dp->enabled = true;
> mtk_dp_update_plugged_status(mtk_dp);
>
> + /* Enable hdcp if it's desired */
> + dev_dbg(mtk_dp->dev, "hdcp_content_type:%d, content protection: %d",
> + connector_state->hdcp_content_type, connector_state->content_protection);
> + if (connector_state->content_protection == DRM_MODE_CONTENT_PROTECTION_DESIRED) {
> + mtk_dp->hdcp_info.hdcp_content_type = connector_state->hdcp_content_type;
> + mtk_dp_hdcp_enable(mtk_dp);
> + }
> +
> return;
> power_off_aux:
> mtk_dp_update_bits(mtk_dp, MTK_DP_TOP_PWR_STATE,
> @@ -2427,6 +2569,8 @@ static int mtk_dp_bridge_atomic_check(struct drm_bridge *bridge,
>
> drm_display_mode_to_videomode(&crtc_state->adjusted_mode, &mtk_dp->info.vm);
>
> + mtk_dp_hdcp_atomic_check(mtk_dp, conn_state);
> +
> return 0;
> }
In mtk_dp_bridge_atomic_enable(), you enable hdcp.
So in mtk_dp_bridge_atomic_disable(), you should disable hdcp.
Regards,
CK
>
More information about the Linux-mediatek
mailing list