aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3485-drm-amdgpu-remove-unused-display_vblank_wait-interfa.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3485-drm-amdgpu-remove-unused-display_vblank_wait-interfa.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3485-drm-amdgpu-remove-unused-display_vblank_wait-interfa.patch410
1 files changed, 410 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3485-drm-amdgpu-remove-unused-display_vblank_wait-interfa.patch b/meta-amd-bsp/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/meta-amd-bsp/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
+