aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4511-drm-amd-display-use-drm-defines-for-MAX-CASCADE-MASK.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4511-drm-amd-display-use-drm-defines-for-MAX-CASCADE-MASK.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4511-drm-amd-display-use-drm-defines-for-MAX-CASCADE-MASK.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4511-drm-amd-display-use-drm-defines-for-MAX-CASCADE-MASK.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4511-drm-amd-display-use-drm-defines-for-MAX-CASCADE-MASK.patch
new file mode 100644
index 00000000..20585ba3
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4511-drm-amd-display-use-drm-defines-for-MAX-CASCADE-MASK.patch
@@ -0,0 +1,75 @@
+From 50a7be8911fff66f9b4a719d80aab7cf89967fc1 Mon Sep 17 00:00:00 2001
+From: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+Date: Thu, 24 Oct 2019 16:07:43 -0400
+Subject: [PATCH 4511/4736] drm/amd/display: use drm defines for MAX CASCADE
+ MASK
+
+[Why]
+drm already has this define
+
+[How]
+drm Mask is 0x08 vs 0x0800. The reason is because drm mask
+works on a byte. ^^
+ =======||
+ ||
+Since the first byte is always zero we can ignore it and only check the
+second byte.
+
+Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+---
+ drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h | 4 ----
+ .../drm/amd/display/modules/hdcp/hdcp1_execution.c | 14 ++++++--------
+ 2 files changed, 6 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h
+index bfb32afc1868..f6bba487d1d4 100644
+--- a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h
++++ b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h
+@@ -35,8 +35,6 @@
+ /* TODO:
+ * Replace below defines with these
+ *
+- * #define DRM_HDCP_MAX_CASCADE_EXCEEDED(x) (x & BIT(3))
+- * #define DRM_HDCP_MAX_CASCADE_EXCEEDED(x) (x & BIT(3))
+ * #define HDCP_2_2_HDMI_RXSTATUS_MSG_SZ_HI(x) ((x) & 0x3)
+ * #define HDCP_2_2_HDMI_RXSTATUS_READY(x) ((x) & BIT(2))
+ * #define HDCP_2_2_HDMI_RXSTATUS_REAUTH_REQ(x) ((x) & BIT(3))
+@@ -46,8 +44,6 @@
+ * split the HDMI rxstatus into 2bytes before we can use usptream defs
+ */
+
+-#define BSTATUS_MAX_CASCADE_EXCEEDED_MASK 0x0800
+-#define BINFO_MAX_CASCADE_EXCEEDED_MASK_DP 0x0800
+ #define RXSTATUS_MSG_SIZE_MASK 0x03FF
+ #define RXSTATUS_READY_MASK 0x0400
+ #define RXSTATUS_REAUTH_REQUEST_MASK 0x0800
+diff --git a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_execution.c b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_execution.c
+index 4618abd6504f..4d11041a8c6f 100644
+--- a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_execution.c
++++ b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_execution.c
+@@ -92,15 +92,13 @@ static inline enum mod_hdcp_status check_no_max_cascade(struct mod_hdcp *hdcp)
+ enum mod_hdcp_status status;
+
+ if (is_dp_hdcp(hdcp))
+- status = (hdcp->auth.msg.hdcp1.binfo_dp &
+- BINFO_MAX_CASCADE_EXCEEDED_MASK_DP) ?
+- MOD_HDCP_STATUS_HDCP1_MAX_CASCADE_EXCEEDED_FAILURE :
+- MOD_HDCP_STATUS_SUCCESS;
++ status = DRM_HDCP_MAX_CASCADE_EXCEEDED(hdcp->auth.msg.hdcp1.binfo_dp >> 8)
++ ? MOD_HDCP_STATUS_HDCP1_MAX_CASCADE_EXCEEDED_FAILURE
++ : MOD_HDCP_STATUS_SUCCESS;
+ else
+- status = (hdcp->auth.msg.hdcp1.bstatus &
+- BSTATUS_MAX_CASCADE_EXCEEDED_MASK) ?
+- MOD_HDCP_STATUS_HDCP1_MAX_CASCADE_EXCEEDED_FAILURE :
+- MOD_HDCP_STATUS_SUCCESS;
++ status = DRM_HDCP_MAX_CASCADE_EXCEEDED(hdcp->auth.msg.hdcp1.bstatus >> 8)
++ ? MOD_HDCP_STATUS_HDCP1_MAX_CASCADE_EXCEEDED_FAILURE
++ : MOD_HDCP_STATUS_SUCCESS;
+ return status;
+ }
+
+--
+2.17.1
+