.timer    = { 0x00000001, nv41_timer_new },
        .volt     = { 0x00000001, nv40_volt_new },
        .bsp      = { 0x00000001, g84_bsp_new },
-       .cipher = g84_cipher_new,
+       .cipher   = { 0x00000001, g84_cipher_new },
        .disp = g84_disp_new,
        .dma = nv50_dma_new,
        .fifo = g84_fifo_new,
        .timer    = { 0x00000001, nv41_timer_new },
        .volt     = { 0x00000001, nv40_volt_new },
        .bsp      = { 0x00000001, g84_bsp_new },
-       .cipher = g84_cipher_new,
+       .cipher   = { 0x00000001, g84_cipher_new },
        .disp = g84_disp_new,
        .dma = nv50_dma_new,
        .fifo = g84_fifo_new,
        .timer    = { 0x00000001, nv41_timer_new },
        .volt     = { 0x00000001, nv40_volt_new },
        .bsp      = { 0x00000001, g84_bsp_new },
-       .cipher = g84_cipher_new,
+       .cipher   = { 0x00000001, g84_cipher_new },
        .disp = g84_disp_new,
        .dma = nv50_dma_new,
        .fifo = g84_fifo_new,
        .timer    = { 0x00000001, nv41_timer_new },
        .volt     = { 0x00000001, nv40_volt_new },
        .bsp      = { 0x00000001, g84_bsp_new },
-       .cipher = g84_cipher_new,
+       .cipher   = { 0x00000001, g84_cipher_new },
        .disp = g94_disp_new,
        .dma = nv50_dma_new,
        .fifo = g84_fifo_new,
        .timer    = { 0x00000001, nv41_timer_new },
        .volt     = { 0x00000001, nv40_volt_new },
        .bsp      = { 0x00000001, g84_bsp_new },
-       .cipher = g84_cipher_new,
+       .cipher   = { 0x00000001, g84_cipher_new },
        .disp = g94_disp_new,
        .dma = nv50_dma_new,
        .fifo = g84_fifo_new,
        .timer    = { 0x00000001, nv41_timer_new },
        .volt     = { 0x00000001, nv40_volt_new },
        .bsp      = { 0x00000001, g84_bsp_new },
-       .cipher = g84_cipher_new,
+       .cipher   = { 0x00000001, g84_cipher_new },
        .disp = gt200_disp_new,
        .dma = nv50_dma_new,
        .fifo = g84_fifo_new,
 #include <core/layout.h>
 #undef NVKM_LAYOUT_INST
 #undef NVKM_LAYOUT_ONCE
-               _(NVKM_ENGINE_CIPHER  ,   cipher);
                _(NVKM_ENGINE_DISP    ,     disp);
                _(NVKM_ENGINE_DMAOBJ  ,      dma);
                _(NVKM_ENGINE_FIFO    ,     fifo);
 
                disable |= (1ULL << NVKM_ENGINE_MPEG);
                nvkm_subdev_disable(device, NVKM_ENGINE_VP, 0);
                nvkm_subdev_disable(device, NVKM_ENGINE_BSP, 0);
-               disable |= (1ULL << NVKM_ENGINE_CIPHER);
+               nvkm_subdev_disable(device, NVKM_ENGINE_CIPHER, 0);
        }
 
        if (!(r00154c & 0x00000004))
        if (!(r00154c & 0x00000020))
                nvkm_subdev_disable(device, NVKM_ENGINE_BSP, 0);
        if (!(r00154c & 0x00000040))
-               disable |= (1ULL << NVKM_ENGINE_CIPHER);
+               nvkm_subdev_disable(device, NVKM_ENGINE_CIPHER, 0);
 
        return disable;
 }