summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/display')
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c92
1 files changed, 3 insertions, 89 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
index cfc86bc5dd2b..098a801ae745 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
@@ -1429,80 +1429,6 @@ static const struct drm_plane_funcs dm_plane_funcs = {
.atomic_destroy_state = drm_atomic_helper_plane_destroy_state
};
-static void clear_unrelated_fields(struct drm_plane_state *state)
-{
- state->crtc = NULL;
- state->fb = NULL;
- state->state = NULL;
- state->fence = NULL;
-}
-
-/*TODO update because event is always present now */
-static bool page_flip_needed(
- const struct drm_plane_state *new_state,
- const struct drm_plane_state *old_state,
- struct drm_pending_vblank_event *event,
- bool commit_surface_required)
-{
- struct drm_plane_state old_state_tmp;
- struct drm_plane_state new_state_tmp;
-
- struct amdgpu_framebuffer *amdgpu_fb_old;
- struct amdgpu_framebuffer *amdgpu_fb_new;
- struct amdgpu_crtc *acrtc_new;
-
- uint64_t old_tiling_flags;
- uint64_t new_tiling_flags;
-
- bool page_flip_required;
-
- if (!old_state)
- return false;
-
- if (!old_state->fb)
- return false;
-
- if (!new_state)
- return false;
-
- if (!new_state->fb)
- return false;
-
- old_state_tmp = *old_state;
- new_state_tmp = *new_state;
-
- if (!event)
- return false;
-
- amdgpu_fb_old = to_amdgpu_framebuffer(old_state->fb);
- amdgpu_fb_new = to_amdgpu_framebuffer(new_state->fb);
-
- if (!get_fb_info(amdgpu_fb_old, &old_tiling_flags, NULL))
- return false;
-
- if (!get_fb_info(amdgpu_fb_new, &new_tiling_flags, NULL))
- return false;
-
- if (commit_surface_required == true &&
- old_tiling_flags != new_tiling_flags)
- return false;
-
- clear_unrelated_fields(&old_state_tmp);
- clear_unrelated_fields(&new_state_tmp);
-
- page_flip_required = memcmp(&old_state_tmp,
- &new_state_tmp,
- sizeof(old_state_tmp)) == 0 ? true:false;
-
- if (new_state->crtc && page_flip_required == false) {
- acrtc_new = to_amdgpu_crtc(new_state->crtc);
- if (acrtc_new->flip_flags & DRM_MODE_PAGE_FLIP_ASYNC)
- page_flip_required = true;
- }
-
- return page_flip_required;
-}
-
static int dm_plane_helper_prepare_fb(
struct drm_plane *plane,
struct drm_plane_state *new_state)
@@ -2477,11 +2403,7 @@ void amdgpu_dm_atomic_commit_tail(
* 1. This commit is not a page flip.
* 2. This commit is a page flip, and streams are created.
*/
- pflip_needed = !state->allow_modeset &&
- page_flip_needed(
- plane_state,
- old_plane_state,
- crtc->state->event, true);
+ pflip_needed = !state->allow_modeset;
if (!pflip_needed ||
action == DM_COMMIT_ACTION_DPMS_ON ||
action == DM_COMMIT_ACTION_SET) {
@@ -2540,12 +2462,7 @@ void amdgpu_dm_atomic_commit_tail(
if (!fb || !crtc || !crtc->state->planes_changed ||
!crtc->state->active)
continue;
- pflip_needed = !state->allow_modeset &&
- page_flip_needed(
- plane_state,
- old_plane_state,
- crtc->state->event,
- false);
+ pflip_needed = !state->allow_modeset;
if (pflip_needed) {
amdgpu_dm_do_flip(
@@ -2927,7 +2844,6 @@ int amdgpu_dm_atomic_check(struct drm_device *dev,
for (i = 0; i < set_count; i++) {
for_each_plane_in_state(state, plane, plane_state, j) {
- struct drm_plane_state *old_plane_state = plane->state;
struct drm_crtc *crtc = plane_state->crtc;
struct drm_framebuffer *fb = plane_state->fb;
struct drm_connector *connector;
@@ -2948,9 +2864,7 @@ int amdgpu_dm_atomic_check(struct drm_device *dev,
* 2. This commit is a page flip, and streams are created.
*/
crtc_state = drm_atomic_get_crtc_state(state, crtc);
- pflip_needed = !state->allow_modeset &&
- page_flip_needed(plane_state, old_plane_state,
- crtc_state->event, true);
+ pflip_needed = !state->allow_modeset;
if (!pflip_needed ||
action == DM_COMMIT_ACTION_DPMS_ON ||
action == DM_COMMIT_ACTION_SET) {