All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/13] drm/hdcp: Pull HDCP auth/exchange/check into helpers
@ 2021-09-15 20:38 ` Sean Paul
  0 siblings, 0 replies; 87+ messages in thread
From: Sean Paul @ 2021-09-15 20:38 UTC (permalink / raw)
  To: dri-devel, intel-gfx, freedreno; +Cc: swboyd, Sean Paul

From: Sean Paul <seanpaul@chromium.org>

Hello again,
This is the second version of the HDCP helper patchset. See version 1
here: https://patchwork.freedesktop.org/series/94623/

In this second version, I've fixed up the oopsies exposed by 0-day and
yamllint and incorporated early review feedback from the dt/dts reviews.

Please take a look,

Sean

Sean Paul (13):
  drm/hdcp: Add drm_hdcp_atomic_check()
  drm/hdcp: Avoid changing crtc state in hdcp atomic check
  drm/hdcp: Update property value on content type and user changes
  drm/hdcp: Expand HDCP helper library for enable/disable/check
  drm/i915/hdcp: Consolidate HDCP setup/state cache
  drm/i915/hdcp: Retain hdcp_capable return codes
  drm/i915/hdcp: Use HDCP helpers for i915
  drm/msm/dpu_kms: Re-order dpu includes
  drm/msm/dpu: Remove useless checks in dpu_encoder
  drm/msm/dpu: Remove encoder->enable() hack
  drm/msm/dp: Re-order dp_audio_put in deinit_sub_modules
  dt-bindings: msm/dp: Add bindings for HDCP registers
  drm/msm: Implement HDCP 1.x using the new drm HDCP helpers

 .../bindings/display/msm/dp-controller.yaml   |    7 +-
 arch/arm64/boot/dts/qcom/sc7180.dtsi          |    4 +-
 drivers/gpu/drm/drm_hdcp.c                    | 1197 ++++++++++++++++-
 drivers/gpu/drm/i915/display/intel_atomic.c   |    7 +-
 drivers/gpu/drm/i915/display/intel_ddi.c      |   29 +-
 .../drm/i915/display/intel_display_debugfs.c  |   11 +-
 .../drm/i915/display/intel_display_types.h    |   58 +-
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c  |  345 ++---
 drivers/gpu/drm/i915/display/intel_dp_mst.c   |   17 +-
 drivers/gpu/drm/i915/display/intel_hdcp.c     | 1011 +++-----------
 drivers/gpu/drm/i915/display/intel_hdcp.h     |   35 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c     |  256 ++--
 drivers/gpu/drm/msm/Makefile                  |    1 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c   |   17 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c       |   30 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h       |    2 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h     |    4 -
 drivers/gpu/drm/msm/dp/dp_debug.c             |   49 +-
 drivers/gpu/drm/msm/dp/dp_debug.h             |    6 +-
 drivers/gpu/drm/msm/dp/dp_display.c           |   47 +-
 drivers/gpu/drm/msm/dp/dp_display.h           |    5 +
 drivers/gpu/drm/msm/dp/dp_drm.c               |   68 +-
 drivers/gpu/drm/msm/dp/dp_drm.h               |    5 +
 drivers/gpu/drm/msm/dp/dp_hdcp.c              |  433 ++++++
 drivers/gpu/drm/msm/dp/dp_hdcp.h              |   27 +
 drivers/gpu/drm/msm/dp/dp_parser.c            |   22 +-
 drivers/gpu/drm/msm/dp/dp_parser.h            |    4 +
 drivers/gpu/drm/msm/dp/dp_reg.h               |   44 +-
 drivers/gpu/drm/msm/msm_atomic.c              |   15 +
 include/drm/drm_hdcp.h                        |  194 +++
 30 files changed, 2561 insertions(+), 1389 deletions(-)
 create mode 100644 drivers/gpu/drm/msm/dp/dp_hdcp.c
 create mode 100644 drivers/gpu/drm/msm/dp/dp_hdcp.h

-- 
Sean Paul, Software Engineer, Google / Chromium OS


^ permalink raw reply	[flat|nested] 87+ messages in thread
* Re: [PATCH v2 04/13] drm/hdcp: Expand HDCP helper library for enable/disable/check
  2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
  (?)
  (?)
@ 2021-09-17 10:58 ` Dan Carpenter
  -1 siblings, 0 replies; 87+ messages in thread
