drm/radeon/cik: add hw cursor support (v2)
CIK (DCE8) hw cursors are programmed the same as evergreen (DCE4) with the following caveats: - cursors are now 128x128 pixels - new alpha blend enable bit v2: rebase Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -27,9 +27,6 @@
|
||||
#include <drm/radeon_drm.h>
|
||||
#include "radeon.h"
|
||||
|
||||
#define CURSOR_WIDTH 64
|
||||
#define CURSOR_HEIGHT 64
|
||||
|
||||
static void radeon_lock_cursor(struct drm_crtc *crtc, bool lock)
|
||||
{
|
||||
struct radeon_device *rdev = crtc->dev->dev_private;
|
||||
@@ -167,7 +164,8 @@ int radeon_crtc_cursor_set(struct drm_crtc *crtc,
|
||||
goto unpin;
|
||||
}
|
||||
|
||||
if ((width > CURSOR_WIDTH) || (height > CURSOR_HEIGHT)) {
|
||||
if ((width > radeon_crtc->max_cursor_width) ||
|
||||
(height > radeon_crtc->max_cursor_height)) {
|
||||
DRM_ERROR("bad cursor width or height %d x %d\n", width, height);
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -233,11 +231,11 @@ int radeon_crtc_cursor_move(struct drm_crtc *crtc,
|
||||
DRM_DEBUG("x %d y %d c->x %d c->y %d\n", x, y, crtc->x, crtc->y);
|
||||
|
||||
if (x < 0) {
|
||||
xorigin = min(-x, CURSOR_WIDTH - 1);
|
||||
xorigin = min(-x, radeon_crtc->max_cursor_width - 1);
|
||||
x = 0;
|
||||
}
|
||||
if (y < 0) {
|
||||
yorigin = min(-y, CURSOR_HEIGHT - 1);
|
||||
yorigin = min(-y, radeon_crtc->max_cursor_height - 1);
|
||||
y = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user