Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp1860431rwb; Thu, 17 Nov 2022 03:11:14 -0800 (PST) X-Google-Smtp-Source: AA0mqf4Uh5L06/fzRo0Xhx8vIMMS+K0HKYrK07Yl4IRgG14rG4p0Dm2vELwkiuHsyfQ0HyaG18Fp X-Received: by 2002:a62:1b0b:0:b0:56d:384:e13a with SMTP id b11-20020a621b0b000000b0056d0384e13amr2366110pfb.75.1668683474154; Thu, 17 Nov 2022 03:11:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668683474; cv=none; d=google.com; s=arc-20160816; b=gERlWf5jEBBDsivNKDlSLkwPd9Yd6XxEpdguGyWRl9str6zA3YehTmLwICzwEsk8hJ DlZN0OlI+BsTWE+eE1SOma+FL21YxqblVhUsm7BQ02ZfZFHh/qME8OBjLrMwrEjAXeIB MkgLR9x47MH8skgcGo62dwbZ9krKpROJrZAobnSdXdO9Sl1OIUmbIg1/9tvVsdpmNfT/ Q3nyY+0hRsmFX4rukeTck351UhSf2cDIDgSkPMzAU4BuN6TQ8IOepq+I6QkHB+MF8Ab2 JgqVaV2viacqzNof3OdrUfXDmjTrsoMQl7I/LPdV+9G0fQa2ogHObkb0UHcGIIkzrvOe gxSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=0tqK0qcu4ZbXIz1FounyREg16LfpvMx9JNd0Tfa961A=; b=XgWM4cLFG7HN8SibBScLyWeEPxtd2V+V3N0KhWHcQs+hjMQsdtCyO8w2m5BxOt6YMB PiHFrKiTKZv2qDnA4AyOdypSvb+8btopiRMkGBo5B+Pib95cC0DyFc9pTg9MaED2Fn6m p0znQ4agOCIMI4JbH/LLKbWkLiDLDnbnNyrndxYmzq9d/Qt15zfMud7fBR4xnk+hpwXH HoCCH6eRxTTp8zG/Vpp1DOOZkcfjnewpKNkf9r2D8WhNge/Sb5lhFK91nqy0AGTUG4z5 C5o6bkzNAddFSG4LuoPOfe4MqCM4XUf9PHsObiaWDFEyOMkec8xcZ1p4FbeepmahJW6t 2rFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=AFoBfEAD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pc15-20020a17090b3b8f00b001fb706e96afsi4998895pjb.182.2022.11.17.03.11.02; Thu, 17 Nov 2022 03:11:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=AFoBfEAD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239779AbiKQLJB (ORCPT + 92 others); Thu, 17 Nov 2022 06:09:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54518 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239721AbiKQLIP (ORCPT ); Thu, 17 Nov 2022 06:08:15 -0500 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 90D1213E12 for ; Thu, 17 Nov 2022 03:08:09 -0800 (PST) Received: by mail-pl1-x62d.google.com with SMTP id j12so1300204plj.5 for ; Thu, 17 Nov 2022 03:08:09 -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=0tqK0qcu4ZbXIz1FounyREg16LfpvMx9JNd0Tfa961A=; b=AFoBfEAD1nJWlMgLMnXn0vdIL+CPo94VWnV12a+S1YWYICb26F1Np8B8kTDn2QXh8v 3MDzOYrdbhabqzws4QPDv8RY9mRvzvrHQTlp+AE1wWRhkwPQ4zHAz5NAx5NSPfZW3mQE TIKnnBeFktEgCF3rHIxA2KZt5ybmy93+PksJ8= 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=0tqK0qcu4ZbXIz1FounyREg16LfpvMx9JNd0Tfa961A=; b=GQQ5aG4/HB0TqYI3sJxwZKckIboJ3oV2k0rDWMglXdJevZSNBoSn86Hs8yA6Oag/EZ IgSjnQOt+8xRbmcmbv0ckw2Tu/oLX73XVdBCm2M8p72xEuJmNlDqdVd/MIDhrhbxOTwt TFVD9FbUtTEb/B0pCCgO0GAuZrIpX2N2n0C7FLi9NvscPt+IunOGKrP49t6WsrYdYS1r ai60lDyBoNhuWeZodNThpdgWe/rRXZBLGx2VPfgfmCr7Pc04gtfCzueGkSFmNrmD2lhR UMrTmHrT4ebjJ0G+BR3BBeOPzrJ5Gfre9mSQHZQyIWIHNObGYva+yT5tlPREhlIYqh3l 3nPA== X-Gm-Message-State: ANoB5pln5cfSbD4Oclv6qsCavBZuP6Xnbw/LYXXrr4oehkvtme+FcKRQ GxgnrXcgNcaScihj5IQbUNGRYg== X-Received: by 2002:a17:90b:3544:b0:213:2173:f46a with SMTP id lt4-20020a17090b354400b002132173f46amr8259914pjb.103.1668683288952; Thu, 17 Nov 2022 03:08:08 -0800 (PST) Received: from hsinyi-z840.tpe.corp.google.com ([2401:fa00:1:10:e678:c7f5:9cb3:1a06]) by smtp.gmail.com with ESMTPSA id z18-20020a170902ccd200b0017a032d7ae4sm1025540ple.104.2022.11.17.03.08.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Nov 2022 03:08:08 -0800 (PST) From: Hsin-Yi Wang To: Sean Paul , Douglas Anderson , Robert Foss Cc: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Allen Chen , David Airlie Subject: [PATCH v6 1/3] drm_bridge: register content protect property Date: Thu, 17 Nov 2022 19:08:02 +0800 Message-Id: <20221117110804.1431024-1-hsinyi@chromium.org> X-Mailer: git-send-email 2.38.1.431.g37b22c650d-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Reported-by: kernel test robot --- v5->v6: fix compile warning when CONFIG_DRM_DISPLAY_HELPER=m --- 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. */ -- 2.38.1.431.g37b22c650d-goog