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 Nouveau@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/nouveau