[RFC] added hdcp driver in hdmi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All.

This patch supports HDCP feature in Exynos DRM HDMI.
We enhaced feature of HDCP for content protection.
please check my commit and If you have any opinion of this patch.
please give comment to me.

HDCP stands for High-bandwidth Digital Content Protection.
contains an integrated HDCP encryption engine
for video/audio content protection.
supports version HDCP v1.1.
Exynos supports embedded HDCP key system.
The HDCP key value is fused during fabrication, based on customer's request.

First part authentication protocol.
The HDCP transmitter(Device A) can initiate authentication at any time.
Authentication is initiated by the HDCP transmitter by sending an An, Aksv.
An(64-bit psedo-random value), Aksv(Transmitter Key Selection Vector).
The HDCP Receiver(Device B) generates Rj.
The HDCP Receiver responds by sending a response message Bksv.
Bksv(Receiver Key Selection Vector).
If authentication was successfull, then Ri will be equal to Rj.

Second part authentication protocol.
The second part of the authentication protocol is required
if the HDCP receiver is an HDCP repeater.
The HDCP transmitter executes the second part of the protocol only
when the REPEATER bit is set,
indicating that the attached HDCP receiver is an HDCP repeater.
This part of the protocol assembles a list of all downstream
KSVs attached to the HDCP repeater through a permitted connection tree,
enabling revocation support upstream.

Third part authentication protocol.
The third part of the authentication protocol occurs during
the vertical blanking interval preceding the frame for which it applies.
Each of the two HDCP devices calculates new cipher initialization values,
Ki and Mi, and a third value Ri. and asynchronous polling every 2 seconds.

Exynos scenario.
1. start encryption.
2. receive Bcaps, Bksv from peer device.
3. check repeater caps from Bcaps.
4. send An, Aksv to peer device.
5. receive Rj from peer device.
6. compare Ri, Rj. If same and not repeater, then start encryption.
7. If not same, retry. If repeater, then start second authentication.
8. stop encryption.

Thank's
BR
Eunchul Kim

Eunchul Kim (1):
  drm/exynos: added hdcp driver for contents protection.

 drivers/gpu/drm/exynos/Kconfig          |    6 +
 drivers/gpu/drm/exynos/Makefile         |    1 +
 drivers/gpu/drm/exynos/exynos_drm_drv.c |   12 +
 drivers/gpu/drm/exynos/exynos_drm_drv.h |    1 +
 drivers/gpu/drm/exynos/exynos_hdcp.c    | 1164 +++++++++++++++++++++++++++++++
 drivers/gpu/drm/exynos/exynos_hdcp.h    |   47 ++
 drivers/gpu/drm/exynos/exynos_hdmi.c    |   11 +
 drivers/gpu/drm/exynos/exynos_hdmi.h    |    7 +
 drivers/gpu/drm/exynos/regs-hdmi.h      |  177 +++++
 9 files changed, 1426 insertions(+), 0 deletions(-)
 create mode 100644 drivers/gpu/drm/exynos/exynos_hdcp.c
 create mode 100644 drivers/gpu/drm/exynos/exynos_hdcp.h

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux