diff options
author | Ilia Mirkin <imirkin@alum.mit.edu> | 2017-03-21 21:25:33 -0400 |
---|---|---|
committer | Ilia Mirkin <imirkin@alum.mit.edu> | 2017-03-29 22:53:19 -0400 |
commit | e472b47d15634a864c8c981ed588d882aceaf26b (patch) | |
tree | db64a132ecde641532b0aff7800c5288ff6f9561 | |
parent | b71de83b7fae0abeb311251e6144294d319062cf (diff) |
Add Pascal family support, identical to Maxwell
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Tested-by: Lyude <lyude@redhat.com>
-rw-r--r-- | src/nouveau_copy.c | 2 | ||||
-rw-r--r-- | src/nouveau_exa.c | 1 | ||||
-rw-r--r-- | src/nv_accel_common.c | 1 | ||||
-rw-r--r-- | src/nv_driver.c | 4 | ||||
-rw-r--r-- | src/nv_type.h | 1 | ||||
-rw-r--r-- | src/nvc0_accel.c | 6 |
6 files changed, 15 insertions, 0 deletions
diff --git a/src/nouveau_copy.c b/src/nouveau_copy.c index 7118a7a..7fbcc87 100644 --- a/src/nouveau_copy.c +++ b/src/nouveau_copy.c @@ -42,6 +42,7 @@ nouveau_copy_init(ScreenPtr pScreen) int engine; Bool (*init)(NVPtr); } methods[] = { + { 0xc1b5, 0, nouveau_copya0b5_init }, { 0xc0b5, 0, nouveau_copya0b5_init }, { 0xb0b5, 0, nouveau_copya0b5_init }, { 0xa0b5, 0, nouveau_copya0b5_init }, @@ -84,6 +85,7 @@ nouveau_copy_init(ScreenPtr pScreen) break; case NV_KEPLER: case NV_MAXWELL: + case NV_PASCAL: ret = nouveau_object_new(&pNv->dev->object, 0, NOUVEAU_FIFO_CHANNEL_CLASS, &(struct nve0_fifo) { diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c index 0f02b99..55df6f8 100644 --- a/src/nouveau_exa.c +++ b/src/nouveau_exa.c @@ -515,6 +515,7 @@ nouveau_exa_init(ScreenPtr pScreen) case NV_FERMI: case NV_KEPLER: case NV_MAXWELL: + case NV_PASCAL: exa->CheckComposite = NVC0EXACheckComposite; exa->PrepareComposite = NVC0EXAPrepareComposite; exa->Composite = NVC0EXAComposite; diff --git a/src/nv_accel_common.c b/src/nv_accel_common.c index 5d12dd8..5561708 100644 --- a/src/nv_accel_common.c +++ b/src/nv_accel_common.c @@ -723,6 +723,7 @@ NVAccelCommonInit(ScrnInfoPtr pScrn) case NV_FERMI: case NV_KEPLER: case NV_MAXWELL: + case NV_PASCAL: INIT_CONTEXT_OBJECT(3D_NVC0); break; case NV_TESLA: diff --git a/src/nv_driver.c b/src/nv_driver.c index 61940a8..32062eb 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -391,6 +391,7 @@ NVHasKMS(struct pci_device *pci_dev, struct xf86_platform_device *platform_dev) case 0x100: case 0x110: case 0x120: + case 0x130: break; default: xf86DrvMsg(-1, X_ERROR, "Unknown chipset: NV%02X\n", chipset); @@ -945,6 +946,9 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) case 0x120: pNv->Architecture = NV_MAXWELL; break; + case 0x130: + pNv->Architecture = NV_PASCAL; + break; default: return FALSE; } diff --git a/src/nv_type.h b/src/nv_type.h index d7bb4f4..6dc5793 100644 --- a/src/nv_type.h +++ b/src/nv_type.h @@ -23,6 +23,7 @@ #define NV_FERMI 0xc0 #define NV_KEPLER 0xe0 #define NV_MAXWELL 0x110 +#define NV_PASCAL 0x130 struct xf86_platform_device; diff --git a/src/nvc0_accel.c b/src/nvc0_accel.c index 6c2bae8..1047d36 100644 --- a/src/nvc0_accel.c +++ b/src/nvc0_accel.c @@ -250,6 +250,12 @@ NVAccelInit3D_NVC0(ScrnInfoPtr pScrn) } else if (pNv->dev->chipset < 0x130) { class = 0xb197; handle = 0x0000906e; + } else if (pNv->dev->chipset == 0x130) { + class = 0xc097; + handle = 0x0000906e; + } else if (pNv->dev->chipset < 0x140) { + class = 0xc197; + handle = 0x0000906e; } else { xf86DrvMsg(pScrn->scrnIndex, X_INFO, "No 3D acceleration support for NV%X\n", |