diff options
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 22 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 22 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 24 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 22 |
4 files changed, 30 insertions, 60 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c index 9999dc71b998..ccb5e02e7b20 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | |||
| @@ -2512,6 +2512,8 @@ static int dce_v10_0_cursor_move_locked(struct drm_crtc *crtc, | |||
| 2512 | 2512 | ||
| 2513 | WREG32(mmCUR_POSITION + amdgpu_crtc->crtc_offset, (x << 16) | y); | 2513 | WREG32(mmCUR_POSITION + amdgpu_crtc->crtc_offset, (x << 16) | y); |
| 2514 | WREG32(mmCUR_HOT_SPOT + amdgpu_crtc->crtc_offset, (xorigin << 16) | yorigin); | 2514 | WREG32(mmCUR_HOT_SPOT + amdgpu_crtc->crtc_offset, (xorigin << 16) | yorigin); |
| 2515 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
| 2516 | ((amdgpu_crtc->cursor_width - 1) << 16) | (amdgpu_crtc->cursor_height - 1)); | ||
| 2515 | 2517 | ||
| 2516 | return 0; | 2518 | return 0; |
| 2517 | } | 2519 | } |
| @@ -2537,7 +2539,6 @@ static int dce_v10_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
| 2537 | int32_t hot_y) | 2539 | int32_t hot_y) |
| 2538 | { | 2540 | { |
| 2539 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); | 2541 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); |
| 2540 | struct amdgpu_device *adev = crtc->dev->dev_private; | ||
| 2541 | struct drm_gem_object *obj; | 2542 | struct drm_gem_object *obj; |
| 2542 | struct amdgpu_bo *aobj; | 2543 | struct amdgpu_bo *aobj; |
| 2543 | int ret; | 2544 | int ret; |
| @@ -2578,7 +2579,9 @@ static int dce_v10_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
| 2578 | 2579 | ||
| 2579 | dce_v10_0_lock_cursor(crtc, true); | 2580 | dce_v10_0_lock_cursor(crtc, true); |
| 2580 | 2581 | ||
| 2581 | if (hot_x != amdgpu_crtc->cursor_hot_x || | 2582 | if (width != amdgpu_crtc->cursor_width || |
| 2583 | height != amdgpu_crtc->cursor_height || | ||
| 2584 | hot_x != amdgpu_crtc->cursor_hot_x || | ||
| 2582 | hot_y != amdgpu_crtc->cursor_hot_y) { | 2585 | hot_y != amdgpu_crtc->cursor_hot_y) { |
| 2583 | int x, y; | 2586 | int x, y; |
| 2584 | 2587 | ||
| @@ -2587,16 +2590,10 @@ static int dce_v10_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
| 2587 | 2590 | ||
| 2588 | dce_v10_0_cursor_move_locked(crtc, x, y); | 2591 | dce_v10_0_cursor_move_locked(crtc, x, y); |
| 2589 | 2592 | ||
| 2590 | amdgpu_crtc->cursor_hot_x = hot_x; | ||
| 2591 | amdgpu_crtc->cursor_hot_y = hot_y; | ||
| 2592 | } | ||
| 2593 | |||
| 2594 | if (width != amdgpu_crtc->cursor_width || | ||
| 2595 | height != amdgpu_crtc->cursor_height) { | ||
| 2596 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
| 2597 | (width - 1) << 16 | (height - 1)); | ||
| 2598 | amdgpu_crtc->cursor_width = width; | 2593 | amdgpu_crtc->cursor_width = width; |
| 2599 | amdgpu_crtc->cursor_height = height; | 2594 | amdgpu_crtc->cursor_height = height; |
| 2595 | amdgpu_crtc->cursor_hot_x = hot_x; | ||
| 2596 | amdgpu_crtc->cursor_hot_y = hot_y; | ||
| 2600 | } | 2597 | } |
| 2601 | 2598 | ||
| 2602 | dce_v10_0_show_cursor(crtc); | 2599 | dce_v10_0_show_cursor(crtc); |
| @@ -2620,7 +2617,6 @@ unpin: | |||
| 2620 | static void dce_v10_0_cursor_reset(struct drm_crtc *crtc) | 2617 | static void dce_v10_0_cursor_reset(struct drm_crtc *crtc) |
| 2621 | { | 2618 | { |
| 2622 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); | 2619 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); |
| 2623 | struct amdgpu_device *adev = crtc->dev->dev_private; | ||
| 2624 | 2620 | ||
| 2625 | if (amdgpu_crtc->cursor_bo) { | 2621 | if (amdgpu_crtc->cursor_bo) { |
| 2626 | dce_v10_0_lock_cursor(crtc, true); | 2622 | dce_v10_0_lock_cursor(crtc, true); |
| @@ -2628,10 +2624,6 @@ static void dce_v10_0_cursor_reset(struct drm_crtc *crtc) | |||
| 2628 | dce_v10_0_cursor_move_locked(crtc, amdgpu_crtc->cursor_x, | 2624 | dce_v10_0_cursor_move_locked(crtc, amdgpu_crtc->cursor_x, |
| 2629 | amdgpu_crtc->cursor_y); | 2625 | amdgpu_crtc->cursor_y); |
| 2630 | 2626 | ||
| 2631 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
| 2632 | (amdgpu_crtc->cursor_width - 1) << 16 | | ||
| 2633 | (amdgpu_crtc->cursor_height - 1)); | ||
| 2634 | |||
| 2635 | dce_v10_0_show_cursor(crtc); | 2627 | dce_v10_0_show_cursor(crtc); |
| 2636 | 2628 | ||
| 2637 | dce_v10_0_lock_cursor(crtc, false); | 2629 | dce_v10_0_lock_cursor(crtc, false); |
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); |
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c index b4e4ec630e8c..39df6a50637f 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | |||
| @@ -1859,6 +1859,8 @@ static int dce_v6_0_cursor_move_locked(struct drm_crtc *crtc, | |||
| 1859 | struct amdgpu_device *adev = crtc->dev->dev_private; | 1859 | struct amdgpu_device *adev = crtc->dev->dev_private; |
| 1860 | int xorigin = 0, yorigin = 0; | 1860 | int xorigin = 0, yorigin = 0; |
| 1861 | 1861 | ||
| 1862 | int w = amdgpu_crtc->cursor_width; | ||
| 1863 | |||
| 1862 | amdgpu_crtc->cursor_x = x; | 1864 | amdgpu_crtc->cursor_x = x; |
| 1863 | amdgpu_crtc->cursor_y = y; | 1865 | amdgpu_crtc->cursor_y = y; |
| 1864 | 1866 | ||
| @@ -1878,6 +1880,8 @@ static int dce_v6_0_cursor_move_locked(struct drm_crtc *crtc, | |||
| 1878 | 1880 | ||
| 1879 | WREG32(mmCUR_POSITION + amdgpu_crtc->crtc_offset, (x << 16) | y); | 1881 | WREG32(mmCUR_POSITION + amdgpu_crtc->crtc_offset, (x << 16) | y); |
| 1880 | WREG32(mmCUR_HOT_SPOT + amdgpu_crtc->crtc_offset, (xorigin << 16) | yorigin); | 1882 | WREG32(mmCUR_HOT_SPOT + amdgpu_crtc->crtc_offset, (xorigin << 16) | yorigin); |
| 1883 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
| 1884 | ((w - 1) << 16) | (amdgpu_crtc->cursor_height - 1)); | ||
| 1881 | 1885 | ||
| 1882 | return 0; | 1886 | return 0; |
| 1883 | } | 1887 | } |
| @@ -1903,7 +1907,6 @@ static int dce_v6_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
| 1903 | int32_t hot_y) | 1907 | int32_t hot_y) |
| 1904 | { | 1908 | { |
| 1905 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); | 1909 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); |
| 1906 | struct amdgpu_device *adev = crtc->dev->dev_private; | ||
| 1907 | struct drm_gem_object *obj; | 1910 | struct drm_gem_object *obj; |
| 1908 | struct amdgpu_bo *aobj; | 1911 | struct amdgpu_bo *aobj; |
| 1909 | int ret; | 1912 | int ret; |
| @@ -1944,7 +1947,9 @@ static int dce_v6_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
| 1944 | 1947 | ||
| 1945 | dce_v6_0_lock_cursor(crtc, true); | 1948 | dce_v6_0_lock_cursor(crtc, true); |
| 1946 | 1949 | ||
| 1947 | if (hot_x != amdgpu_crtc->cursor_hot_x || | 1950 | if (width != amdgpu_crtc->cursor_width || |
| 1951 | height != amdgpu_crtc->cursor_height || | ||
| 1952 | hot_x != amdgpu_crtc->cursor_hot_x || | ||
| 1948 | hot_y != amdgpu_crtc->cursor_hot_y) { | 1953 | hot_y != amdgpu_crtc->cursor_hot_y) { |
| 1949 | int x, y; | 1954 | int x, y; |
| 1950 | 1955 | ||
| @@ -1953,16 +1958,10 @@ static int dce_v6_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
| 1953 | 1958 | ||
| 1954 | dce_v6_0_cursor_move_locked(crtc, x, y); | 1959 | dce_v6_0_cursor_move_locked(crtc, x, y); |
| 1955 | 1960 | ||
| 1956 | amdgpu_crtc->cursor_hot_x = hot_x; | ||
| 1957 | amdgpu_crtc->cursor_hot_y = hot_y; | ||
| 1958 | } | ||
| 1959 | |||
| 1960 | if (width != amdgpu_crtc->cursor_width || | ||
| 1961 | height != amdgpu_crtc->cursor_height) { | ||
| 1962 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
| 1963 | (width - 1) << 16 | (height - 1)); | ||
| 1964 | amdgpu_crtc->cursor_width = width; | 1961 | amdgpu_crtc->cursor_width = width; |
| 1965 | amdgpu_crtc->cursor_height = height; | 1962 | amdgpu_crtc->cursor_height = height; |
| 1963 | amdgpu_crtc->cursor_hot_x = hot_x; | ||
| 1964 | amdgpu_crtc->cursor_hot_y = hot_y; | ||
| 1966 | } | 1965 | } |
| 1967 | 1966 | ||
| 1968 | dce_v6_0_show_cursor(crtc); | 1967 | dce_v6_0_show_cursor(crtc); |
| @@ -1986,7 +1985,6 @@ unpin: | |||
| 1986 | static void dce_v6_0_cursor_reset(struct drm_crtc *crtc) | 1985 | static void dce_v6_0_cursor_reset(struct drm_crtc *crtc) |
| 1987 | { | 1986 | { |
| 1988 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); | 1987 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); |
| 1989 | struct amdgpu_device *adev = crtc->dev->dev_private; | ||
| 1990 | 1988 | ||
| 1991 | if (amdgpu_crtc->cursor_bo) { | 1989 | if (amdgpu_crtc->cursor_bo) { |
| 1992 | dce_v6_0_lock_cursor(crtc, true); | 1990 | dce_v6_0_lock_cursor(crtc, true); |
| @@ -1994,10 +1992,6 @@ static void dce_v6_0_cursor_reset(struct drm_crtc *crtc) | |||
| 1994 | dce_v6_0_cursor_move_locked(crtc, amdgpu_crtc->cursor_x, | 1992 | dce_v6_0_cursor_move_locked(crtc, amdgpu_crtc->cursor_x, |
| 1995 | amdgpu_crtc->cursor_y); | 1993 | amdgpu_crtc->cursor_y); |
| 1996 | 1994 | ||
| 1997 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
| 1998 | (amdgpu_crtc->cursor_width - 1) << 16 | | ||
| 1999 | (amdgpu_crtc->cursor_height - 1)); | ||
| 2000 | |||
| 2001 | dce_v6_0_show_cursor(crtc); | 1995 | dce_v6_0_show_cursor(crtc); |
| 2002 | dce_v6_0_lock_cursor(crtc, false); | 1996 | dce_v6_0_lock_cursor(crtc, false); |
| 2003 | } | 1997 | } |
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c index 584abe834a3c..28102bb1704d 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | |||
| @@ -2363,6 +2363,8 @@ static int dce_v8_0_cursor_move_locked(struct drm_crtc *crtc, | |||
| 2363 | 2363 | ||
| 2364 | WREG32(mmCUR_POSITION + amdgpu_crtc->crtc_offset, (x << 16) | y); | 2364 | WREG32(mmCUR_POSITION + amdgpu_crtc->crtc_offset, (x << 16) | y); |
| 2365 | WREG32(mmCUR_HOT_SPOT + amdgpu_crtc->crtc_offset, (xorigin << 16) | yorigin); | 2365 | WREG32(mmCUR_HOT_SPOT + amdgpu_crtc->crtc_offset, (xorigin << 16) | yorigin); |
| 2366 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
| 2367 | ((amdgpu_crtc->cursor_width - 1) << 16) | (amdgpu_crtc->cursor_height - 1)); | ||
| 2366 | 2368 | ||
| 2367 | return 0; | 2369 | return 0; |
| 2368 | } | 2370 | } |
| @@ -2388,7 +2390,6 @@ static int dce_v8_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
| 2388 | int32_t hot_y) | 2390 | int32_t hot_y) |
| 2389 | { | 2391 | { |
| 2390 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); | 2392 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); |
| 2391 | struct amdgpu_device *adev = crtc->dev->dev_private; | ||
| 2392 | struct drm_gem_object *obj; | 2393 | struct drm_gem_object *obj; |
| 2393 | struct amdgpu_bo *aobj; | 2394 | struct amdgpu_bo *aobj; |
| 2394 | int ret; | 2395 | int ret; |
| @@ -2429,7 +2430,9 @@ static int dce_v8_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
| 2429 | 2430 | ||
| 2430 | dce_v8_0_lock_cursor(crtc, true); | 2431 | dce_v8_0_lock_cursor(crtc, true); |
| 2431 | 2432 | ||
| 2432 | if (hot_x != amdgpu_crtc->cursor_hot_x || | 2433 | if (width != amdgpu_crtc->cursor_width || |
| 2434 | height != amdgpu_crtc->cursor_height || | ||
| 2435 | hot_x != amdgpu_crtc->cursor_hot_x || | ||
| 2433 | hot_y != amdgpu_crtc->cursor_hot_y) { | 2436 | hot_y != amdgpu_crtc->cursor_hot_y) { |
| 2434 | int x, y; | 2437 | int x, y; |
| 2435 | 2438 | ||
| @@ -2438,16 +2441,10 @@ static int dce_v8_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
| 2438 | 2441 | ||
| 2439 | dce_v8_0_cursor_move_locked(crtc, x, y); | 2442 | dce_v8_0_cursor_move_locked(crtc, x, y); |
| 2440 | 2443 | ||
| 2441 | amdgpu_crtc->cursor_hot_x = hot_x; | ||
| 2442 | amdgpu_crtc->cursor_hot_y = hot_y; | ||
| 2443 | } | ||
| 2444 | |||
| 2445 | if (width != amdgpu_crtc->cursor_width || | ||
| 2446 | height != amdgpu_crtc->cursor_height) { | ||
| 2447 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
| 2448 | (width - 1) << 16 | (height - 1)); | ||
| 2449 | amdgpu_crtc->cursor_width = width; | 2444 | amdgpu_crtc->cursor_width = width; |
| 2450 | amdgpu_crtc->cursor_height = height; | 2445 | amdgpu_crtc->cursor_height = height; |
| 2446 | amdgpu_crtc->cursor_hot_x = hot_x; | ||
| 2447 | amdgpu_crtc->cursor_hot_y = hot_y; | ||
| 2451 | } | 2448 | } |
| 2452 | 2449 | ||
| 2453 | dce_v8_0_show_cursor(crtc); | 2450 | dce_v8_0_show_cursor(crtc); |
| @@ -2471,7 +2468,6 @@ unpin: | |||
| 2471 | static void dce_v8_0_cursor_reset(struct drm_crtc *crtc) | 2468 | static void dce_v8_0_cursor_reset(struct drm_crtc *crtc) |
| 2472 | { | 2469 | { |
| 2473 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); | 2470 | struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); |
| 2474 | struct amdgpu_device *adev = crtc->dev->dev_private; | ||
| 2475 | 2471 | ||
| 2476 | if (amdgpu_crtc->cursor_bo) { | 2472 | if (amdgpu_crtc->cursor_bo) { |
| 2477 | dce_v8_0_lock_cursor(crtc, true); | 2473 | dce_v8_0_lock_cursor(crtc, true); |
| @@ -2479,10 +2475,6 @@ static void dce_v8_0_cursor_reset(struct drm_crtc *crtc) | |||
| 2479 | dce_v8_0_cursor_move_locked(crtc, amdgpu_crtc->cursor_x, | 2475 | dce_v8_0_cursor_move_locked(crtc, amdgpu_crtc->cursor_x, |
| 2480 | amdgpu_crtc->cursor_y); | 2476 | amdgpu_crtc->cursor_y); |
| 2481 | 2477 | ||
| 2482 | WREG32(mmCUR_SIZE + amdgpu_crtc->crtc_offset, | ||
| 2483 | (amdgpu_crtc->cursor_width - 1) << 16 | | ||
| 2484 | (amdgpu_crtc->cursor_height - 1)); | ||
| 2485 | |||
| 2486 | dce_v8_0_show_cursor(crtc); | 2478 | dce_v8_0_show_cursor(crtc); |
| 2487 | 2479 | ||
| 2488 | dce_v8_0_lock_cursor(crtc, false); | 2480 | dce_v8_0_lock_cursor(crtc, false); |
