Lines Matching defs:hdcp

31 #include "hdcp.h"
149 static enum mod_hdcp_status read(struct mod_hdcp *hdcp,
158 if (is_dp_hdcp(hdcp)) {
161 success = hdcp->config.ddc.funcs.read_dpcd(hdcp->config.ddc.handle,
173 success = hdcp->config.ddc.funcs.read_i2c(
174 hdcp->config.ddc.handle,
184 static enum mod_hdcp_status read_repeatedly(struct mod_hdcp *hdcp,
196 status = read(hdcp, msg_id, buf + data_offset, cur_size);
208 static enum mod_hdcp_status write(struct mod_hdcp *hdcp,
217 if (is_dp_hdcp(hdcp)) {
220 success = hdcp->config.ddc.funcs.write_dpcd(
221 hdcp->config.ddc.handle,
233 hdcp->buf[0] = hdcp_i2c_offsets[msg_id];
234 memmove(&hdcp->buf[1], buf, buf_len);
235 success = hdcp->config.ddc.funcs.write_i2c(
236 hdcp->config.ddc.handle,
238 hdcp->buf,
245 enum mod_hdcp_status mod_hdcp_read_bksv(struct mod_hdcp *hdcp)
247 return read(hdcp, MOD_HDCP_MESSAGE_ID_READ_BKSV,
248 hdcp->auth.msg.hdcp1.bksv,
249 sizeof(hdcp->auth.msg.hdcp1.bksv));
252 enum mod_hdcp_status mod_hdcp_read_bcaps(struct mod_hdcp *hdcp)
254 return read(hdcp, MOD_HDCP_MESSAGE_ID_READ_BCAPS,
255 &hdcp->auth.msg.hdcp1.bcaps,
256 sizeof(hdcp->auth.msg.hdcp1.bcaps));
259 enum mod_hdcp_status mod_hdcp_read_bstatus(struct mod_hdcp *hdcp)
263 if (is_dp_hdcp(hdcp))
264 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_BSTATUS,
265 (uint8_t *)&hdcp->auth.msg.hdcp1.bstatus,
268 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_BSTATUS,
269 (uint8_t *)&hdcp->auth.msg.hdcp1.bstatus,
270 sizeof(hdcp->auth.msg.hdcp1.bstatus));
274 enum mod_hdcp_status mod_hdcp_read_r0p(struct mod_hdcp *hdcp)
276 return read(hdcp, MOD_HDCP_MESSAGE_ID_READ_RI_R0,
277 (uint8_t *)&hdcp->auth.msg.hdcp1.r0p,
278 sizeof(hdcp->auth.msg.hdcp1.r0p));
282 enum mod_hdcp_status mod_hdcp_read_ksvlist(struct mod_hdcp *hdcp)
286 if (is_dp_hdcp(hdcp))
287 status = read_repeatedly(hdcp, MOD_HDCP_MESSAGE_ID_READ_KSV_FIFO,
288 hdcp->auth.msg.hdcp1.ksvlist,
289 hdcp->auth.msg.hdcp1.ksvlist_size,
292 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_KSV_FIFO,
293 (uint8_t *)&hdcp->auth.msg.hdcp1.ksvlist,
294 hdcp->auth.msg.hdcp1.ksvlist_size);
298 enum mod_hdcp_status mod_hdcp_read_vp(struct mod_hdcp *hdcp)
302 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_VH_0,
303 &hdcp->auth.msg.hdcp1.vp[0], 4);
307 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_VH_1,
308 &hdcp->auth.msg.hdcp1.vp[4], 4);
312 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_VH_2,
313 &hdcp->auth.msg.hdcp1.vp[8], 4);
317 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_VH_3,
318 &hdcp->auth.msg.hdcp1.vp[12], 4);
322 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_VH_4,
323 &hdcp->auth.msg.hdcp1.vp[16], 4);
328 enum mod_hdcp_status mod_hdcp_read_binfo(struct mod_hdcp *hdcp)
332 if (is_dp_hdcp(hdcp))
333 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_BINFO,
334 (uint8_t *)&hdcp->auth.msg.hdcp1.binfo_dp,
335 sizeof(hdcp->auth.msg.hdcp1.binfo_dp));
342 enum mod_hdcp_status mod_hdcp_write_aksv(struct mod_hdcp *hdcp)
344 return write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_AKSV,
345 hdcp->auth.msg.hdcp1.aksv,
346 sizeof(hdcp->auth.msg.hdcp1.aksv));
349 enum mod_hdcp_status mod_hdcp_write_ainfo(struct mod_hdcp *hdcp)
351 return write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_AINFO,
352 &hdcp->auth.msg.hdcp1.ainfo,
353 sizeof(hdcp->auth.msg.hdcp1.ainfo));
356 enum mod_hdcp_status mod_hdcp_write_an(struct mod_hdcp *hdcp)
358 return write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_AN,
359 hdcp->auth.msg.hdcp1.an,
360 sizeof(hdcp->auth.msg.hdcp1.an));
363 enum mod_hdcp_status mod_hdcp_read_hdcp2version(struct mod_hdcp *hdcp)
367 if (is_dp_hdcp(hdcp))
370 status = read(hdcp, MOD_HDCP_MESSAGE_ID_HDCP2VERSION,
371 &hdcp->auth.msg.hdcp2.hdcp2version_hdmi,
372 sizeof(hdcp->auth.msg.hdcp2.hdcp2version_hdmi));
377 enum mod_hdcp_status mod_hdcp_read_rxcaps(struct mod_hdcp *hdcp)
381 if (!is_dp_hdcp(hdcp))
384 status = read(hdcp, MOD_HDCP_MESSAGE_ID_RX_CAPS,
385 hdcp->auth.msg.hdcp2.rxcaps_dp,
386 sizeof(hdcp->auth.msg.hdcp2.rxcaps_dp));
391 enum mod_hdcp_status mod_hdcp_read_rxstatus(struct mod_hdcp *hdcp)
395 if (is_dp_hdcp(hdcp)) {
396 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_RXSTATUS,
397 &hdcp->auth.msg.hdcp2.rxstatus_dp,
400 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_RXSTATUS,
401 (uint8_t *)&hdcp->auth.msg.hdcp2.rxstatus,
402 sizeof(hdcp->auth.msg.hdcp2.rxstatus));
407 enum mod_hdcp_status mod_hdcp_read_ake_cert(struct mod_hdcp *hdcp)
411 if (is_dp_hdcp(hdcp)) {
412 hdcp->auth.msg.hdcp2.ake_cert[0] = 3;
413 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_AKE_SEND_CERT,
414 hdcp->auth.msg.hdcp2.ake_cert+1,
415 sizeof(hdcp->auth.msg.hdcp2.ake_cert)-1);
418 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_AKE_SEND_CERT,
419 hdcp->auth.msg.hdcp2.ake_cert,
420 sizeof(hdcp->auth.msg.hdcp2.ake_cert));
425 enum mod_hdcp_status mod_hdcp_read_h_prime(struct mod_hdcp *hdcp)
429 if (is_dp_hdcp(hdcp)) {
430 hdcp->auth.msg.hdcp2.ake_h_prime[0] = 7;
431 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_AKE_SEND_H_PRIME,
432 hdcp->auth.msg.hdcp2.ake_h_prime+1,
433 sizeof(hdcp->auth.msg.hdcp2.ake_h_prime)-1);
436 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_AKE_SEND_H_PRIME,
437 hdcp->auth.msg.hdcp2.ake_h_prime,
438 sizeof(hdcp->auth.msg.hdcp2.ake_h_prime));
443 enum mod_hdcp_status mod_hdcp_read_pairing_info(struct mod_hdcp *hdcp)
447 if (is_dp_hdcp(hdcp)) {
448 hdcp->auth.msg.hdcp2.ake_pairing_info[0] = 8;
449 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_AKE_SEND_PAIRING_INFO,
450 hdcp->auth.msg.hdcp2.ake_pairing_info+1,
451 sizeof(hdcp->auth.msg.hdcp2.ake_pairing_info)-1);
454 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_AKE_SEND_PAIRING_INFO,
455 hdcp->auth.msg.hdcp2.ake_pairing_info,
456 sizeof(hdcp->auth.msg.hdcp2.ake_pairing_info));
461 enum mod_hdcp_status mod_hdcp_read_l_prime(struct mod_hdcp *hdcp)
465 if (is_dp_hdcp(hdcp)) {
466 hdcp->auth.msg.hdcp2.lc_l_prime[0] = 10;
467 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_LC_SEND_L_PRIME,
468 hdcp->auth.msg.hdcp2.lc_l_prime+1,
469 sizeof(hdcp->auth.msg.hdcp2.lc_l_prime)-1);
472 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_LC_SEND_L_PRIME,
473 hdcp->auth.msg.hdcp2.lc_l_prime,
474 sizeof(hdcp->auth.msg.hdcp2.lc_l_prime));
479 enum mod_hdcp_status mod_hdcp_read_rx_id_list(struct mod_hdcp *hdcp)
483 if (is_dp_hdcp(hdcp)) {
484 hdcp->auth.msg.hdcp2.rx_id_list[0] = 12;
485 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_REPEATER_AUTH_SEND_RECEIVERID_LIST,
486 hdcp->auth.msg.hdcp2.rx_id_list+1,
487 sizeof(hdcp->auth.msg.hdcp2.rx_id_list)-1);
490 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_REPEATER_AUTH_SEND_RECEIVERID_LIST,
491 hdcp->auth.msg.hdcp2.rx_id_list,
492 hdcp->auth.msg.hdcp2.rx_id_list_size);
497 enum mod_hdcp_status mod_hdcp_read_stream_ready(struct mod_hdcp *hdcp)
501 if (is_dp_hdcp(hdcp)) {
502 hdcp->auth.msg.hdcp2.repeater_auth_stream_ready[0] = 17;
503 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_REPEATER_AUTH_STREAM_READY,
504 hdcp->auth.msg.hdcp2.repeater_auth_stream_ready+1,
505 sizeof(hdcp->auth.msg.hdcp2.repeater_auth_stream_ready)-1);
508 status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_REPEATER_AUTH_STREAM_READY,
509 hdcp->auth.msg.hdcp2.repeater_auth_stream_ready,
510 sizeof(hdcp->auth.msg.hdcp2.repeater_auth_stream_ready));
515 enum mod_hdcp_status mod_hdcp_write_ake_init(struct mod_hdcp *hdcp)
519 if (is_dp_hdcp(hdcp))
520 status = write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_AKE_INIT,
521 hdcp->auth.msg.hdcp2.ake_init+1,
522 sizeof(hdcp->auth.msg.hdcp2.ake_init)-1);
524 status = write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_AKE_INIT,
525 hdcp->auth.msg.hdcp2.ake_init,
526 sizeof(hdcp->auth.msg.hdcp2.ake_init));
530 enum mod_hdcp_status mod_hdcp_write_no_stored_km(struct mod_hdcp *hdcp)
534 if (is_dp_hdcp(hdcp))
535 status = write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_AKE_NO_STORED_KM,
536 hdcp->auth.msg.hdcp2.ake_no_stored_km+1,
537 sizeof(hdcp->auth.msg.hdcp2.ake_no_stored_km)-1);
539 status = write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_AKE_NO_STORED_KM,
540 hdcp->auth.msg.hdcp2.ake_no_stored_km,
541 sizeof(hdcp->auth.msg.hdcp2.ake_no_stored_km));
545 enum mod_hdcp_status mod_hdcp_write_stored_km(struct mod_hdcp *hdcp)
549 if (is_dp_hdcp(hdcp))
550 status = write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_AKE_STORED_KM,
551 hdcp->auth.msg.hdcp2.ake_stored_km+1,
552 sizeof(hdcp->auth.msg.hdcp2.ake_stored_km)-1);
554 status = write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_AKE_STORED_KM,
555 hdcp->auth.msg.hdcp2.ake_stored_km,
556 sizeof(hdcp->auth.msg.hdcp2.ake_stored_km));
560 enum mod_hdcp_status mod_hdcp_write_lc_init(struct mod_hdcp *hdcp)
564 if (is_dp_hdcp(hdcp))
565 status = write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_LC_INIT,
566 hdcp->auth.msg.hdcp2.lc_init+1,
567 sizeof(hdcp->auth.msg.hdcp2.lc_init)-1);
569 status = write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_LC_INIT,
570 hdcp->auth.msg.hdcp2.lc_init,
571 sizeof(hdcp->auth.msg.hdcp2.lc_init));
575 enum mod_hdcp_status mod_hdcp_write_eks(struct mod_hdcp *hdcp)
579 if (is_dp_hdcp(hdcp))
580 status = write(hdcp,
582 hdcp->auth.msg.hdcp2.ske_eks+1,
583 sizeof(hdcp->auth.msg.hdcp2.ske_eks)-1);
585 status = write(hdcp,
587 hdcp->auth.msg.hdcp2.ske_eks,
588 sizeof(hdcp->auth.msg.hdcp2.ske_eks));
592 enum mod_hdcp_status mod_hdcp_write_repeater_auth_ack(struct mod_hdcp *hdcp)
596 if (is_dp_hdcp(hdcp))
597 status = write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_REPEATER_AUTH_SEND_ACK,
598 hdcp->auth.msg.hdcp2.repeater_auth_ack+1,
599 sizeof(hdcp->auth.msg.hdcp2.repeater_auth_ack)-1);
601 status = write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_REPEATER_AUTH_SEND_ACK,
602 hdcp->auth.msg.hdcp2.repeater_auth_ack,
603 sizeof(hdcp->auth.msg.hdcp2.repeater_auth_ack));
607 enum mod_hdcp_status mod_hdcp_write_stream_manage(struct mod_hdcp *hdcp)
611 if (is_dp_hdcp(hdcp))
612 status = write(hdcp,
614 hdcp->auth.msg.hdcp2.repeater_auth_stream_manage+1,
615 hdcp->auth.msg.hdcp2.stream_manage_size-1);
617 status = write(hdcp,
619 hdcp->auth.msg.hdcp2.repeater_auth_stream_manage,
620 hdcp->auth.msg.hdcp2.stream_manage_size);
624 enum mod_hdcp_status mod_hdcp_write_content_type(struct mod_hdcp *hdcp)
628 if (is_dp_hdcp(hdcp))
629 status = write(hdcp, MOD_HDCP_MESSAGE_ID_WRITE_CONTENT_STREAM_TYPE,
630 hdcp->auth.msg.hdcp2.content_stream_type_dp+1,
631 sizeof(hdcp->auth.msg.hdcp2.content_stream_type_dp)-1);