summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYifan Zhang <yifan1.zhang@amd.com>2022-06-10 20:43:25 +0800
committerGuchun Chen <guchun.chen@amd.com>2022-06-16 20:54:14 +0800
commit7d7f742677407231b322b22f55a4b52eb7e4fe8e (patch)
tree2b9c8580eb172b42ca483e498376d47280aa6e09
parenteef55e9b0422e7af835c69ce5a5ccf2c25f64956 (diff)
drm/amdkcl: Check if display_info->edid_hdmi_rgb444_dc_modes is definedamd-22.20
Check if display_info->edid_hdmi_rgb444_dc_modes is defined introduced in v4.9-rc1-522171951761153172c75b94ae1f4bc9ab631745 Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com> Signed-off-by: Ma Jun <majun@amd.com> Change-Id: Ic2659a288fae2af696cf2c3d20c3e97491341c5f
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c4
-rw-r--r--drivers/gpu/drm/amd/dkms/config/config.h3
-rw-r--r--drivers/gpu/drm/amd/dkms/m4/drm-display-info.m420
3 files changed, 27 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
index df8c7f25e61b..29003b3b5fc5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -206,7 +206,11 @@ int amdgpu_connector_get_monitor_bpc(struct drm_connector *connector)
/* Check if bpc is within clock limit. Try to degrade gracefully otherwise */
if ((bpc == 12) && (mode_clock * 3/2 > max_tmds_clock)) {
+#ifndef HAVE_DRM_DISPLAY_INFO_EDID_HDMI_RGB444_DC_MODES
if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) &&
+#else
+ if ((connector->display_info.edid_hdmi_rgb444_dc_modes & DRM_EDID_HDMI_DC_30) &&
+#endif
(mode_clock * 5/4 <= max_tmds_clock))
bpc = 10;
else
diff --git a/drivers/gpu/drm/amd/dkms/config/config.h b/drivers/gpu/drm/amd/dkms/config/config.h
index 9fbcdef2b828..d151b0d7be26 100644
--- a/drivers/gpu/drm/amd/dkms/config/config.h
+++ b/drivers/gpu/drm/amd/dkms/config/config.h
@@ -300,6 +300,9 @@
/* drm_dev_unplug() is available */
#define HAVE_DRM_DEV_UNPLUG 1
+/* display_info->edid_hdmi_rgb444_dc_modes is available */
+/* #undef HAVE_DRM_DISPLAY_INFO_EDID_HDMI_RGB444_DC_MODES */
+
/* display_info->hdmi.scdc.scrambling are available */
#define HAVE_DRM_DISPLAY_INFO_HDMI_SCDC_SCRAMBLING 1
diff --git a/drivers/gpu/drm/amd/dkms/m4/drm-display-info.m4 b/drivers/gpu/drm/amd/dkms/m4/drm-display-info.m4
index 6caf2e897645..30a3f0e477d7 100644
--- a/drivers/gpu/drm/amd/dkms/m4/drm-display-info.m4
+++ b/drivers/gpu/drm/amd/dkms/m4/drm-display-info.m4
@@ -31,6 +31,25 @@ AC_DEFUN([AC_AMDGPU_DRM_DISPLAY_INFO_MAX_TMDS_CLOCK], [
])
dnl #
+dnl # commit v4.9-rc1-522171951761153172c75b94ae1f4bc9ab631745
+dnl # drm: Extract drm_connector.[hc]
+dnl #
+AC_DEFUN([AC_AMDGPU_DRM_DISPLAY_INFO_EDID_HDMI_RGB444_DC_MODES], [
+ AC_KERNEL_DO_BACKGROUND([
+ AC_KERNEL_TRY_COMPILE([
+ #include <drm/drm_connector.h>
+ ], [
+ struct drm_display_info *display_info = NULL;
+ display_info->edid_hdmi_rgb444_dc_modes = 0;
+ ], [
+ AC_DEFINE(HAVE_DRM_DISPLAY_INFO_EDID_HDMI_RGB444_DC_MODES, 1,
+ [display_info->edid_hdmi_rgb444_dc_modes is available])
+ ])
+ ])
+])
+
+
+dnl #
dnl # commit v5.6-rc2-1062-ga1d11d1efe4d
dnl # drm/edid: Add function to parse EDID descriptors for monitor range
dnl #
@@ -52,5 +71,6 @@ AC_DEFUN([AC_AMDGPU_DRM_DISPLAY_INFO_MONITOR_RANGE], [
AC_DEFUN([AC_AMDGPU_DRM_DISPLAY_INFO], [
AC_AMDGPU_DRM_DISPLAY_INFO_HDMI_SCDC_SCRAMBLING
AC_AMDGPU_DRM_DISPLAY_INFO_MAX_TMDS_CLOCK
+ AC_AMDGPU_DRM_DISPLAY_INFO_EDID_HDMI_RGB444_DC_MODES
AC_AMDGPU_DRM_DISPLAY_INFO_MONITOR_RANGE
])