linux/drivers/gpu/drm
Ramalingam C 7672dbba85 drm: Add Content protection type property
This patch adds a DRM ENUM property to the selected connectors.
This property is used for mentioning the protected content's type
from userspace to kernel HDCP authentication.

Type of the stream is decided by the protected content providers.
Type 0 content can be rendered on any HDCP protected display wires.
But Type 1 content can be rendered only on HDCP2.2 protected paths.

So when a userspace sets this property to Type 1 and starts the HDCP
enable, kernel will honour it only if HDCP2.2 authentication is through
for type 1. Else HDCP enable will be failed.

Pekka have completed the Weston DRM-backend review in
https://gitlab.freedesktop.org/wayland/weston/merge_requests/48
and the UAPI for HDCP 2.2 looks good.

The userspace is accepted in Weston.

v2:
  cp_content_type is replaced with content_protection_type [daniel]
  check at atomic_set_property is removed [Maarten]
v3:
  %s/content_protection_type/hdcp_content_type [Pekka]
v4:
  property is created for the first requested connector and then reused.
	[Danvet]
v5:
  kernel doc nits addressed [Daniel]
  Rebased as part of patch reordering.
v6:
  Kernel docs are modified [pekka]
v7:
  More details in Kernel docs. [pekka]
v8:
  Few more clarification into kernel doc of content type [pekka]
v9:
  Small fixes in coding style.
