diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/3485-drm-amdgpu-remove-unused-display_vblank_wait-interfa.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/3485-drm-amdgpu-remove-unused-display_vblank_wait-interfa.patch | 410 |
1 files changed, 410 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/3485-drm-amdgpu-remove-unused-display_vblank_wait-interfa.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/3485-drm-amdgpu-remove-unused-display_vblank_wait-interfa.patch new file mode 100644 index 00000000..52d97551 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/3485-drm-amdgpu-remove-unused-display_vblank_wait-interfa.patch @@ -0,0 +1,410 @@ +From f010c5efa38620f8a0c1e07e94d9eb6de389a9b8 Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Fri, 2 Feb 2018 12:31:27 -0500 +Subject: [PATCH 3485/4131] drm/amdgpu: remove unused display_vblank_wait + interface +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +No longer used since we changed the MC programming sequence. + +Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - + drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 2 - + drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 61 ----------------------- + drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 61 ----------------------- + drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 59 ---------------------- + drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 61 ----------------------- + drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 14 ------ + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 1 - + 8 files changed, 260 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h +index 18478d4..99855ea 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h +@@ -1869,7 +1869,6 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring) + #define amdgpu_ih_decode_iv(adev, iv) (adev)->irq.ih_funcs->decode_iv((adev), (iv)) + #define amdgpu_ih_set_rptr(adev) (adev)->irq.ih_funcs->set_rptr((adev)) + #define amdgpu_display_vblank_get_counter(adev, crtc) (adev)->mode_info.funcs->vblank_get_counter((adev), (crtc)) +-#define amdgpu_display_vblank_wait(adev, crtc) (adev)->mode_info.funcs->vblank_wait((adev), (crtc)) + #define amdgpu_display_backlight_set_level(adev, e, l) (adev)->mode_info.funcs->backlight_set_level((e), (l)) + #define amdgpu_display_backlight_get_level(adev, e) (adev)->mode_info.funcs->backlight_get_level((e)) + #define amdgpu_display_hpd_sense(adev, h) (adev)->mode_info.funcs->hpd_sense((adev), (h)) +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h +index 9165b73..3df8843 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h +@@ -267,8 +267,6 @@ struct amdgpu_display_funcs { + void (*bandwidth_update)(struct amdgpu_device *adev); + /* get frame count */ + u32 (*vblank_get_counter)(struct amdgpu_device *adev, int crtc); +- /* wait for vblank */ +- void (*vblank_wait)(struct amdgpu_device *adev, int crtc); + /* set backlight level */ + void (*backlight_set_level)(struct amdgpu_encoder *amdgpu_encoder, + u8 level); +diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c +index e921df9..1ad802a 100644 +--- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c +@@ -190,66 +190,6 @@ static void dce_v10_0_audio_endpt_wreg(struct amdgpu_device *adev, + spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags); + } + +-static bool dce_v10_0_is_in_vblank(struct amdgpu_device *adev, int crtc) +-{ +- if (RREG32(mmCRTC_STATUS + crtc_offsets[crtc]) & +- CRTC_STATUS__CRTC_V_BLANK_MASK) +- return true; +- else +- return false; +-} +- +-static bool dce_v10_0_is_counter_moving(struct amdgpu_device *adev, int crtc) +-{ +- u32 pos1, pos2; +- +- pos1 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]); +- pos2 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]); +- +- if (pos1 != pos2) +- return true; +- else +- return false; +-} +- +-/** +- * dce_v10_0_vblank_wait - vblank wait asic callback. +- * +- * @adev: amdgpu_device pointer +- * @crtc: crtc to wait for vblank on +- * +- * Wait for vblank on the requested crtc (evergreen+). +- */ +-static void dce_v10_0_vblank_wait(struct amdgpu_device *adev, int crtc) +-{ +- unsigned i = 100; +- +- if (crtc >= adev->mode_info.num_crtc) +- return; +- +- if (!(RREG32(mmCRTC_CONTROL + crtc_offsets[crtc]) & CRTC_CONTROL__CRTC_MASTER_EN_MASK)) +- return; +- +- /* depending on when we hit vblank, we may be close to active; if so, +- * wait for another frame. +- */ +- while (dce_v10_0_is_in_vblank(adev, crtc)) { +- if (i++ == 100) { +- i = 0; +- if (!dce_v10_0_is_counter_moving(adev, crtc)) +- break; +- } +- } +- +- while (!dce_v10_0_is_in_vblank(adev, crtc)) { +- if (i++ == 100) { +- i = 0; +- if (!dce_v10_0_is_counter_moving(adev, crtc)) +- break; +- } +- } +-} +- + static u32 dce_v10_0_vblank_get_counter(struct amdgpu_device *adev, int crtc) + { + if (crtc >= adev->mode_info.num_crtc) +@@ -3615,7 +3555,6 @@ static void dce_v10_0_encoder_add(struct amdgpu_device *adev, + static const struct amdgpu_display_funcs dce_v10_0_display_funcs = { + .bandwidth_update = &dce_v10_0_bandwidth_update, + .vblank_get_counter = &dce_v10_0_vblank_get_counter, +- .vblank_wait = &dce_v10_0_vblank_wait, + .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level, + .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level, + .hpd_sense = &dce_v10_0_hpd_sense, +diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c +index c5151c1..0230f8f 100644 +--- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c +@@ -207,66 +207,6 @@ static void dce_v11_0_audio_endpt_wreg(struct amdgpu_device *adev, + spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags); + } + +-static bool dce_v11_0_is_in_vblank(struct amdgpu_device *adev, int crtc) +-{ +- if (RREG32(mmCRTC_STATUS + crtc_offsets[crtc]) & +- CRTC_STATUS__CRTC_V_BLANK_MASK) +- return true; +- else +- return false; +-} +- +-static bool dce_v11_0_is_counter_moving(struct amdgpu_device *adev, int crtc) +-{ +- u32 pos1, pos2; +- +- pos1 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]); +- pos2 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]); +- +- if (pos1 != pos2) +- return true; +- else +- return false; +-} +- +-/** +- * dce_v11_0_vblank_wait - vblank wait asic callback. +- * +- * @adev: amdgpu_device pointer +- * @crtc: crtc to wait for vblank on +- * +- * Wait for vblank on the requested crtc (evergreen+). +- */ +-static void dce_v11_0_vblank_wait(struct amdgpu_device *adev, int crtc) +-{ +- unsigned i = 100; +- +- if (crtc < 0 || crtc >= adev->mode_info.num_crtc) +- return; +- +- if (!(RREG32(mmCRTC_CONTROL + crtc_offsets[crtc]) & CRTC_CONTROL__CRTC_MASTER_EN_MASK)) +- return; +- +- /* depending on when we hit vblank, we may be close to active; if so, +- * wait for another frame. +- */ +- while (dce_v11_0_is_in_vblank(adev, crtc)) { +- if (i++ == 100) { +- i = 0; +- if (!dce_v11_0_is_counter_moving(adev, crtc)) +- break; +- } +- } +- +- while (!dce_v11_0_is_in_vblank(adev, crtc)) { +- if (i++ == 100) { +- i = 0; +- if (!dce_v11_0_is_counter_moving(adev, crtc)) +- break; +- } +- } +-} +- + static u32 dce_v11_0_vblank_get_counter(struct amdgpu_device *adev, int crtc) + { + if (crtc < 0 || crtc >= adev->mode_info.num_crtc) +@@ -3740,7 +3680,6 @@ static void dce_v11_0_encoder_add(struct amdgpu_device *adev, + static const struct amdgpu_display_funcs dce_v11_0_display_funcs = { + .bandwidth_update = &dce_v11_0_bandwidth_update, + .vblank_get_counter = &dce_v11_0_vblank_get_counter, +- .vblank_wait = &dce_v11_0_vblank_wait, + .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level, + .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level, + .hpd_sense = &dce_v11_0_hpd_sense, +diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c +index 614bacb..0e3ebd9 100644 +--- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c +@@ -142,64 +142,6 @@ static void dce_v6_0_audio_endpt_wreg(struct amdgpu_device *adev, + spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags); + } + +-static bool dce_v6_0_is_in_vblank(struct amdgpu_device *adev, int crtc) +-{ +- if (RREG32(mmCRTC_STATUS + crtc_offsets[crtc]) & CRTC_STATUS__CRTC_V_BLANK_MASK) +- return true; +- else +- return false; +-} +- +-static bool dce_v6_0_is_counter_moving(struct amdgpu_device *adev, int crtc) +-{ +- u32 pos1, pos2; +- +- pos1 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]); +- pos2 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]); +- +- if (pos1 != pos2) +- return true; +- else +- return false; +-} +- +-/** +- * dce_v6_0_wait_for_vblank - vblank wait asic callback. +- * +- * @crtc: crtc to wait for vblank on +- * +- * Wait for vblank on the requested crtc (evergreen+). +- */ +-static void dce_v6_0_vblank_wait(struct amdgpu_device *adev, int crtc) +-{ +- unsigned i = 100; +- +- if (crtc >= adev->mode_info.num_crtc) +- return; +- +- if (!(RREG32(mmCRTC_CONTROL + crtc_offsets[crtc]) & CRTC_CONTROL__CRTC_MASTER_EN_MASK)) +- return; +- +- /* depending on when we hit vblank, we may be close to active; if so, +- * wait for another frame. +- */ +- while (dce_v6_0_is_in_vblank(adev, crtc)) { +- if (i++ == 100) { +- i = 0; +- if (!dce_v6_0_is_counter_moving(adev, crtc)) +- break; +- } +- } +- +- while (!dce_v6_0_is_in_vblank(adev, crtc)) { +- if (i++ == 100) { +- i = 0; +- if (!dce_v6_0_is_counter_moving(adev, crtc)) +- break; +- } +- } +-} +- + static u32 dce_v6_0_vblank_get_counter(struct amdgpu_device *adev, int crtc) + { + if (crtc >= adev->mode_info.num_crtc) +@@ -3423,7 +3365,6 @@ static void dce_v6_0_encoder_add(struct amdgpu_device *adev, + static const struct amdgpu_display_funcs dce_v6_0_display_funcs = { + .bandwidth_update = &dce_v6_0_bandwidth_update, + .vblank_get_counter = &dce_v6_0_vblank_get_counter, +- .vblank_wait = &dce_v6_0_vblank_wait, + .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level, + .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level, + .hpd_sense = &dce_v6_0_hpd_sense, +diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +index 785a723..5e1d0f2 100644 +--- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +@@ -140,66 +140,6 @@ static void dce_v8_0_audio_endpt_wreg(struct amdgpu_device *adev, + spin_unlock_irqrestore(&adev->audio_endpt_idx_lock, flags); + } + +-static bool dce_v8_0_is_in_vblank(struct amdgpu_device *adev, int crtc) +-{ +- if (RREG32(mmCRTC_STATUS + crtc_offsets[crtc]) & +- CRTC_STATUS__CRTC_V_BLANK_MASK) +- return true; +- else +- return false; +-} +- +-static bool dce_v8_0_is_counter_moving(struct amdgpu_device *adev, int crtc) +-{ +- u32 pos1, pos2; +- +- pos1 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]); +- pos2 = RREG32(mmCRTC_STATUS_POSITION + crtc_offsets[crtc]); +- +- if (pos1 != pos2) +- return true; +- else +- return false; +-} +- +-/** +- * dce_v8_0_vblank_wait - vblank wait asic callback. +- * +- * @adev: amdgpu_device pointer +- * @crtc: crtc to wait for vblank on +- * +- * Wait for vblank on the requested crtc (evergreen+). +- */ +-static void dce_v8_0_vblank_wait(struct amdgpu_device *adev, int crtc) +-{ +- unsigned i = 100; +- +- if (crtc >= adev->mode_info.num_crtc) +- return; +- +- if (!(RREG32(mmCRTC_CONTROL + crtc_offsets[crtc]) & CRTC_CONTROL__CRTC_MASTER_EN_MASK)) +- return; +- +- /* depending on when we hit vblank, we may be close to active; if so, +- * wait for another frame. +- */ +- while (dce_v8_0_is_in_vblank(adev, crtc)) { +- if (i++ == 100) { +- i = 0; +- if (!dce_v8_0_is_counter_moving(adev, crtc)) +- break; +- } +- } +- +- while (!dce_v8_0_is_in_vblank(adev, crtc)) { +- if (i++ == 100) { +- i = 0; +- if (!dce_v8_0_is_counter_moving(adev, crtc)) +- break; +- } +- } +-} +- + static u32 dce_v8_0_vblank_get_counter(struct amdgpu_device *adev, int crtc) + { + if (crtc >= adev->mode_info.num_crtc) +@@ -3506,7 +3446,6 @@ static void dce_v8_0_encoder_add(struct amdgpu_device *adev, + static const struct amdgpu_display_funcs dce_v8_0_display_funcs = { + .bandwidth_update = &dce_v8_0_bandwidth_update, + .vblank_get_counter = &dce_v8_0_vblank_get_counter, +- .vblank_wait = &dce_v8_0_vblank_wait, + .backlight_set_level = &amdgpu_atombios_encoder_set_backlight_level, + .backlight_get_level = &amdgpu_atombios_encoder_get_backlight_level, + .hpd_sense = &dce_v8_0_hpd_sense, +diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c +index 90a4d24..e07205a 100644 +--- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c ++++ b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c +@@ -48,19 +48,6 @@ static void dce_virtual_set_crtc_vblank_interrupt_state(struct amdgpu_device *ad + int crtc, + enum amdgpu_interrupt_state state); + +-/** +- * dce_virtual_vblank_wait - vblank wait asic callback. +- * +- * @adev: amdgpu_device pointer +- * @crtc: crtc to wait for vblank on +- * +- * Wait for vblank on the requested crtc (evergreen+). +- */ +-static void dce_virtual_vblank_wait(struct amdgpu_device *adev, int crtc) +-{ +- return; +-} +- + static u32 dce_virtual_vblank_get_counter(struct amdgpu_device *adev, int crtc) + { + return 0; +@@ -677,7 +664,6 @@ static int dce_virtual_connector_encoder_init(struct amdgpu_device *adev, + static const struct amdgpu_display_funcs dce_virtual_display_funcs = { + .bandwidth_update = &dce_virtual_bandwidth_update, + .vblank_get_counter = &dce_virtual_vblank_get_counter, +- .vblank_wait = &dce_virtual_vblank_wait, + .backlight_set_level = NULL, + .backlight_get_level = NULL, + .hpd_sense = &dce_virtual_hpd_sense, +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 485f95b..8403f7b 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -1575,7 +1575,6 @@ static int amdgpu_notify_freesync(struct drm_device *dev, void *data, + 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, + .backlight_set_level = + dm_set_backlight_level,/* called unconditionally */ + .backlight_get_level = +-- +2.7.4 + |