From: kernel test robot @ 2021-09-17  1:29 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 8698 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20210915203834.1439-5-sean@poorly.run>
References: <20210915203834.1439-5-sean@poorly.run>
TO: Sean Paul <sean@poorly.run>
TO: dri-devel(a)lists.freedesktop.org
TO: intel-gfx(a)lists.freedesktop.org
TO: freedreno(a)lists.freedesktop.org
CC: swboyd(a)chromium.org
CC: Sean Paul <seanpaul@chromium.org>
CC: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
CC: Maxime Ripard <mripard@kernel.org>
CC: Thomas Zimmermann <tzimmermann@suse.de>
CC: David Airlie <airlied@linux.ie>
CC: Daniel Vetter <daniel@ffwll.ch>

Hi Sean,

I love your patch! Perhaps something to improve:

[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on drm-tip/drm-tip robh/for-next linus/master v5.15-rc1 next-20210916]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Sean-Paul/drm-hdcp-Pull-HDCP-auth-exchange-check-into-helpers/20210916-044145
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
:::::: branch date: 29 hours ago
:::::: commit date: 29 hours ago
config: x86_64-randconfig-m001-20210916 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/gpu/drm/drm_hdcp.c:1208 drm_hdcp_helper_enable_hdcp() error: uninitialized symbol 'check_link_interval'.

Old smatch warnings:
drivers/gpu/drm/drm_hdcp.c:514 drm_hdcp_atomic_check() warn: inconsistent indenting

vim +/check_link_interval +1208 drivers/gpu/drm/drm_hdcp.c