v10:
  Moving DRM_MODE_HDCP_CONTENT_TYPEx definition to drm_hdcp.h [pekka]

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/320957/?series=57232&rev=14
2019-08-06 13:14:07 +05:30
..
amd drm/amdgpu: switch driver from bo->resv to bo->base.resv 2019-08-06 08:21:54 +02:00
arc drm/arc: Drop drm_gem_prime_export/import 2019-06-21 20:02:10 +02:00
arm drm/komeda: Enable dual-link support 2019-08-02 17:31:39 +01:00
armada Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
aspeed drm/prime: Actually remove DRIVER_PRIME everywhere 2019-06-21 17:30:32 +02:00
ast drm/vram: use embedded gem object 2019-08-06 08:21:53 +02:00
atmel-hlcdc Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
bochs drm/bochs: Use dev_get_drvdata 2019-08-06 09:20:58 +02:00
bridge drm/bridge/parade: Drop legacy GPIO header 2019-08-05 18:50:50 +02:00
cirrus drm/prime: Actually remove DRIVER_PRIME everywhere 2019-06-21 17:30:32 +02:00
etnaviv Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
exynos Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
fsl-dcu drm/fsl-dcu: drop use of drmP.h 2019-07-15 18:11:30 +02:00
gma500
hisilicon drm/vram: use embedded gem object 2019-08-06 08:21:53 +02:00
i2c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
i810 drm/i810: drop use of drmP.h 2019-07-17 12:52:55 +02:00
i915 drm: Add Content protection type property 2019-08-06 13:14:07 +05:30
imx drm/imx: imx-tve: Provide ddc symlink in connector's sysfs 2019-07-31 16:32:15 +02:00
ingenic DRM: ingenic: Add support for panels with 8-bit serial bus 2019-07-02 00:38:57 +02:00
lib
lima drm/lima: drop DRM_AUTH usage from the driver 2019-06-26 15:00:39 +01:00
mcde drm/mcde: Fix uninitialized variable 2019-06-25 00:10:24 +02:00
mediatek drm/mediatek: direct include of drm.h in mtk_drm_gem.c 2019-07-19 23:24:17 +02:00
meson drm/meson: drop use of drmP.h 2019-07-17 12:47:57 +02:00
mga drm/mga: drop use of drmP.h 2019-06-30 09:48:05 +02:00
mgag200 drm/mgag200: Provide ddc symlink in connector sysfs directory 2019-07-31 16:33:09 +02:00
msm drm: Switch to use DEVFREQ_GOV_SIMPLE_ONDEMAND constant 2019-07-25 16:14:43 -06:00
mxsfb drm/mxsfb: drop use of drmP.h 2019-07-15 18:11:30 +02:00
nouveau drm/nouveau: switch driver from bo->resv to bo->base.resv 2019-08-06 08:21:54 +02:00
omapdrm Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
panel drm/panel: jh057n00900: Use drm_panel_{unprepare, disable} consistently 2019-07-26 20:40:05 +02:00
panfrost drm: Switch to use DEVFREQ_GOV_SIMPLE_ONDEMAND constant 2019-07-25 16:14:43 -06:00
pl111 drm/pl111: Fix unused variable warning 2019-08-05 18:38:59 +02:00
qxl drm/qxl: Use dev_get_drvdata where possible 2019-08-06 09:20:58 +02:00
r128 drm/r128: drop use of drmP.h 2019-07-17 12:52:55 +02:00
radeon drm/radeon: switch driver from bo->resv to bo->base.resv 2019-08-06 08:21:54 +02:00
rcar-du drm/rcar-du: Drop drm_gem_prime_export/import 2019-06-21 20:08:38 +02:00
rockchip drm/rockchip: Use drm_atomic_helper_commit_tail_rpm 2019-07-26 14:48:03 -04:00
savage
scheduler drm/scheduler: drop use of drmP.h 2019-07-15 18:11:31 +02:00
selftests Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
shmobile drm/shmobile: drop use of drmP.h 2019-07-15 18:11:31 +02:00
sis
sti drm: sti: Provide ddc symlink in hdmi connector sysfs directory 2019-07-31 16:32:38 +02:00
stm drm/stm: attach gem fence to atomic state 2019-07-25 12:00:09 +02:00
sun4i drm/sun4i: hdmi: Provide ddc symlink in sun4i hdmi connector sysfs directory 2019-07-31 16:31:17 +02:00
tdfx drm/tdfx: drop use of drmP.h 2019-07-17 12:52:55 +02:00
tegra Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
tilcdc drm/tilcdc: Remove obsolete crtc_mode_valid() hack 2019-08-02 16:00:42 +03:00
tiny drm/gm12u320: Move driver to drm/tiny 2019-07-31 15:17:03 +02:00
ttm drm/ttm: drop ttm_buffer_object->resv 2019-08-06 08:21:54 +02:00
tve200 drm/tve200: drop use of drmP.h 2019-07-15 18:11:30 +02:00
udl drm/udl: drop use of drmP.h 2019-07-17 12:52:55 +02:00
v3d drm/v3d: drop use of drmP.h 2019-07-17 12:52:20 +02:00
vboxvideo drm/vram: use embedded gem object 2019-08-06 08:21:53 +02:00
vc4 Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
vgem drm/vgem: drop use of drmP.h 2019-07-17 12:52:55 +02:00
via drm/via: drop use of drmP.h 2019-07-25 17:35:20 +02:00
virtio drm/virtio: switch driver from bo->resv to bo->base.resv 2019-08-06 08:21:54 +02:00
vkms drm/vkms: drop use of drmP.h 2019-07-15 18:11:30 +02:00
vmwgfx drm/vmwgfx: switch driver from bo->resv to bo->base.resv 2019-08-06 08:21:54 +02:00
xen drm/xen: drop use of drmP.h 2019-07-15 18:11:30 +02:00
zte Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
ati_pcigart.c drm/ati_pcigart: drop dependency on drm_os_linux.h 2019-07-19 23:24:16 +02:00
drm_agpsupport.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_atomic_helper.c
drm_atomic_state_helper.c
drm_atomic_uapi.c drm: Add Content protection type property 2019-08-06 13:14:07 +05:30
drm_atomic.c
drm_auth.c
drm_blend.c
drm_bridge.c
drm_bufs.c drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
drm_cache.c
drm_client_modeset.c drm/modes: Skip invalid cmdline mode 2019-07-10 12:11:18 +02:00
drm_client.c drm/client: remove the exporting of drm_client_close 2019-07-09 11:34:39 +02:00
drm_color_mgmt.c
drm_connector.c drm: Add Content protection type property 2019-08-06 13:14:07 +05:30
drm_context.c
drm_crtc_helper_internal.h
drm_crtc_helper.c
drm_crtc_internal.h
drm_crtc.c
drm_damage_helper.c
drm_debugfs_crc.c drm/drm_debugfs_crc.c: Document that .verify_crc_source vfunc is required for enabling CRC support. 2019-08-02 17:28:22 +01:00
drm_debugfs.c
drm_dma.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_dp_aux_dev.c drm/dp_mst: Enable registration of AUX devices for MST ports 2019-07-25 16:39:35 -04:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm: Make the bw/link rate calculations more forgiving 2019-07-17 12:45:30 -04:00
drm_dp_mst_topology.c drm/mst: Fix sphinx warnings in drm_dp_msg_connector register functions 2019-07-26 14:48:03 -04:00
drm_drv.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
drm_dsc.c
drm_dumb_buffers.c Revert "drm/gem: Rename drm_gem_dumb_map_offset() to drm_gem_map_offset()" 2019-07-03 16:38:50 -06:00
drm_edid_load.c
drm_edid.c drm/edid: use for_each_displayid_db where applicable 2019-06-25 14:44:03 +10:00
drm_encoder_slave.c
drm_encoder.c
drm_fb_cma_helper.c
drm_fb_helper.c drm/fb-helper: Instanciate shadow FB if configured in device's mode_config 2019-07-09 10:25:02 +02:00
drm_file.c
drm_flip_work.c
drm_format_helper.c
drm_fourcc.c
drm_framebuffer.c
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c drm/fb: remove unused function: drm_gem_fbdev_fb_create() 2019-07-21 19:32:38 +02:00
drm_gem_shmem_helper.c drm: direct include of drm.h in drm_gem_shmem_helper.c 2019-07-19 23:24:17 +02:00
drm_gem_vram_helper.c drm/ttm: use gem vma_node 2019-08-06 08:21:54 +02:00
drm_gem.c dma-buf: add more reservation object locking wrappers 2019-08-05 09:28:43 +02:00
drm_hashtab.c
drm_hdcp.c drm: Add Content protection type property 2019-08-06 13:14:07 +05:30
drm_internal.h
drm_ioc32.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
drm_ioctl.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c
drm_legacy_misc.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_legacy.h
drm_lock.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_memory.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_mipi_dbi.c drm/tinydrm: Move mipi-dbi 2019-07-25 10:45:07 +02:00
drm_mipi_dsi.c bus_find_device: Unify the match callback with class_find_device 2019-06-24 05:22:31 +02:00
drm_mm.c drm: Allow range of 0 for drm_mm_insert_node_in_range() 2019-06-26 21:13:12 +01:00
drm_mode_config.c
drm_mode_object.c drm/kms: Catch mode_object lifetime errors 2019-07-10 17:17:14 +02:00
drm_modes.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
drm_modeset_helper.c
drm_modeset_lock.c docs conversion for v5.3-rc1 2019-07-16 12:21:41 -07:00
drm_of.c
drm_panel_orientation_quirks.c drm: panel-orientation-quirks: Add extra quirk table entry for GPD MicroPC 2019-07-01 16:58:09 +02:00
drm_panel.c
drm_pci.c
drm_plane_helper.c
drm_plane.c
drm_prime.c drm/prime: Ditch gem_prime_res_obj hook 2019-07-31 10:19:23 +02:00
drm_print.c
drm_probe_helper.c
drm_property.c
drm_rect.c
drm_scatter.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c
drm_syncobj.c drm/syncobj: fix leaking dma_fence in drm_syncobj_query_ioctl 2019-07-30 12:27:39 +02:00
drm_sysfs.c drm: Add ddc link in sysfs created by drm_connector 2019-07-31 16:26:33 +02:00
drm_trace_points.c
drm_trace.h
drm_vblank.c drm/vblank: drop use of DRM_WAIT_ON() 2019-08-03 16:07:39 +02:00
drm_vm.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_vma_manager.c
drm_vram_helper_common.c
drm_vram_mm_helper.c
drm_writeback.c
Kconfig drm/gm12u320: Move driver to drm/tiny 2019-07-31 15:17:03 +02:00
Makefile drm/gm12u320: Move driver to drm/tiny 2019-07-31 15:17:03 +02:00