Patch "drm/nouveau/kms/nv50: skip core channel cursor update on position-only changes" has been added to the 4.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/nouveau/kms/nv50: skip core channel cursor update on position-only changes

to the 4.11-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-nouveau-kms-nv50-skip-core-channel-cursor-update-on-position-only-changes.patch
and it can be found in the queue-4.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From e6db95799b1b870aae15682a6d0898df9e9dfb38 Mon Sep 17 00:00:00 2001
From: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Mon, 1 May 2017 16:53:40 +1000
Subject: drm/nouveau/kms/nv50: skip core channel cursor update on position-only changes

From: Ben Skeggs <bskeggs@xxxxxxxxxx>

commit e6db95799b1b870aae15682a6d0898df9e9dfb38 upstream.

The DRM core used to only call prepare_fb/cleanup_fb() when a plane's
framebuffer changed, which achieved the desired effect.

It's apparently now up to the driver to decide on its own.

Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
 drivers/gpu/drm/nouveau/nv50_display.c |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -1113,9 +1113,13 @@ static void
 nv50_curs_prepare(struct nv50_wndw *wndw, struct nv50_head_atom *asyh,
 		  struct nv50_wndw_atom *asyw)
 {
-	asyh->curs.handle = nv50_disp(wndw->plane.dev)->mast.base.vram.handle;
-	asyh->curs.offset = asyw->image.offset;
-	asyh->set.curs = asyh->curs.visible;
+	u32 handle = nv50_disp(wndw->plane.dev)->mast.base.vram.handle;
+	u32 offset = asyw->image.offset;
+	if (asyh->curs.handle != handle || asyh->curs.offset != offset) {
+		asyh->curs.handle = handle;
+		asyh->curs.offset = offset;
+		asyh->set.curs = asyh->curs.visible;
+	}
 }
 
 static void


Patches currently in stable-queue which might be from bskeggs@xxxxxxxxxx are

queue-4.11/drm-nouveau-tmr-ack-interrupt-before-processing-alarms.patch
queue-4.11/drm-nouveau-tmr-fix-corruption-of-the-pending-list-when-rescheduling-an-alarm.patch
queue-4.11/drm-nouveau-tmr-avoid-processing-completed-alarms-when-adding-a-new-one.patch
queue-4.11/drm-nouveau-mmu-nv4a-use-nv04-mmu-rather-than-the-nv44-one.patch
queue-4.11/drm-nouveau-therm-remove-ineffective-workarounds-for-alarm-bugs.patch
queue-4.11/drm-nouveau-kms-nv50-skip-core-channel-cursor-update-on-position-only-changes.patch
queue-4.11/drm-nouveau-kms-nv50-fix-source-rect-only-plane-updates.patch
queue-4.11/drm-nouveau-tmr-handle-races-with-hw-when-updating-the-next-alarm-time.patch



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]