Lines Matching refs:hdcp

132 	struct intel_hdcp *hdcp = &connector->hdcp;
139 data->streams[0].stream_type = hdcp->content_type;
184 const struct intel_hdcp_shim *shim = connector->hdcp.shim;
208 struct intel_hdcp *hdcp = &connector->hdcp;
211 if (!hdcp->hdcp2_supported)
221 mutex_lock(&i915->display.hdcp.hdcp_mutex);
222 if (!i915->display.hdcp.comp_added || !i915->display.hdcp.arbiter) {
223 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
226 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
234 struct intel_hdcp *hdcp = &connector->hdcp;
241 hdcp->shim->hdcp_2_2_get_capability(connector, &capable);
250 struct intel_hdcp *hdcp = &connector->hdcp;
252 if (!hdcp->shim->get_remote_hdcp_capability)
255 hdcp->shim->get_remote_hdcp_capability(connector, hdcp_capable,
319 * Another req for hdcp key loadability is enabled state of pll for
446 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
688 const struct intel_hdcp_shim *shim = connector->hdcp.shim;
771 struct intel_hdcp *hdcp = &connector->hdcp;
772 const struct intel_hdcp_shim *shim = hdcp->shim;
773 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
929 transcoder_name(hdcp->stream_transcoder));
943 struct intel_hdcp *hdcp = &connector->hdcp;
945 enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
952 if (hdcp->shim->stream_encryption) {
953 ret = hdcp->shim->stream_encryption(connector, false);
960 transcoder_name(hdcp->stream_transcoder));
970 hdcp->hdcp_encrypted = false;
984 ret = hdcp->shim->toggle_signalling(dig_port, cpu_transcoder, false);
997 struct intel_hdcp *hdcp = &connector->hdcp;
1024 hdcp->hdcp_encrypted = true;
1039 static struct intel_connector *intel_hdcp_to_connector(struct intel_hdcp *hdcp)
1041 return container_of(hdcp, struct intel_connector, hdcp);
1049 struct intel_hdcp *hdcp = &connector->hdcp;
1052 drm_WARN_ON(connector->base.dev, !mutex_is_locked(&hdcp->mutex));
1054 if (hdcp->value == value)
1059 if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
1066 hdcp->value = value;
1069 queue_work(i915->unordered_wq, &hdcp->prop_work);
1078 struct intel_hdcp *hdcp = &connector->hdcp;
1083 mutex_lock(&hdcp->mutex);
1086 cpu_transcoder = hdcp->cpu_transcoder;
1089 if (hdcp->value != DRM_MODE_CONTENT_PROTECTION_ENABLED ||
1090 !hdcp->hdcp_encrypted) {
1108 if (hdcp->shim->check_link(dig_port, connector)) {
1109 if (hdcp->value != DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
1122 drm_err(&i915->drm, "Failed to disable hdcp (%d)\n", ret);
1134 mutex_unlock(&hdcp->mutex);
1140 struct intel_hdcp *hdcp = container_of(work, struct intel_hdcp,
1142 struct intel_connector *connector = intel_hdcp_to_connector(hdcp);
1146 mutex_lock(&hdcp->mutex);
1151 * we're running just after hdcp has been disabled, so just exit
1153 if (hdcp->value != DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
1155 hdcp->value);
1157 mutex_unlock(&hdcp->mutex);
1179 mutex_lock(&i915->display.hdcp.hdcp_mutex);
1180 arbiter = i915->display.hdcp.arbiter;
1183 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1191 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1209 mutex_lock(&i915->display.hdcp.hdcp_mutex);
1210 arbiter = i915->display.hdcp.arbiter;
1213 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1223 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1237 mutex_lock(&i915->display.hdcp.hdcp_mutex);
1238 arbiter = i915->display.hdcp.arbiter;
1241 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1248 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1263 mutex_lock(&i915->display.hdcp.hdcp_mutex);
1264 arbiter = i915->display.hdcp.arbiter;
1267 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1275 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1290 mutex_lock(&i915->display.hdcp.hdcp_mutex);
1291 arbiter = i915->display.hdcp.arbiter;
1294 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1302 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1317 mutex_lock(&i915->display.hdcp.hdcp_mutex);
1318 arbiter = i915->display.hdcp.arbiter;
1321 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1329 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1343 mutex_lock(&i915->display.hdcp.hdcp_mutex);
1344 arbiter = i915->display.hdcp.arbiter;
1347 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1355 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1372 mutex_lock(&i915->display.hdcp.hdcp_mutex);
1373 arbiter = i915->display.hdcp.arbiter;
1376 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1387 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1402 mutex_lock(&i915->display.hdcp.hdcp_mutex);
1403 arbiter = i915->display.hdcp.arbiter;
1406 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1413 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1426 mutex_lock(&i915->display.hdcp.hdcp_mutex);
1427 arbiter = i915->display.hdcp.arbiter;
1430 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1436 drm_dbg_kms(&i915->drm, "Enable hdcp auth failed. %d\n",
1438 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1450 mutex_lock(&i915->display.hdcp.hdcp_mutex);
1451 arbiter = i915->display.hdcp.arbiter;
1454 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1460 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
1474 struct intel_hdcp *hdcp = &connector->hdcp;
1482 const struct intel_hdcp_shim *shim = hdcp->shim;
1487 hdcp->seq_num_v = 0;
1488 hdcp->seq_num_m = 0;
1509 hdcp->is_repeater = HDCP_2_2_RX_REPEATER(msgs.send_cert.rx_caps[2]);
1523 &hdcp->is_paired,
1541 if (!hdcp->is_paired) {
1553 hdcp->is_paired = true;
1561 struct intel_hdcp *hdcp = &connector->hdcp;
1566 const struct intel_hdcp_shim *shim = hdcp->shim;
1596 struct intel_hdcp *hdcp = &connector->hdcp;
1604 ret = hdcp->shim->write_2_2_msg(connector, &send_eks,
1617 struct intel_hdcp *hdcp = &connector->hdcp;
1622 const struct intel_hdcp_shim *shim = hdcp->shim;
1625 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX)
1630 drm_hdcp_cpu_to_be24(msgs.stream_manage.seq_num_m, hdcp->seq_num_m);
1652 data->seq_num_m = hdcp->seq_num_m;
1657 hdcp->seq_num_m++;
1667 struct intel_hdcp *hdcp = &connector->hdcp;
1672 const struct intel_hdcp_shim *shim = hdcp->shim;
1698 if (!dig_port->hdcp_mst_type1_capable && hdcp->content_type) {
1708 if (!hdcp->hdcp2_encrypted && seq_num_v) {
1714 if (seq_num_v < hdcp->seq_num_v) {
1735 hdcp->seq_num_v = seq_num_v;
1747 struct intel_hdcp *hdcp = &connector->hdcp;
1748 const struct intel_hdcp_shim *shim = hdcp->shim;
1772 hdcp->is_repeater,
1773 hdcp->content_type);
1778 if (hdcp->is_repeater) {
1795 struct intel_hdcp *hdcp = &connector->hdcp;
1796 enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
1808 if (hdcp->shim->stream_2_2_encryption) {
1809 ret = hdcp->shim->stream_2_2_encryption(connector, true);
1816 transcoder_name(hdcp->stream_transcoder));
1835 struct intel_hdcp *hdcp = &connector->hdcp;
1837 enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
1843 if (hdcp->shim->toggle_signalling) {
1844 ret = hdcp->shim->toggle_signalling(dig_port, cpu_transcoder,
1874 struct intel_hdcp *hdcp = &connector->hdcp;
1876 enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
1893 if (hdcp->shim->toggle_signalling) {
1894 ret = hdcp->shim->toggle_signalling(dig_port, cpu_transcoder,
1913 if (!connector->hdcp.is_repeater)
1922 if (connector->hdcp.seq_num_m > HDCP_2_2_SEQ_NUM_MAX) {
1969 /* Clearing the mei hdcp session */
2001 struct intel_hdcp *hdcp = &connector->hdcp;
2006 hdcp->content_type);
2011 hdcp->content_type, ret);
2017 hdcp->content_type);
2019 hdcp->hdcp2_encrypted = true;
2029 struct intel_hdcp *hdcp = &connector->hdcp;
2035 if (hdcp->shim->stream_2_2_encryption) {
2036 ret = hdcp->shim->stream_2_2_encryption(connector, false);
2043 transcoder_name(hdcp->stream_transcoder));
2054 connector->hdcp.hdcp2_encrypted = false;
2066 struct intel_hdcp *hdcp = &connector->hdcp;
2071 mutex_lock(&hdcp->mutex);
2073 cpu_transcoder = hdcp->cpu_transcoder;
2076 if (hdcp->value != DRM_MODE_CONTENT_PROTECTION_ENABLED ||
2077 !hdcp->hdcp2_encrypted) {
2095 ret = hdcp->shim->check_2_2_link(dig_port, connector);
2097 if (hdcp->value != DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
2106 if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
2131 mutex_unlock(&hdcp->mutex);
2137 struct intel_hdcp *hdcp = container_of(to_delayed_work(work),
2140 struct intel_connector *connector = intel_hdcp_to_connector(hdcp);
2147 queue_delayed_work(i915->unordered_wq, &hdcp->check_work,
2150 queue_delayed_work(i915->unordered_wq, &hdcp->check_work,
2160 mutex_lock(&i915->display.hdcp.hdcp_mutex);
2161 i915->display.hdcp.arbiter = (struct i915_hdcp_arbiter *)data;
2162 i915->display.hdcp.arbiter->hdcp_dev = mei_kdev;
2163 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
2174 mutex_lock(&i915->display.hdcp.hdcp_mutex);
2175 i915->display.hdcp.arbiter = NULL;
2176 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
2266 mutex_lock(&i915->display.hdcp.hdcp_mutex);
2267 drm_WARN_ON(&i915->drm, i915->display.hdcp.comp_added);
2269 i915->display.hdcp.comp_added = true;
2270 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
2280 mutex_lock(&i915->display.hdcp.hdcp_mutex);
2281 i915->display.hdcp.comp_added = false;
2282 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
2292 struct intel_hdcp *hdcp = &connector->hdcp;
2297 drm_dbg_kms(&i915->drm, "Mei hdcp data init failed\n");
2301 hdcp->hdcp2_supported = true;
2309 struct intel_hdcp *hdcp = &connector->hdcp;
2320 hdcp->hdcp2_supported);
2322 hdcp->hdcp2_supported = false;
2327 hdcp->shim = shim;
2328 mutex_init(&hdcp->mutex);
2329 INIT_DELAYED_WORK(&hdcp->check_work, intel_hdcp_check_work);
2330 INIT_WORK(&hdcp->prop_work, intel_hdcp_prop_work);
2331 init_waitqueue_head(&hdcp->cp_irq_queue);
2345 struct intel_hdcp *hdcp = &connector->hdcp;
2349 if (!hdcp->shim)
2358 mutex_lock(&hdcp->mutex);
2361 hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
2362 hdcp->content_type = (u8)conn_state->hdcp_content_type;
2365 hdcp->cpu_transcoder = pipe_config->mst_master_transcoder;
2366 hdcp->stream_transcoder = pipe_config->cpu_transcoder;
2368 hdcp->cpu_transcoder = pipe_config->cpu_transcoder;
2369 hdcp->stream_transcoder = INVALID_TRANSCODER;
2374 intel_get_hdcp_transcoder(hdcp->cpu_transcoder);
2392 hdcp->content_type != DRM_MODE_HDCP_CONTENT_TYPE1) {
2397 queue_delayed_work(i915->unordered_wq, &hdcp->check_work,
2405 mutex_unlock(&hdcp->mutex);
2416 struct intel_hdcp *hdcp = &connector->hdcp;
2419 * Enable hdcp if it's desired or if userspace is enabled and
2425 DRM_MODE_CONTENT_PROTECTION_ENABLED && hdcp->value ==
2433 struct intel_hdcp *hdcp = &connector->hdcp;
2436 if (!hdcp->shim)
2439 mutex_lock(&hdcp->mutex);
2442 if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
2447 if (hdcp->hdcp2_encrypted)
2449 else if (hdcp->hdcp_encrypted)
2454 mutex_unlock(&hdcp->mutex);
2455 cancel_delayed_work_sync(&hdcp->check_work);
2466 struct intel_hdcp *hdcp = &connector->hdcp;
2470 if (!connector->hdcp.shim)
2474 (conn_state->hdcp_content_type != hdcp->content_type &&
2488 * Mark the hdcp state as DESIRED after the hdcp disable of type
2492 mutex_lock(&hdcp->mutex);
2493 hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
2495 queue_work(i915->unordered_wq, &hdcp->prop_work);
2496 mutex_unlock(&hdcp->mutex);
2501 mutex_lock(&hdcp->mutex);
2502 /* Avoid enabling hdcp, if it already ENABLED */
2504 hdcp->value != DRM_MODE_CONTENT_PROTECTION_ENABLED;
2505 mutex_unlock(&hdcp->mutex);
2512 queue_work(i915->unordered_wq, &hdcp->prop_work);
2522 mutex_lock(&i915->display.hdcp.hdcp_mutex);
2523 if (!i915->display.hdcp.comp_added) {
2524 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
2528 i915->display.hdcp.comp_added = false;
2529 mutex_unlock(&i915->display.hdcp.hdcp_mutex);
2539 struct intel_hdcp *hdcp = &connector->hdcp;
2541 if (!hdcp->shim)
2555 cancel_delayed_work_sync(&hdcp->check_work);
2566 drm_WARN_ON(connector->base.dev, work_pending(&hdcp->prop_work));
2568 mutex_lock(&hdcp->mutex);
2569 hdcp->shim = NULL;
2570 mutex_unlock(&hdcp->mutex);
2607 * the last commit. And also no change in hdcp content type.
2623 struct intel_hdcp *hdcp = &connector->hdcp;
2626 if (!hdcp->shim)
2629 atomic_inc(&connector->hdcp.cp_irq_count);
2630 wake_up_all(&connector->hdcp.cp_irq_queue);
2632 queue_delayed_work(i915->unordered_wq, &hdcp->check_work, 0);