diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/dce_v11_0.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c index 2006abbbfb62..a7af5b33a5e3 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | |||
@@ -2532,6 +2532,8 @@ static int dce_v11_0_cursor_move_locked(struct drm_crtc *crtc, | |||
2532 | 2532 | ||
2533 | WREG32(mmCUR_POSITION + amdgpu_crtc->crtc_offset, (x << 16) | y); | 2533 | WREG32(mmCUR_POSITION + amdgpu_crtc->crtc_offset, (x << 16) | y); |
2534 | WREG32(mmCUR_HOT_SPOT + amdgpu_crtc->crtc_offset, (xorigin << 16) | yorigin); | 2534 | WREG32(mmCUR_HOT_SPOT + amdgpu_crtc->crtc_offset, (xorigin << 16) | yorigin); |
2535 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
2536 | ((amdgpu_crtc->cursor_width - 1) << 16) | (amdgpu_crtc->cursor_height - 1)); | ||
2535 | 2537 | ||
2536 | return 0; | 2538 | return 0; |
2537 | } | 2539 | } |
@@ -2557,7 +2559,6 @@ static int dce_v11_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
2557 | int32_t hot_y) | 2559 | int32_t hot_y) |
2558 | { | 2560 | { |
2559 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); | 2561 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); |
2560 | struct amdgpu_device *adev = crtc->dev->dev_private; | ||
2561 | struct drm_gem_object *obj; | 2562 | struct drm_gem_object *obj; |
2562 | struct amdgpu_bo *aobj; | 2563 | struct amdgpu_bo *aobj; |
2563 | int ret; | 2564 | int ret; |
@@ -2598,7 +2599,9 @@ static int dce_v11_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
2598 | 2599 | ||
2599 | dce_v11_0_lock_cursor(crtc, true); | 2600 | dce_v11_0_lock_cursor(crtc, true); |
2600 | 2601 | ||
2601 | if (hot_x != amdgpu_crtc->cursor_hot_x || | 2602 | if (width != amdgpu_crtc->cursor_width || |
2603 | height != amdgpu_crtc->cursor_height || | ||
2604 | hot_x != amdgpu_crtc->cursor_hot_x || | ||
2602 | hot_y != amdgpu_crtc->cursor_hot_y) { | 2605 | hot_y != amdgpu_crtc->cursor_hot_y) { |
2603 | int x, y; | 2606 | int x, y; |
2604 | 2607 | ||
@@ -2607,16 +2610,10 @@ static int dce_v11_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
2607 | 2610 | ||
2608 | dce_v11_0_cursor_move_locked(crtc, x, y); | 2611 | dce_v11_0_cursor_move_locked(crtc, x, y); |
2609 | 2612 | ||
2610 | amdgpu_crtc->cursor_hot_x = hot_x; | ||
2611 | amdgpu_crtc->cursor_hot_y = hot_y; | ||
2612 | } | ||
2613 | |||
2614 | if (width != amdgpu_crtc->cursor_width || | ||
2615 | height != amdgpu_crtc->cursor_height) { | ||
2616 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
2617 | (width - 1) << 16 | (height - 1)); | ||
2618 | amdgpu_crtc->cursor_width = width; | 2613 | amdgpu_crtc->cursor_width = width; |
2619 | amdgpu_crtc->cursor_height = height; | 2614 | amdgpu_crtc->cursor_height = height; |
2615 | amdgpu_crtc->cursor_hot_x = hot_x; | ||
2616 | amdgpu_crtc->cursor_hot_y = hot_y; | ||
2620 | } | 2617 | } |
2621 | 2618 | ||
2622 | dce_v11_0_show_cursor(crtc); | 2619 | dce_v11_0_show_cursor(crtc); |
@@ -2640,7 +2637,6 @@ unpin: | |||
2640 | static void dce_v11_0_cursor_reset(struct drm_crtc *crtc) | 2637 | static void dce_v11_0_cursor_reset(struct drm_crtc *crtc) |
2641 | { | 2638 | { |
2642 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); | 2639 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); |
2643 | struct amdgpu_device *adev = crtc->dev->dev_private; | ||
2644 | 2640 | ||
2645 | if (amdgpu_crtc->cursor_bo) { | 2641 | if (amdgpu_crtc->cursor_bo) { |
2646 | dce_v11_0_lock_cursor(crtc, true); | 2642 | dce_v11_0_lock_cursor(crtc, true); |
@@ -2648,10 +2644,6 @@ static void dce_v11_0_cursor_reset(struct drm_crtc *crtc) | |||
2648 | dce_v11_0_cursor_move_locked(crtc, amdgpu_crtc->cursor_x, | 2644 | dce_v11_0_cursor_move_locked(crtc, amdgpu_crtc->cursor_x, |
2649 | amdgpu_crtc->cursor_y); | 2645 | amdgpu_crtc->cursor_y); |
2650 | 2646 | ||
2651 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
2652 | (amdgpu_crtc->cursor_width - 1) << 16 | | ||
2653 | (amdgpu_crtc->cursor_height - 1)); | ||
2654 | |||
2655 | dce_v11_0_show_cursor(crtc); | 2647 | dce_v11_0_show_cursor(crtc); |
2656 | 2648 | ||
2657 | dce_v11_0_lock_cursor(crtc, false); | 2649 | dce_v11_0_lock_cursor(crtc, false); |