[Nouveau] [PATCH v2 6/7] copy: add maxwell/pascal copy engine classes

Ilia Mirkin imirkin at alum.mit.edu
Thu Oct 27 14:02:59 UTC 2016


Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
 src/nouveau_copy.c |  2 ++
 src/nvc0_accel.c   | 10 +++++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/nouveau_copy.c b/src/nouveau_copy.c
index c139de6..7118a7a 100644
--- a/src/nouveau_copy.c
+++ b/src/nouveau_copy.c
@@ -42,6 +42,8 @@ nouveau_copy_init(ScreenPtr pScreen)
 		int engine;
 		Bool (*init)(NVPtr);
 	} methods[] = {
+		{ 0xc0b5, 0, nouveau_copya0b5_init },
+		{ 0xb0b5, 0, nouveau_copya0b5_init },
 		{ 0xa0b5, 0, nouveau_copya0b5_init },
 		{ 0x90b8, 5, nouveau_copy90b5_init },
 		{ 0x90b5, 4, nouveau_copy90b5_init },
diff --git a/src/nvc0_accel.c b/src/nvc0_accel.c
index 8da5051..d0a835e 100644
--- a/src/nvc0_accel.c
+++ b/src/nvc0_accel.c
@@ -156,9 +156,17 @@ NVAccelInitCOPY_NVE0(ScrnInfoPtr pScrn)
 {
 	NVPtr pNv = NVPTR(pScrn);
 	struct nouveau_pushbuf *push = pNv->pushbuf;
+	uint32_t class;
 	int ret;
 
-	ret = nouveau_object_new(pNv->channel, 0x0000a0b5, 0xa0b5,
+	if (pNv->dev->chipset < 0x110)
+		class = 0xa0b5;
+	else if (pNv->dev->chipset < 0x130)
+		class = 0xb0b5;
+	else
+		class = 0xc0b5;
+
+	ret = nouveau_object_new(pNv->channel, class, class,
 				 NULL, 0, &pNv->NvCOPY);
 	if (ret)
 		return FALSE;
-- 
2.7.3



More information about the Nouveau mailing list