cbc5065be3a652f Sean Paul 2021-09-15  1126  
cbc5065be3a652f Sean Paul 2021-09-15  1127  static int drm_hdcp_helper_enable_hdcp(struct drm_hdcp_helper_data *data,
cbc5065be3a652f Sean Paul 2021-09-15  1128  				       struct drm_atomic_state *state,
cbc5065be3a652f Sean Paul 2021-09-15  1129  				       struct mutex *driver_mutex)
cbc5065be3a652f Sean Paul 2021-09-15  1130  {
cbc5065be3a652f Sean Paul 2021-09-15  1131  	struct drm_connector *connector = data->connector;
cbc5065be3a652f Sean Paul 2021-09-15  1132  	struct drm_connector_state *conn_state;
cbc5065be3a652f Sean Paul 2021-09-15  1133  	struct drm_device *dev = connector->dev;
cbc5065be3a652f Sean Paul 2021-09-15  1134  	unsigned long check_link_interval;
cbc5065be3a652f Sean Paul 2021-09-15  1135  	bool capable;
cbc5065be3a652f Sean Paul 2021-09-15  1136  	int ret = 0;
cbc5065be3a652f Sean Paul 2021-09-15  1137  
cbc5065be3a652f Sean Paul 2021-09-15  1138  	conn_state = drm_atomic_get_new_connector_state(state, connector);
cbc5065be3a652f Sean Paul 2021-09-15  1139  
cbc5065be3a652f Sean Paul 2021-09-15  1140  	mutex_lock(&data->mutex);
cbc5065be3a652f Sean Paul 2021-09-15  1141  
cbc5065be3a652f Sean Paul 2021-09-15  1142  	if (data->value == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
cbc5065be3a652f Sean Paul 2021-09-15  1143  		drm_hdcp_update_value(data, DRM_MODE_CONTENT_PROTECTION_ENABLED,
cbc5065be3a652f Sean Paul 2021-09-15  1144  				      true);
cbc5065be3a652f Sean Paul 2021-09-15  1145  		goto out_data_mutex;
cbc5065be3a652f Sean Paul 2021-09-15  1146  	}
cbc5065be3a652f Sean Paul 2021-09-15  1147  
cbc5065be3a652f Sean Paul 2021-09-15  1148  	drm_WARN_ON(dev, data->driver_mutex != NULL);
cbc5065be3a652f Sean Paul 2021-09-15  1149  	data->driver_mutex = driver_mutex;
cbc5065be3a652f Sean Paul 2021-09-15  1150  
cbc5065be3a652f Sean Paul 2021-09-15  1151  	drm_hdcp_helper_driver_lock(data);
cbc5065be3a652f Sean Paul 2021-09-15  1152  
cbc5065be3a652f Sean Paul 2021-09-15  1153  	if (data->funcs->setup) {
cbc5065be3a652f Sean Paul 2021-09-15  1154  		ret = data->funcs->setup(connector, state);
cbc5065be3a652f Sean Paul 2021-09-15  1155  		if (ret) {
cbc5065be3a652f Sean Paul 2021-09-15  1156  			drm_err(dev, "Failed to setup HDCP %d\n", ret);
cbc5065be3a652f Sean Paul 2021-09-15  1157  			goto out;
cbc5065be3a652f Sean Paul 2021-09-15  1158  		}
cbc5065be3a652f Sean Paul 2021-09-15  1159  	}
cbc5065be3a652f Sean Paul 2021-09-15  1160  
cbc5065be3a652f Sean Paul 2021-09-15  1161  	if (!data->funcs->are_keys_valid ||
cbc5065be3a652f Sean Paul 2021-09-15  1162  	    !data->funcs->are_keys_valid(connector)) {
cbc5065be3a652f Sean Paul 2021-09-15  1163  		if (data->funcs->load_keys) {
cbc5065be3a652f Sean Paul 2021-09-15  1164  			ret = data->funcs->load_keys(connector);
cbc5065be3a652f Sean Paul 2021-09-15  1165  			if (ret) {
cbc5065be3a652f Sean Paul 2021-09-15  1166  				drm_err(dev, "Failed to load HDCP keys %d\n", ret);
cbc5065be3a652f Sean Paul 2021-09-15  1167  				goto out;
cbc5065be3a652f Sean Paul 2021-09-15  1168  			}
cbc5065be3a652f Sean Paul 2021-09-15  1169  		}
cbc5065be3a652f Sean Paul 2021-09-15  1170  	}
cbc5065be3a652f Sean Paul 2021-09-15  1171  
cbc5065be3a652f Sean Paul 2021-09-15  1172  	/*
cbc5065be3a652f Sean Paul 2021-09-15  1173  	 * Considering that HDCP2.2 is more secure than HDCP1.4, If the setup
cbc5065be3a652f Sean Paul 2021-09-15  1174  	 * is capable of HDCP2.2, it is preferred to use HDCP2.2.
cbc5065be3a652f Sean Paul 2021-09-15  1175  	 */
cbc5065be3a652f Sean Paul 2021-09-15  1176  	ret = data->funcs->hdcp2_capable(connector, &capable);
cbc5065be3a652f Sean Paul 2021-09-15  1177  	if (ret) {
cbc5065be3a652f Sean Paul 2021-09-15  1178  		drm_err(dev, "HDCP 2.x capability check failed %d\n", ret);
cbc5065be3a652f Sean Paul 2021-09-15  1179  		goto out;
cbc5065be3a652f Sean Paul 2021-09-15  1180  	}
cbc5065be3a652f Sean Paul 2021-09-15  1181  	if (capable) {
cbc5065be3a652f Sean Paul 2021-09-15  1182  		data->enabled_type = DRM_MODE_HDCP_CONTENT_TYPE1;
cbc5065be3a652f Sean Paul 2021-09-15  1183  		ret = data->funcs->hdcp2_enable(connector);
cbc5065be3a652f Sean Paul 2021-09-15  1184  		if (!ret) {
cbc5065be3a652f Sean Paul 2021-09-15  1185  			check_link_interval = DRM_HDCP2_CHECK_PERIOD_MS;
cbc5065be3a652f Sean Paul 2021-09-15  1186  			goto out;
cbc5065be3a652f Sean Paul 2021-09-15  1187  		}
cbc5065be3a652f Sean Paul 2021-09-15  1188  	}
cbc5065be3a652f Sean Paul 2021-09-15  1189  
cbc5065be3a652f Sean Paul 2021-09-15  1190  	/*
cbc5065be3a652f Sean Paul 2021-09-15  1191  	 * When HDCP2.2 fails and Content Type is not Type1, HDCP1.4 will
cbc5065be3a652f Sean Paul 2021-09-15  1192  	 * be attempted.
cbc5065be3a652f Sean Paul 2021-09-15  1193  	 */
cbc5065be3a652f Sean Paul 2021-09-15  1194  	ret = drm_hdcp_helper_hdcp1_capable(data, &capable);
cbc5065be3a652f Sean Paul 2021-09-15  1195  	if (ret) {
cbc5065be3a652f Sean Paul 2021-09-15  1196  		drm_err(dev, "HDCP 1.x capability check failed %d\n", ret);
cbc5065be3a652f Sean Paul 2021-09-15  1197  		goto out;
cbc5065be3a652f Sean Paul 2021-09-15  1198  	}
cbc5065be3a652f Sean Paul 2021-09-15  1199  	if (capable && conn_state->content_type != DRM_MODE_HDCP_CONTENT_TYPE1) {
cbc5065be3a652f Sean Paul 2021-09-15  1200  		data->enabled_type = DRM_MODE_HDCP_CONTENT_TYPE0;
cbc5065be3a652f Sean Paul 2021-09-15  1201  		ret = drm_hdcp_helper_hdcp1_enable(data);
cbc5065be3a652f Sean Paul 2021-09-15  1202  		if (!ret)
cbc5065be3a652f Sean Paul 2021-09-15  1203  			check_link_interval = DRM_HDCP_CHECK_PERIOD_MS;
cbc5065be3a652f Sean Paul 2021-09-15  1204  	}
cbc5065be3a652f Sean Paul 2021-09-15  1205  
cbc5065be3a652f Sean Paul 2021-09-15  1206  out:
cbc5065be3a652f Sean Paul 2021-09-15  1207  	if (!ret) {
cbc5065be3a652f Sean Paul 2021-09-15 @1208  		schedule_delayed_work(&data->check_work, check_link_interval);
cbc5065be3a652f Sean Paul 2021-09-15  1209  		drm_hdcp_update_value(data, DRM_MODE_CONTENT_PROTECTION_ENABLED,
cbc5065be3a652f Sean Paul 2021-09-15  1210  				      true);
cbc5065be3a652f Sean Paul 2021-09-15  1211  	}
cbc5065be3a652f Sean Paul 2021-09-15  1212  
cbc5065be3a652f Sean Paul 2021-09-15  1213  	drm_hdcp_helper_driver_unlock(data);
cbc5065be3a652f Sean Paul 2021-09-15  1214  	if (ret)
cbc5065be3a652f Sean Paul 2021-09-15  1215  		data->driver_mutex = NULL;
cbc5065be3a652f Sean Paul 2021-09-15  1216  
cbc5065be3a652f Sean Paul 2021-09-15  1217  out_data_mutex:
cbc5065be3a652f Sean Paul 2021-09-15  1218  	mutex_unlock(&data->mutex);
cbc5065be3a652f Sean Paul 2021-09-15  1219  	return ret;
cbc5065be3a652f Sean Paul 2021-09-15  1220  }
cbc5065be3a652f Sean Paul 2021-09-15  1221  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 35196 bytes --]

