aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3869-drm-amd-display-only-enable-HDCP-for-DCN.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3869-drm-amd-display-only-enable-HDCP-for-DCN.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3869-drm-amd-display-only-enable-HDCP-for-DCN.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3869-drm-amd-display-only-enable-HDCP-for-DCN.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3869-drm-amd-display-only-enable-HDCP-for-DCN.patch
new file mode 100644
index 00000000..d11b6447
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3869-drm-amd-display-only-enable-HDCP-for-DCN.patch
@@ -0,0 +1,65 @@
+From 6dbbd6d36510f31626a1cb59db68bbdcf8c92535 Mon Sep 17 00:00:00 2001
+From: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+Date: Mon, 24 Jun 2019 14:54:13 -0400
+Subject: [PATCH 3869/4256] drm/amd/display: only enable HDCP for DCN+
+
+[Why]
+We don't support HDCP for pre RAVEN asics
+
+[How]
+Check if we are RAVEN+. Use this to attach the content_protection
+property, this way usermode can't try to enable HDCP on pre DCN asics.
+
+Also we need to update the module on hpd so guard it aswell
+
+Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 16 ++++------------
+ 1 file changed, 4 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+index a6c04f490c48..05eb21d76cc6 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -1489,7 +1489,8 @@ static void handle_hpd_irq(void *param)
+ mutex_lock(&aconnector->hpd_lock);
+
+ #ifdef CONFIG_DRM_AMD_DC_HDCP
+- hdcp_reset_display(adev->dm.hdcp_workqueue, aconnector->dc_link->link_index);
++ if (adev->asic_type >= CHIP_RAVEN)
++ hdcp_reset_display(adev->dm.hdcp_workqueue, aconnector->dc_link->link_index);
+ #endif
+ if (aconnector->fake_enable)
+ aconnector->fake_enable = false;
+@@ -2191,16 +2192,6 @@ amdgpu_dm_register_backlight_device(struct amdgpu_display_manager *dm)
+ DRM_DEBUG_DRIVER("DM: Registered Backlight device: %s\n", bl_name);
+ }
+
+-#ifdef CONFIG_DRM_AMD_DC_HDCP
+- adev->dm.hdcp_workqueue = hdcp_create_workqueue(&adev->psp, &init_params.cp_psp, adev->dm.dc);
+-
+- if (!adev->dm.hdcp_workqueue)
+- DRM_ERROR("amdgpu: failed to initialize hdcp_workqueue.\n");
+- else
+- DRM_DEBUG_DRIVER("amdgpu: hdcp_workqueue init done %p.\n", adev->dm.hdcp_workqueue);
+-
+- dc_init_callbacks(adev->dm.dc, &init_params);
+-#endif
+ #endif
+
+ static int initialize_plane(struct amdgpu_display_manager *dm,
+@@ -5114,7 +5105,8 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm,
+ drm_object_attach_property(&aconnector->base.base,
+ adev->mode_info.freesync_capable_property, 0);
+ #ifdef CONFIG_DRM_AMD_DC_HDCP
+- drm_connector_attach_content_protection_property(&aconnector->base, false);
++ if (adev->asic_type >= CHIP_RAVEN)
++ drm_connector_attach_content_protection_property(&aconnector->base, false);
+ #endif
+ }
+ }
+--
+2.17.1
+