aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0023-drm-amd-dc-dm-remove-redundant-display-structs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0023-drm-amd-dc-dm-remove-redundant-display-structs.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/0023-drm-amd-dc-dm-remove-redundant-display-structs.patch127
1 files changed, 127 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0023-drm-amd-dc-dm-remove-redundant-display-structs.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0023-drm-amd-dc-dm-remove-redundant-display-structs.patch
new file mode 100644
index 00000000..371bd0fa
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0023-drm-amd-dc-dm-remove-redundant-display-structs.patch
@@ -0,0 +1,127 @@
+From 0111d2ec86f29247f8ab2beeb9d5023a62dc0089 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Tue, 13 Dec 2016 15:42:48 -0500
+Subject: [PATCH 0023/4131] drm/amd/dc/dm: remove redundant display structs
+
+Now that the mc_access functions are gone, we no longer
+need separate structs for all the different dce families
+in dm.
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 60 ++---------------------
+ 1 file changed, 4 insertions(+), 56 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 571ac8f..e30f85c 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -1391,48 +1391,7 @@ static int amdgpu_notify_freesync(struct drm_device *dev, void *data,
+ return r;
+ }
+
+-#ifdef CONFIG_DRM_AMDGPU_CIK
+-static const struct amdgpu_display_funcs dm_dce_v8_0_display_funcs = {
+- .bandwidth_update = dm_bandwidth_update, /* called unconditionally */
+- .vblank_get_counter = dm_vblank_get_counter,/* called unconditionally */
+- .vblank_wait = NULL,
+- .backlight_set_level =
+- dm_set_backlight_level,/* called unconditionally */
+- .backlight_get_level =
+- dm_get_backlight_level,/* called unconditionally */
+- .hpd_sense = NULL,/* called unconditionally */
+- .hpd_set_polarity = NULL, /* called unconditionally */
+- .hpd_get_gpio_reg = NULL, /* VBIOS parsing. DAL does it. */
+- .page_flip = dm_page_flip, /* called unconditionally */
+- .page_flip_get_scanoutpos =
+- dm_crtc_get_scanoutpos,/* called unconditionally */
+- .add_encoder = NULL, /* VBIOS parsing. DAL does it. */
+- .add_connector = NULL, /* VBIOS parsing. DAL does it. */
+- .notify_freesync = amdgpu_notify_freesync,
+-};
+-#endif
+-
+-static const struct amdgpu_display_funcs dm_dce_v10_0_display_funcs = {
+- .bandwidth_update = dm_bandwidth_update, /* called unconditionally */
+- .vblank_get_counter = dm_vblank_get_counter,/* called unconditionally */
+- .vblank_wait = NULL,
+- .backlight_set_level =
+- dm_set_backlight_level,/* called unconditionally */
+- .backlight_get_level =
+- dm_get_backlight_level,/* called unconditionally */
+- .hpd_sense = NULL,/* called unconditionally */
+- .hpd_set_polarity = NULL, /* called unconditionally */
+- .hpd_get_gpio_reg = NULL, /* VBIOS parsing. DAL does it. */
+- .page_flip = dm_page_flip, /* called unconditionally */
+- .page_flip_get_scanoutpos =
+- dm_crtc_get_scanoutpos,/* called unconditionally */
+- .add_encoder = NULL, /* VBIOS parsing. DAL does it. */
+- .add_connector = NULL, /* VBIOS parsing. DAL does it. */
+- .notify_freesync = amdgpu_notify_freesync,
+-
+-};
+-
+-static const struct amdgpu_display_funcs dm_dce_v11_0_display_funcs = {
++static const struct amdgpu_display_funcs dm_display_funcs = {
+ .bandwidth_update = dm_bandwidth_update, /* called unconditionally */
+ .vblank_get_counter = dm_vblank_get_counter,/* called unconditionally */
+ .vblank_wait = NULL,
+@@ -1496,52 +1455,41 @@ static int dm_early_init(void *handle)
+ adev->mode_info.num_crtc = 6;
+ adev->mode_info.num_hpd = 6;
+ adev->mode_info.num_dig = 6;
+-#ifdef CONFIG_DRM_AMDGPU_CIK
+- if (adev->mode_info.funcs == NULL)
+- adev->mode_info.funcs = &dm_dce_v8_0_display_funcs;
+-#endif
+ break;
+ case CHIP_FIJI:
+ case CHIP_TONGA:
+ adev->mode_info.num_crtc = 6;
+ adev->mode_info.num_hpd = 6;
+ adev->mode_info.num_dig = 7;
+- if (adev->mode_info.funcs == NULL)
+- adev->mode_info.funcs = &dm_dce_v10_0_display_funcs;
+ break;
+ case CHIP_CARRIZO:
+ adev->mode_info.num_crtc = 3;
+ adev->mode_info.num_hpd = 6;
+ adev->mode_info.num_dig = 9;
+- if (adev->mode_info.funcs == NULL)
+- adev->mode_info.funcs = &dm_dce_v11_0_display_funcs;
+ break;
+ case CHIP_STONEY:
+ adev->mode_info.num_crtc = 2;
+ adev->mode_info.num_hpd = 6;
+ adev->mode_info.num_dig = 9;
+- if (adev->mode_info.funcs == NULL)
+- adev->mode_info.funcs = &dm_dce_v11_0_display_funcs;
+ break;
+ case CHIP_POLARIS11:
+ adev->mode_info.num_crtc = 5;
+ adev->mode_info.num_hpd = 5;
+ adev->mode_info.num_dig = 5;
+- if (adev->mode_info.funcs == NULL)
+- adev->mode_info.funcs = &dm_dce_v11_0_display_funcs;
+ break;
+ case CHIP_POLARIS10:
+ adev->mode_info.num_crtc = 6;
+ adev->mode_info.num_hpd = 6;
+ adev->mode_info.num_dig = 6;
+- if (adev->mode_info.funcs == NULL)
+- adev->mode_info.funcs = &dm_dce_v11_0_display_funcs;
+ break;
+ default:
+ DRM_ERROR("Usupported ASIC type: 0x%X\n", adev->asic_type);
+ return -EINVAL;
+ }
+
++ if (adev->mode_info.funcs == NULL)
++ adev->mode_info.funcs = &dm_display_funcs;
++
+ /* Note: Do NOT change adev->audio_endpt_rreg and
+ * adev->audio_endpt_wreg because they are initialised in
+ * amdgpu_device_init() */
+--
+2.7.4
+