^ permalink raw reply	[flat|nested] 87+ messages in thread

end of thread, other threads:[~2021-09-29 14:52 UTC | newest]

Thread overview: 87+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-15 20:38 [PATCH v2 00/13] drm/hdcp: Pull HDCP auth/exchange/check into helpers Sean Paul
2021-09-15 20:38 ` [Intel-gfx] " Sean Paul
2021-09-15 20:38 ` [PATCH v2 01/13] drm/hdcp: Add drm_hdcp_atomic_check() Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-15 20:38 ` [PATCH v2 02/13] drm/hdcp: Avoid changing crtc state in hdcp atomic check Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-15 20:38 ` [PATCH v2 03/13] drm/hdcp: Update property value on content type and user changes Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-16 22:48   ` kernel test robot
2021-09-16 22:48     ` kernel test robot
2021-09-15 20:38 ` [PATCH v2 04/13] drm/hdcp: Expand HDCP helper library for enable/disable/check Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-21 23:34   ` [Freedreno] " abhinavk
2021-09-21 23:34     ` [Intel-gfx] " abhinavk
2021-09-28 17:33     ` Sean Paul
2021-09-28 17:33       ` [Intel-gfx] " Sean Paul
2021-09-28 21:28       ` abhinavk
2021-09-28 21:28         ` abhinavk
2021-09-15 20:38 ` [PATCH v2 05/13] drm/i915/hdcp: Consolidate HDCP setup/state cache Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-15 20:38 ` [PATCH v2 06/13] drm/i915/hdcp: Retain hdcp_capable return codes Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-15 20:38 ` [PATCH v2 07/13] drm/i915/hdcp: Use HDCP helpers for i915 Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-17  0:10   ` kernel test robot
2021-09-17  0:10     ` kernel test robot
2021-09-15 20:38 ` [PATCH v2 08/13] drm/msm/dpu_kms: Re-order dpu includes Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-17  3:54   ` Stephen Boyd
2021-09-17  3:54     ` Stephen Boyd
2021-09-17  3:54     ` [Intel-gfx] " Stephen Boyd
2021-09-22  2:26   ` [Freedreno] " abhinavk
2021-09-22  2:26     ` [Intel-gfx] " abhinavk
2021-09-15 20:38 ` [PATCH v2 09/13] drm/msm/dpu: Remove useless checks in dpu_encoder Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-17  3:54   ` Stephen Boyd
2021-09-17  3:54     ` Stephen Boyd
2021-09-17  3:54     ` [Intel-gfx] " Stephen Boyd
2021-09-15 20:38 ` [PATCH v2 10/13] drm/msm/dpu: Remove encoder->enable() hack Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-17  3:53   ` Stephen Boyd
2021-09-17  3:53     ` Stephen Boyd
2021-09-17  3:53     ` [Intel-gfx] " Stephen Boyd
2021-09-17 17:25     ` Sean Paul
2021-09-17 17:25       ` [Intel-gfx] " Sean Paul
2021-09-15 20:38 ` [PATCH v2 11/13] drm/msm/dp: Re-order dp_audio_put in deinit_sub_modules Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-17  3:51   ` Stephen Boyd
2021-09-17  3:51     ` [Intel-gfx] " Stephen Boyd
2021-09-17  3:51     ` Stephen Boyd
2021-09-15 20:38 ` [PATCH v2 12/13] dt-bindings: msm/dp: Add bindings for HDCP registers Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-16 12:21   ` Rob Herring
2021-09-16 12:21     ` [Intel-gfx] " Rob Herring
2021-09-16 12:58   ` Rob Herring
2021-09-16 12:58     ` [Intel-gfx] " Rob Herring
2021-09-15 20:38 ` [PATCH v2 13/13] drm/msm: Implement HDCP 1.x using the new drm HDCP helpers Sean Paul
2021-09-15 20:38   ` [Intel-gfx] " Sean Paul
2021-09-17  4:30   ` kernel test robot
2021-09-17  4:30     ` kernel test robot
2021-09-17  4:30     ` [Intel-gfx] " kernel test robot
2021-09-17  6:00   ` Stephen Boyd
2021-09-17  6:00     ` [Intel-gfx] " Stephen Boyd
2021-09-17  6:00     ` Stephen Boyd
2021-09-17 21:05     ` Sean Paul
2021-09-17 21:05       ` [Intel-gfx] " Sean Paul
2021-09-22  2:25   ` [Intel-gfx] [Freedreno] " abhinavk
2021-09-22  2:25     ` abhinavk
2021-09-28 18:02     ` Sean Paul
2021-09-28 18:02       ` [Intel-gfx] " Sean Paul
2021-09-28 21:35       ` abhinavk
2021-09-28 21:35         ` [Intel-gfx] " abhinavk
2021-09-29 14:52         ` Sean Paul
2021-09-29 14:52           ` [Intel-gfx] " Sean Paul
2021-09-15 21:58 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/hdcp: Pull HDCP auth/exchange/check into helpers Patchwork
2021-09-17 12:49   ` Jani Nikula
2021-09-17 12:51 ` [Intel-gfx] [PATCH v2 00/13] " Jani Nikula
2021-09-22  2:30 ` [Freedreno] " abhinavk
2021-09-22  2:30   ` [Intel-gfx] " abhinavk
2021-09-28 18:06   ` Sean Paul
2021-09-28 18:06     ` [Intel-gfx] " Sean Paul
2021-09-28 21:23     ` abhinavk
2021-09-28 21:23       ` [Intel-gfx] " abhinavk
2021-09-17  1:29 [PATCH v2 04/13] drm/hdcp: Expand HDCP helper library for enable/disable/check kernel test robot
2021-09-17 10:58 ` [kbuild] " Dan Carpenter
2021-09-17 10:58 ` Dan Carpenter
2021-09-17 10:58 ` [Intel-gfx] " Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.