Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/external/bsd/drm2/nouveau disable matching nouveau on pa...
details: https://anonhg.NetBSD.org/src/rev/e283b3308ef9
branches: trunk
changeset: 319476:e283b3308ef9
user: mrg <mrg%NetBSD.org@localhost>
date: Thu May 31 09:18:31 2018 +0000
description:
disable matching nouveau on pascal and the second generation of maxwell
cards that are not supported by this version of drm.
this should fix various modern systems vs nvidia issues, eg PR 53188.
XXX: pullup-7, pullup-8.
diffstat:
sys/external/bsd/drm2/nouveau/nouveau_pci.c | 34 +++++++++++++++++++++++++++-
1 files changed, 32 insertions(+), 2 deletions(-)
diffs (55 lines):
diff -r 319595c9277e -r e283b3308ef9 sys/external/bsd/drm2/nouveau/nouveau_pci.c
--- a/sys/external/bsd/drm2/nouveau/nouveau_pci.c Thu May 31 09:12:11 2018 +0000
+++ b/sys/external/bsd/drm2/nouveau/nouveau_pci.c Thu May 31 09:18:31 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: nouveau_pci.c,v 1.9 2018/05/21 08:58:47 mrg Exp $ */
+/* $NetBSD: nouveau_pci.c,v 1.10 2018/05/31 09:18:31 mrg Exp $ */
/*-
* Copyright (c) 2015 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_pci.c,v 1.9 2018/05/21 08:58:47 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_pci.c,v 1.10 2018/05/31 09:18:31 mrg Exp $");
#include <sys/types.h>
#include <sys/device.h>
@@ -115,6 +115,36 @@
return 0;
#undef IS_BETWEEN
+#define IS_BETWEEN(x,y) \
+ (PCI_PRODUCT(pa->pa_id) >= (x) && PCI_PRODUCT(pa->pa_id) <= (y))
+ /*
+ * NetBSD drm2 needs missing-so-far firmware for Maxwell-based cards:
+ * 0x1380-0x13bf GM107
+ */
+ if (IS_BETWEEN(0x1380, 0x13bf))
+ return 0;
+
+ /*
+ * NetBSD drm2 doesn't support Pascal-based cards:
+ * 0x1580-0x15ff GP100
+ * 0x1b00-0x1b7f GP102
+ * 0x1b80-0x1bff GP104
+ * 0x1c00-0x1c7f GP106
+ * 0x1c80-0x1cff GP107
+ * 0x1d00-0x1d7f GP108
+ * 0x1d80-0x1dff GV100
+ */
+
+ if (IS_BETWEEN(0x1580, 0x15ff) ||
+ IS_BETWEEN(0x1b00, 0x1b7f) ||
+ IS_BETWEEN(0x1b80, 0x1bff) ||
+ IS_BETWEEN(0x1c00, 0x1c7f) ||
+ IS_BETWEEN(0x1c80, 0x1cff) ||
+ IS_BETWEEN(0x1d00, 0x1d7f) ||
+ IS_BETWEEN(0x1d80, 0x1dff))
+ return 0;
+#undef IS_BETWEEN
+
return 6; /* XXX Beat genfb_pci... */
}
Home |
Main Index |
Thread Index |
Old Index