Merge commit '06d1ee32a4d25356a710b49d5e95dbdd68bdf505' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next
Backmerge the drm-fixes pull from Linus's tree into drm-next. This is to fix some conflicts and make future pulls cleaner
This commit is contained in:
@@ -242,6 +242,10 @@ static int qxl_crtc_page_flip(struct drm_crtc *crtc,
|
||||
bo->is_primary = true;
|
||||
|
||||
ret = qxl_bo_reserve(bo, false);
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = qxl_bo_pin(bo, bo->type, NULL);
|
||||
qxl_bo_unreserve(bo);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -257,7 +261,11 @@ static int qxl_crtc_page_flip(struct drm_crtc *crtc,
|
||||
}
|
||||
drm_vblank_put(dev, qcrtc->index);
|
||||
|
||||
qxl_bo_unreserve(bo);
|
||||
ret = qxl_bo_reserve(bo, false);
|
||||
if (!ret) {
|
||||
qxl_bo_unpin(bo);
|
||||
qxl_bo_unreserve(bo);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -618,7 +626,7 @@ static int qxl_crtc_mode_set(struct drm_crtc *crtc,
|
||||
adjusted_mode->hdisplay,
|
||||
adjusted_mode->vdisplay);
|
||||
|
||||
if (qcrtc->index == 0)
|
||||
if (bo->is_primary == false)
|
||||
recreate_primary = true;
|
||||
|
||||
if (bo->surf.stride * bo->surf.height > qdev->vram_size) {
|
||||
|
@@ -144,14 +144,17 @@ static void qxl_dirty_update(struct qxl_fbdev *qfbdev,
|
||||
|
||||
spin_lock_irqsave(&qfbdev->dirty.lock, flags);
|
||||
|
||||
if (qfbdev->dirty.y1 < y)
|
||||
y = qfbdev->dirty.y1;
|
||||
if (qfbdev->dirty.y2 > y2)
|
||||
y2 = qfbdev->dirty.y2;
|
||||
if (qfbdev->dirty.x1 < x)
|
||||
x = qfbdev->dirty.x1;
|
||||
if (qfbdev->dirty.x2 > x2)
|
||||
x2 = qfbdev->dirty.x2;
|
||||
if ((qfbdev->dirty.y2 - qfbdev->dirty.y1) &&
|
||||
(qfbdev->dirty.x2 - qfbdev->dirty.x1)) {
|
||||
if (qfbdev->dirty.y1 < y)
|
||||
y = qfbdev->dirty.y1;
|
||||
if (qfbdev->dirty.y2 > y2)
|
||||
y2 = qfbdev->dirty.y2;
|
||||
if (qfbdev->dirty.x1 < x)
|
||||
x = qfbdev->dirty.x1;
|
||||
if (qfbdev->dirty.x2 > x2)
|
||||
x2 = qfbdev->dirty.x2;
|
||||
}
|
||||
|
||||
qfbdev->dirty.x1 = x;
|
||||
qfbdev->dirty.x2 = x2;
|
||||
|
@@ -307,7 +307,7 @@ int qxl_alloc_surface_release_reserved(struct qxl_device *qdev,
|
||||
idr_ret = qxl_release_alloc(qdev, QXL_RELEASE_SURFACE_CMD, release);
|
||||
if (idr_ret < 0)
|
||||
return idr_ret;
|
||||
bo = qxl_bo_ref(to_qxl_bo(entry->tv.bo));
|
||||
bo = to_qxl_bo(entry->tv.bo);
|
||||
|
||||
(*release)->release_offset = create_rel->release_offset + 64;
|
||||
|
||||
@@ -316,8 +316,6 @@ int qxl_alloc_surface_release_reserved(struct qxl_device *qdev,
|
||||
info = qxl_release_map(qdev, *release);
|
||||
info->id = idr_ret;
|
||||
qxl_release_unmap(qdev, *release, info);
|
||||
|
||||
qxl_bo_unref(&bo);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user