From patchwork Thu Apr 18 08:57:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ramalingam C X-Patchwork-Id: 10906653 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4CD991850 for ; Thu, 18 Apr 2019 08:56:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 35FBC28AF6 for ; Thu, 18 Apr 2019 08:56:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2A32128B14; Thu, 18 Apr 2019 08:56:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id CDB5028AF8 for ; Thu, 18 Apr 2019 08:56:16 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 314286E0FB; Thu, 18 Apr 2019 08:56:15 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id A99A96E0BF; Thu, 18 Apr 2019 08:56:13 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Apr 2019 01:56:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,365,1549958400"; d="scan'208";a="165779143" Received: from nuc.iind.intel.com ([10.99.66.149]) by fmsmga001.fm.intel.com with ESMTP; 18 Apr 2019 01:56:11 -0700 From: Ramalingam C To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, daniel@ffwll.ch, gwan-gyeong.mun@intel.com Subject: [PATCH v5 00/12] HDCP2.2 Phase II Date: Thu, 18 Apr 2019 14:27:53 +0530 Message-Id: <20190418085805.5648-1-ramalingam.c@intel.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP HDCP2.2 phase-II introduces below features: Addition of two connector properties HDCP Content Type HDCP Topology Addition of binary sysfs "hdcp_srm" at drm subsystem Parsing for HDCP1.4 and 2.2 SRM table Once HDCP1.4/2.2 authentication is completed gathering the all downstream topology for userspace Extending debugfs entry to provide the HDCP2.2 capability too. Uevent for HDCP state change. Dedicated file for hdcp in drm. HDCP Content Type: This property is used to indicate the content type classification of a stream. Which indicate the HDCP version required for the rendering of that streams. This conten type is one of the parameter in the HDCP2.2 authentication flow, as even downstream repeaters will mandate the HDCP version requirement. Two values possible for content type of a stream: Type 0: Stream can be rendered only on HDCP encrypted link no restriction on HDCP versions. Type 1: Stream can be rendered only on HDCP2.2 encrypted link. There is a parallel effort in #wayland community to add the support for HDCP2.2 along with content type support. Patches are under review in #wayland community. HDCP Topology: This blob property is used by the kernel to pass the downstream topology of the HDCP encrypted port to the userspace. This is used by the userspace to implement the HDCP repeater, which KMD implementing the HDCP transmitters(downstream ports) and userspace implementing the upstream port(HDCP receiver). Discussion is on going to add the downstream_info support in the weston HDCP stack. hdcp_srm: write only binary sysfs used by the userspace to pass the SRM table of HDCP1.4 and 2.2. These are nothing but revocated list of receiver IDs of the HDCP sinks. KMD will use this list to identify the revocated devices in the HDCP authentication and deny the hdcp encryption to it. Daniel has suggested about moving the SRM node implementation into DRM core. Still dome more clarification is required. Once that is done another respin on SRM patches are expected. v5: srm is read from the /lib/firmware/display_hdcp_srm.bin [danvet] small fix at hdcp state update to userspace. Series can be cloned from github https://github.com/ramalingampc2008/drm-tip.git hdcp2_2_p2_v5 Test-with: <20190418084842.5422-2-ramalingam.c@intel.com> Ramalingam C (12): drm: move content protection property to mode_config drm/i915: debugfs: HDCP2.2 capability read drm: Add Content protection type property drm/i915: Attach content type property drm: revocation check at drm subsystem drm/i915: SRM revocation check for HDCP1.4 and 2.2 drm/hdcp: gathering hdcp related code into drm_hdcp.c drm: uevent for connector status change drm/hdcp: update content protection property with uevent drm/i915: update the hdcp state with uevent drm: Add CP downstream_info property drm/i915: Populate downstream info for HDCP drivers/gpu/drm/Makefile | 2 +- drivers/gpu/drm/drm_atomic_uapi.c | 11 +- drivers/gpu/drm/drm_connector.c | 80 +++-- drivers/gpu/drm/drm_hdcp.c | 498 ++++++++++++++++++++++++++++ drivers/gpu/drm/drm_internal.h | 4 + drivers/gpu/drm/drm_sysfs.c | 33 ++ drivers/gpu/drm/i915/i915_debugfs.c | 13 +- drivers/gpu/drm/i915/intel_ddi.c | 38 ++- drivers/gpu/drm/i915/intel_drv.h | 2 + drivers/gpu/drm/i915/intel_hdcp.c | 177 +++++++--- drivers/gpu/drm/i915/intel_hdcp.h | 3 +- include/drm/drm_connector.h | 21 +- include/drm/drm_hdcp.h | 48 +++ include/drm/drm_mode_config.h | 18 + include/drm/drm_sysfs.h | 5 +- include/uapi/drm/drm_mode.h | 41 +++ 16 files changed, 894 insertions(+), 100 deletions(-) create mode 100644 drivers/gpu/drm/drm_hdcp.c