Hi
On NV_40 on driver is sent instructions from NVE0 series
not right
I inspected register 9012c with nvtools
and appear instructions to start unneeded engines
NVE0_CHANNEL_IND_ENGINE_PPP
NVE0_CHANNEL_IND_ENGINE_BSP
NVE0_CHANNEL_IND_ENGINE_ENC
I put one barrier but not start dri.
Index: master_local/drivers/gpu/drm/nouveau/nouveau_abi16.c
===================================================================
--- master_local.orig/drivers/gpu/drm/nouveau/nouveau_abi16.c 2014-08-01 00:51:43.000000000 +0300
+++ master_local/drivers/gpu/drm/nouveau/nouveau_abi16.c 2014-09-13 17:16:19.881489054 +0300
@@ -252,7 +252,12 @@
device = nv_device(abi16->device);
imem = nouveau_instmem(device);
pfb = nouveau_fb(device);
-
+ printk(KERN_INFO "fb_ctxdma_handle %x\n", init->fb_ctxdma_handle);
+ printk(KERN_INFO "tt_ctxdma_handle %x\n", init->tt_ctxdma_handle);
+ printk(KERN_INFO "channel %x\n", init->channel);
+ printk(KERN_INFO "pushbuf_domains %x\n", init->pushbuf_domains);
+ printk(KERN_INFO "notifier_handle %x\n", init->notifier_handle);
+ printk(KERN_INFO "nr_subchan %x\n", init->nr_subchan);
/* hack to allow channel engine type specification on kepler */
if (device->card_type >= NV_E0) {
if (init->fb_ctxdma_handle != ~0)
@@ -265,6 +270,18 @@
if (init->fb_ctxdma_handle == NVE0_CHANNEL_IND_ENGINE_GR)
init->tt_ctxdma_handle = 1;
}
+
+ if (device->card_type < NV_50) {
+ if (init->fb_ctxdma_handle = 0x00000008)
+ return nouveau_abi16_put(abi16, -EINVAL);
+
+ if (init->fb_ctxdma_handle = 0x00000004)
+ return nouveau_abi16_put(abi16, -EINVAL);
+
+ if (init->fb_ctxdma_handle = 0x00000040)
+ return nouveau_abi16_put(abi16, -EINVAL);
+ }
+
if (init->fb_ctxdma_handle == ~0 || init->tt_ctxdma_handle == ~0)
return nouveau_abi16_put(abi16, -EINVAL);
_______________________________________________
Nouveau mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/nouveau