From patchwork Wed Nov 23 10:05:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hsin-Yi Wang X-Patchwork-Id: 13053374 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7EF83C433FE for ; Wed, 23 Nov 2022 10:05:43 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 030AF10E218; Wed, 23 Nov 2022 10:05:42 +0000 (UTC) Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by gabe.freedesktop.org (Postfix) with ESMTPS id 406BF10E20D for ; Wed, 23 Nov 2022 10:05:38 +0000 (UTC) Received: by mail-pj1-x1035.google.com with SMTP id w15-20020a17090a380f00b0021873113cb4so1413758pjb.0 for ; Wed, 23 Nov 2022 02:05:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=1l36+yjPBM6OIANeKy2/6rDvglh4GiKCjNdGiIn1fFk=; b=Vwmvmase7OlvtEU2AuizHJgkGE+T7RHQixihY6R2G9s135jY1iE6ZHtm83be9TGR/g Zs0MVFw+jRPryPao3x09vXfmu+eQwsd3WuHAz92o6aQFpiZK8123BE+B5xh9uI7fqvs6 veTgYAd4qeEFAvGA5YX6pt0Cg6MZeRdp0VpX4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=1l36+yjPBM6OIANeKy2/6rDvglh4GiKCjNdGiIn1fFk=; b=8INnrzMMeARoj58nZTQuTYx+Gty3oPCMrmHBtOUvcuaq12Ms2HbUyAhsPyqDWA+yfM 80dpM34HuCR80G2vWpSc14l+sm29TRNUXht0Bj9QOaV8/aXpF3o0qX25GGzGViCldjHC NuLiUpwkq/4mdVcmVdx7k0WZ7Vx4h4lDqEHnITI2S7Q7YTk6g4dpNEUD5QzCvdH2rJgM TqDs2VB2IS0b6YEPw2tuyAuCnw3XZBX08jdG5Js9MfqhaBG/nscocYGyO9F3AxSMdh+S wQ2kCSil0+7X+ciJRwpYMA8gFHi1phBKS0SFGhXUDN/bJ0uHTNqj6rS1qPbo9amD6wpJ BYkQ== X-Gm-Message-State: ANoB5pn7pExFw6zULnDAjc4XxDSpcPX/T9BETS0hilgNfWOKY/lrBz5L n0rS0WLx9FLDq4LL9ZGoI+cvLAxQqeSe28vk X-Google-Smtp-Source: AA0mqf4VZTREQASrrgTjUIM5NM4k1JFmGBXeO4ZH9IX6dRhBgbnKhYPngFJR6oFzEG6rxGcMeo/2xw== X-Received: by 2002:a17:902:e3d5:b0:188:9542:515 with SMTP id r21-20020a170902e3d500b0018895420515mr8790139ple.102.1669197937678; Wed, 23 Nov 2022 02:05:37 -0800 (PST) Received: from hsinyi.c.googlers.com.com (46.165.189.35.bc.googleusercontent.com. [35.189.165.46]) by smtp.gmail.com with ESMTPSA id y129-20020a626487000000b005745a586badsm1020138pfb.218.2022.11.23.02.05.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Nov 2022 02:05:37 -0800 (PST) From: Hsin-Yi Wang To: Sean Paul , Douglas Anderson , Robert Foss Subject: [PATCH v7 1/3] drm_bridge: register content protect property Date: Wed, 23 Nov 2022 10:05:27 +0000 Message-Id: <20221123100529.3943662-1-hsinyi@chromium.org> X-Mailer: git-send-email 2.38.1.584.g0f3c55d4c2-goog MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Zimmermann , Allen Chen , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Some bridges are able to update HDCP status from userspace request if they support HDCP. HDCP property is the same as other connector properties that needs to be created after the connecter is initialized and before the connector is registered. If there exists a bridge that supports HDCP, add the property to the bridge connector. Signed-off-by: Hsin-Yi Wang Reviewed-by: Sean Paul --- v6->v7: remove reported by bot tag --- drivers/gpu/drm/drm_bridge_connector.c | 9 +++++++++ include/drm/drm_bridge.h | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/drivers/gpu/drm/drm_bridge_connector.c b/drivers/gpu/drm/drm_bridge_connector.c index 1c7d936523df..4147c6240110 100644 --- a/drivers/gpu/drm/drm_bridge_connector.c +++ b/drivers/gpu/drm/drm_bridge_connector.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -333,6 +334,7 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm, struct i2c_adapter *ddc = NULL; struct drm_bridge *bridge, *panel_bridge = NULL; int connector_type; + bool support_hdcp = false; bridge_connector = kzalloc(sizeof(*bridge_connector), GFP_KERNEL); if (!bridge_connector) @@ -376,6 +378,9 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm, if (drm_bridge_is_panel(bridge)) panel_bridge = bridge; + + if (bridge->support_hdcp) + support_hdcp = true; } if (connector_type == DRM_MODE_CONNECTOR_Unknown) { @@ -398,6 +403,10 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm, if (panel_bridge) drm_panel_bridge_set_orientation(connector, panel_bridge); + if (support_hdcp && IS_REACHABLE(CONFIG_DRM_DISPLAY_HELPER) && + IS_ENABLED(CONFIG_DRM_DISPLAY_HDCP_HELPER)) + drm_connector_attach_content_protection_property(connector, true); + return connector; } EXPORT_SYMBOL_GPL(drm_bridge_connector_init); diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index 6b65b0dfb4fb..1d2ab70f3436 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -768,6 +768,10 @@ struct drm_bridge { * modes. */ bool interlace_allowed; + /** + * @support_hdcp: Indicate that the bridge supports HDCP. + */ + bool support_hdcp; /** * @ddc: Associated I2C adapter for DDC access, if any. */ From patchwork Wed Nov 23 10:05:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hsin-Yi Wang X-Patchwork-Id: 13053376 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CE072C4332F for ; Wed, 23 Nov 2022 10:06:01 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1208D10E20D; Wed, 23 Nov 2022 10:06:01 +0000 (UTC) Received: from mail-pg1-x52d.google.com (mail-pg1-x52d.google.com [IPv6:2607:f8b0:4864:20::52d]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7C72510E20D for ; Wed, 23 Nov 2022 10:05:40 +0000 (UTC) Received: by mail-pg1-x52d.google.com with SMTP id f9so12151128pgf.7 for ; Wed, 23 Nov 2022 02:05:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UErsT04ZyvPQZD/GWA3SjRANjv/mY45ZrGViPWOUsZw=; b=YQq1OWP/rreUbf1JZWHTsvWDnRHZ6KDDSG+laL8s//K8YlvbE0jQAQGaPqUVd5uZ5X GxuAkR4sMWfwTX7XUtuQ92Pcgzw8Y568clN2ihAvwMYHUdzCDxRqQNHrF6EDm2pcadEa pbJhY8JmZrX52GI+i4lNgbrQ7ndJmKw0OQ4Mo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UErsT04ZyvPQZD/GWA3SjRANjv/mY45ZrGViPWOUsZw=; b=i2oUtYmDtb1JtseiW8nLO6EEUQxWvCR2HVEiAU41nsNimQ1vAlZYHoZzHcMK7TA6QU +qFBcA1ltSpKc97F4vDTVkwx1uDW3EYD1a1m6lUd+Je0YPv5nmThog+aaNkCrM2xdGzE 1pvQLjPoqpKCefvu8BqqCIpkqx2cKvhwF643hPojlXc7ZjlrmCX1KHiBnHd6+1eaUidw jtsBCP7NoJ4eqGcoTv8/LYoewUszW303U1+MUTockERb34xxNh5IfyRs8vLUxJjBfbcA /jtOuvh/T5XmmMYRVvLXDmDFcMYp/7TdYWVXM7pKhE+uOjbPxnqE/9KV0fRxBCnXgEjF r1eA== X-Gm-Message-State: ANoB5pk1uo1ugBQnmGKeRP6L7EkybgF2FSl58dPl28zF9muNaDKg5VKk /KXUPfZy5EgDgtICo8HGvqKfLw== X-Google-Smtp-Source: AA0mqf4iGLyvjqwcvqsDaTaBWJ5NMnuRcCiESpIdGRGtMm/3xkawyZ5j9M5XKfTjRoZez7bimdIEsg== X-Received: by 2002:a63:195:0:b0:442:c653:677d with SMTP id 143-20020a630195000000b00442c653677dmr25713206pgb.43.1669197939853; Wed, 23 Nov 2022 02:05:39 -0800 (PST) Received: from hsinyi.c.googlers.com.com (46.165.189.35.bc.googleusercontent.com. [35.189.165.46]) by smtp.gmail.com with ESMTPSA id y129-20020a626487000000b005745a586badsm1020138pfb.218.2022.11.23.02.05.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Nov 2022 02:05:39 -0800 (PST) From: Hsin-Yi Wang To: Sean Paul , Douglas Anderson , Robert Foss Subject: [PATCH v7 2/3] drm/bridge: anx7625: register content protect property Date: Wed, 23 Nov 2022 10:05:28 +0000 Message-Id: <20221123100529.3943662-2-hsinyi@chromium.org> X-Mailer: git-send-email 2.38.1.584.g0f3c55d4c2-goog In-Reply-To: <20221123100529.3943662-1-hsinyi@chromium.org> References: <20221123100529.3943662-1-hsinyi@chromium.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Zimmermann , Allen Chen , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Set support_hdcp so the connector can register content protect proterty when it's initializing. Signed-off-by: Hsin-Yi Wang Reviewed-by: Sean Paul --- v6->v7: no change --- drivers/gpu/drm/bridge/analogix/anx7625.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c index b0ff1ecb80a5..0636ac59c739 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.c +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c @@ -2680,6 +2680,7 @@ static int anx7625_i2c_probe(struct i2c_client *client, platform->bridge.type = platform->pdata.panel_bridge ? DRM_MODE_CONNECTOR_eDP : DRM_MODE_CONNECTOR_DisplayPort; + platform->bridge.support_hdcp = true; drm_bridge_add(&platform->bridge); From patchwork Wed Nov 23 10:05:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hsin-Yi Wang X-Patchwork-Id: 13053375 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DE1AFC4332F for ; Wed, 23 Nov 2022 10:05:52 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1CB5D10E208; Wed, 23 Nov 2022 10:05:52 +0000 (UTC) Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9223210E232 for ; Wed, 23 Nov 2022 10:05:42 +0000 (UTC) Received: by mail-pl1-x62e.google.com with SMTP id k7so16187146pll.6 for ; Wed, 23 Nov 2022 02:05:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Jg9Va4FU9dSDHU9ZJEP1jjLMkksxPUQCx/bp3wHT5LQ=; b=WfT72T7RroMBI9wlOw/bnHHnoMf0WdGs3XyvUrO4MKlEA6nqF+p/zMfKEtc1lbTHMP AUezr1Y3S9zCcAz1rse/vatF4x4DHyqj1sqxRUoc4F8B7S7ADYFtpx2fKEE76qFdjo4D I/yxw4O7JjW32pIQFhcmJQc1sgcv9rZRQrtcg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Jg9Va4FU9dSDHU9ZJEP1jjLMkksxPUQCx/bp3wHT5LQ=; b=3NBSqrHVAXsi/5V4Ld58xzozNHPE+GWTdJ+OTuOzrwrzG5uR+pkXXbGJcmnrsoc/zT giR7yw0huZwHzvUcVnC5UmDBUcgVQjexcO3SQPkL/8uq+Dlue/o2LXNYWex7+mGQlmwN u8z1Pa/2OMWC42wRqQDAgRaqNjsr3NmgrsK/5M6IpACF40cN9QZSFrqhpLp9NyOcYCFN JYppbdp3jCpDqHSkuJMD2rhFxoRJ5PaQprGmKAFPBq6M04AqpiX4I59f+NxtYeAkfPgH unJ9uzA1wgoYNLtZnHKNeFmgbiqSOgCHbBfvgWA69Bn09WDWi6HR0d9lvb2XUfnSmXPg GmiA== X-Gm-Message-State: ANoB5plrv1m1q/DlzvL/AJG7nTRRpg5XGFQSsoZXSJa3GxN6NYljFmCb YPf6cLM3utapB/oBeFzUH1GrTg== X-Google-Smtp-Source: AA0mqf5fXXQL3ErzztA77WK7yJt0QPQuomMU2DldHrT5bbiS3aoblEd2LM/kN8e/sUrTjWAALPK+vg== X-Received: by 2002:a17:903:26ce:b0:189:2274:7282 with SMTP id jg14-20020a17090326ce00b0018922747282mr8540890plb.90.1669197941921; Wed, 23 Nov 2022 02:05:41 -0800 (PST) Received: from hsinyi.c.googlers.com.com (46.165.189.35.bc.googleusercontent.com. [35.189.165.46]) by smtp.gmail.com with ESMTPSA id y129-20020a626487000000b005745a586badsm1020138pfb.218.2022.11.23.02.05.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Nov 2022 02:05:41 -0800 (PST) From: Hsin-Yi Wang To: Sean Paul , Douglas Anderson , Robert Foss Subject: [PATCH v7 3/3] drm/bridge: it6505: handle HDCP request Date: Wed, 23 Nov 2022 10:05:29 +0000 Message-Id: <20221123100529.3943662-3-hsinyi@chromium.org> X-Mailer: git-send-email 2.38.1.584.g0f3c55d4c2-goog In-Reply-To: <20221123100529.3943662-1-hsinyi@chromium.org> References: <20221123100529.3943662-1-hsinyi@chromium.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Zimmermann , Allen Chen , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" it6505 supports HDCP 1.3, but current implementation lacks the update of HDCP status through drm_hdcp_update_content_protection(). it6505 default enables the HDCP. Remove this and only turn on when user requests it. Signed-off-by: Hsin-Yi Wang Reviewed-by: allen chen --- v6->v7: remove enable hdcp by default. --- drivers/gpu/drm/bridge/ite-it6505.c | 60 +++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c index 21a9b8422bda..93626698c31e 100644 --- a/drivers/gpu/drm/bridge/ite-it6505.c +++ b/drivers/gpu/drm/bridge/ite-it6505.c @@ -423,6 +423,7 @@ struct it6505 { struct extcon_dev *extcon; struct work_struct extcon_wq; int extcon_state; + struct drm_connector *connector; enum drm_connector_status connector_status; enum link_train_status link_state; struct work_struct link_works; @@ -2159,9 +2160,6 @@ static void it6505_link_train_ok(struct it6505 *it6505) DRM_DEV_DEBUG_DRIVER(dev, "Enable audio!"); it6505_enable_audio(it6505); } - - if (it6505->hdcp_desired) - it6505_start_hdcp(it6505); } static void it6505_link_step_train_process(struct it6505 *it6505) @@ -2399,6 +2397,14 @@ static void it6505_irq_hdcp_done(struct it6505 *it6505) DRM_DEV_DEBUG_DRIVER(dev, "hdcp done interrupt"); it6505->hdcp_status = HDCP_AUTH_DONE; + if (it6505->connector) { + struct drm_device *drm_dev = it6505->connector->dev; + + drm_modeset_lock(&drm_dev->mode_config.connection_mutex, NULL); + drm_hdcp_update_content_protection(it6505->connector, + DRM_MODE_CONTENT_PROTECTION_ENABLED); + drm_modeset_unlock(&drm_dev->mode_config.connection_mutex); + } it6505_show_hdcp_info(it6505); } @@ -2931,6 +2937,7 @@ static void it6505_bridge_atomic_enable(struct drm_bridge *bridge, if (WARN_ON(!connector)) return; + it6505->connector = connector; conn_state = drm_atomic_get_new_connector_state(state, connector); if (WARN_ON(!conn_state)) @@ -2974,6 +2981,7 @@ static void it6505_bridge_atomic_disable(struct drm_bridge *bridge, DRM_DEV_DEBUG_DRIVER(dev, "start"); + it6505->connector = NULL; if (it6505->powered) { it6505_drm_dp_link_set_power(&it6505->aux, &it6505->link, DP_SET_POWER_D3); @@ -3028,6 +3036,50 @@ static struct edid *it6505_bridge_get_edid(struct drm_bridge *bridge, return edid; } +static int it6505_connector_atomic_check(struct it6505 *it6505, + struct drm_connector_state *state) +{ + struct device *dev = &it6505->client->dev; + int cp = state->content_protection; + + DRM_DEV_DEBUG_DRIVER(dev, "hdcp connector state:%d, curr hdcp state:%d", + cp, it6505->hdcp_status); + + if (!it6505->hdcp_desired) { + DRM_DEV_DEBUG_DRIVER(dev, "sink not support hdcp"); + return 0; + } + + if (it6505->hdcp_status == HDCP_AUTH_GOING) + return -EINVAL; + + if (cp == DRM_MODE_CONTENT_PROTECTION_UNDESIRED) { + if (it6505->hdcp_status == HDCP_AUTH_DONE) + it6505_stop_hdcp(it6505); + } else if (cp == DRM_MODE_CONTENT_PROTECTION_DESIRED) { + if (it6505->hdcp_status == HDCP_AUTH_IDLE && + it6505->link_state == LINK_OK) + it6505_start_hdcp(it6505); + } else { + if (it6505->hdcp_status == HDCP_AUTH_IDLE) { + DRM_DEV_DEBUG_DRIVER(dev, "invalid to set hdcp enabled"); + return -EINVAL; + } + } + + return 0; +} + +static int it6505_bridge_atomic_check(struct drm_bridge *bridge, + struct drm_bridge_state *bridge_state, + struct drm_crtc_state *crtc_state, + struct drm_connector_state *conn_state) +{ + struct it6505 *it6505 = bridge_to_it6505(bridge); + + return it6505_connector_atomic_check(it6505, conn_state); +} + static const struct drm_bridge_funcs it6505_bridge_funcs = { .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, @@ -3035,6 +3087,7 @@ static const struct drm_bridge_funcs it6505_bridge_funcs = { .attach = it6505_bridge_attach, .detach = it6505_bridge_detach, .mode_valid = it6505_bridge_mode_valid, + .atomic_check = it6505_bridge_atomic_check, .atomic_enable = it6505_bridge_atomic_enable, .atomic_disable = it6505_bridge_atomic_disable, .atomic_pre_enable = it6505_bridge_atomic_pre_enable, @@ -3354,6 +3407,7 @@ static int it6505_i2c_probe(struct i2c_client *client, it6505->bridge.type = DRM_MODE_CONNECTOR_DisplayPort; it6505->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | DRM_BRIDGE_OP_HPD; + it6505->bridge.support_hdcp = true; drm_bridge_add(&it6505->bridge); return 0;