drm/nouveau/kms/nv50: use "low res" lut for indexed mode

"Linux Kernel Mailing List" <[email protected]>
Newsgroups gmane.linux.kernel.commits.head
Message-ID <[email protected]>
Web:        https://git.kernel.org/torvalds/c/e75182f68b7b3a073e33b89ee4c1688160755930
Commit:     e75182f68b7b3a073e33b89ee4c1688160755930
Parent:     11fc017dfb1efffa93d803f7182d026962ea2aae
Refname:    refs/heads/master
Author:     Ilia Mirkin <[email protected]>
AuthorDate: Sat Dec 30 23:35:28 2017 -0500
Committer:  Ben Skeggs <[email protected]>
CommitDate: Fri Feb 2 15:24:06 2018 +1000

    drm/nouveau/kms/nv50: use "low res" lut for indexed mode
    
    This is what was done prior to the big refactor in kernel 3.8, and what
    was done by xf86-video-nv. Experimentally, it seems like there's some
    sort of issue with the high-res lut to be used there. Tested on G92.
    
    This ends up mattering because fbcon/fbdev chooses the C8 fb format for
    low-vram systems, which can occur with some IGP-based configurations
    with little "stolen" vram.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80675
    Signed-off-by: Ilia Mirkin <[email protected]>
    Signed-off-by: Ben Skeggs <[email protected]>
---
 drivers/gpu/drm/nouveau/nv50_display.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
index 2293b8ff56c6..f4daf8c55de1 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -1805,12 +1805,14 @@ nv50_head_lut_set(struct nv50_head *head, struct nv50_head_atom *asyh)
 	if ((push = evo_wait(core, 7))) {
 		if (core->base.user.oclass < G82_DISP_CORE_CHANNEL_DMA) {
 			evo_mthd(push, 0x0840 + (head->base.index * 0x400), 2);
-			evo_data(push, 0xc0000000);
+			evo_data(push, asyh->base.depth == 8 ?
+				 0x80000000 : 0xc0000000);
 			evo_data(push, asyh->lut.offset >> 8);
 		} else
 		if (core->base.user.oclass < GF110_DISP_CORE_CHANNEL_DMA) {
 			evo_mthd(push, 0x0840 + (head->base.index * 0x400), 2);
-			evo_data(push, 0xc0000000);
+			evo_data(push, asyh->base.depth == 8 ?
+				 0x80000000 : 0xc0000000);
 			evo_data(push, asyh->lut.offset >> 8);
 			evo_mthd(push, 0x085c + (head->base.index * 0x400), 1);
 			evo_data(push, asyh->lut.handle);
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.