nvkm_wr32(device, info.reg + 0x10, fN << 16);
                break;
        default:
-               nv_warn(init, "0x%08x/%dKhz unimplemented\n", type, freq);
+               nvkm_warn(subdev, "%08x/%dKhz unimplemented\n", type, freq);
                ret = -EINVAL;
                break;
        }
 
 pmu_load(struct nv50_devinit *init, u8 type, bool post,
         u32 *init_addr_pmu, u32 *args_addr_pmu)
 {
-       struct nvkm_bios *bios = nvkm_bios(init);
+       struct nvkm_subdev *subdev = &init->base.subdev;
+       struct nvkm_bios *bios = subdev->device->bios;
        struct nvbios_pmuR pmu;
 
        if (!nvbios_pmuRm(bios, type, &pmu)) {
-               nv_error(init, "VBIOS PMU fuc %02x not found\n", type);
+               nvkm_error(subdev, "VBIOS PMU fuc %02x not found\n", type);
                return -EINVAL;
        }
 
 gm204_devinit_post(struct nvkm_subdev *subdev, bool post)
 {
        struct nv50_devinit *init = (void *)nvkm_devinit(subdev);
-       struct nvkm_device *device = init->base.subdev.device;
+       struct nvkm_device *device = subdev->device;
        struct nvkm_bios *bios = device->bios;
        struct bit_entry bit_I;
        u32 exec, args;
 
        if (bit_entry(bios, 'I', &bit_I) || bit_I.version != 1 ||
                                            bit_I.length < 0x1c) {
-               nv_error(init, "VBIOS PMU init data not found\n");
+               nvkm_error(subdev, "VBIOS PMU init data not found\n");
                return -EINVAL;
        }
 
 
                nvkm_wr32(device, info.reg + 8, fN);
                break;
        default:
-               nv_warn(init, "0x%08x/%dKhz unimplemented\n", type, freq);
+               nvkm_warn(subdev, "%08x/%dKhz unimplemented\n", type, freq);
                ret = -EINVAL;
                break;
        }
 
 static void
 nv04_devinit_meminit(struct nvkm_devinit *init)
 {
-       struct nvkm_device *device = init->subdev.device;
+       struct nvkm_subdev *subdev = &init->subdev;
+       struct nvkm_device *device = subdev->device;
        u32 patt = 0xdeadbeef;
        struct io_mapping *fb;
        int i;
        /* Map the framebuffer aperture */
        fb = fbmem_init(device);
        if (!fb) {
-               nv_error(init, "failed to map fb\n");
+               nvkm_error(subdev, "failed to map fb\n");
                return;
        }
 
 nv04_devinit_init(struct nvkm_object *object)
 {
        struct nv04_devinit *init = (void *)object;
+       struct nvkm_subdev *subdev = &init->base.subdev;
 
        if (!init->base.post) {
                u32 htotal = nv_rdvgac(init, 0, 0x06);
                htotal |= (nv_rdvgac(init, 0, 0x25) & 0x01) << 10;
                htotal |= (nv_rdvgac(init, 0, 0x41) & 0x01) << 11;
                if (!htotal) {
-                       nv_info(init, "adaptor not initialised\n");
+                       nvkm_debug(subdev, "adaptor not initialised\n");
                        init->base.post = true;
                }
        }
 
                { 0x06, 0x00 },
                { 0x00, 0x00 }
        };
-       struct nvkm_device *device = init->subdev.device;
+       struct nvkm_subdev *subdev = &init->subdev;
+       struct nvkm_device *device = subdev->device;
        struct nvkm_bios *bios = device->bios;
        struct io_mapping *fb;
        u32 patt = 0xdeadbeef;
        /* Map the framebuffer aperture */
        fb = fbmem_init(device);
        if (!fb) {
-               nv_error(init, "failed to map fb\n");
+               nvkm_error(subdev, "failed to map fb\n");
                return;
        }
 
 
 static void
 nv10_devinit_meminit(struct nvkm_devinit *init)
 {
-       struct nvkm_device *device = init->subdev.device;
+       struct nvkm_subdev *subdev = &init->subdev;
+       struct nvkm_device *device = subdev->device;
        static const int mem_width[] = { 0x10, 0x00, 0x20 };
        int mem_width_count;
        uint32_t patt = 0xdeadbeef;
        /* Map the framebuffer aperture */
        fb = fbmem_init(device);
        if (!fb) {
-               nv_error(init, "failed to map fb\n");
+               nvkm_error(subdev, "failed to map fb\n");
                return;
        }
 
 
 #include <subdev/bios/init.h>
 
 static void
-nv20_devinit_meminit(struct nvkm_devinit *devinit)
+nv20_devinit_meminit(struct nvkm_devinit *init)
 {
-       struct nv04_devinit *init = (void *)devinit;
-       struct nvkm_device *device = nv_device(init);
+       struct nvkm_subdev *subdev = &init->subdev;
+       struct nvkm_device *device = subdev->device;
        uint32_t mask = (device->chipset >= 0x25 ? 0x300 : 0x900);
        uint32_t amount, off;
        struct io_mapping *fb;
        /* Map the framebuffer aperture */
        fb = fbmem_init(nv_device(init));
        if (!fb) {
-               nv_error(init, "failed to map fb\n");
+               nvkm_error(subdev, "failed to map fb\n");
                return;
        }
 
 
 
        ret = nvbios_pll_parse(bios, type, &info);
        if (ret) {
-               nv_error(subdev, "failed to retrieve pll data, %d\n", ret);
+               nvkm_error(subdev, "failed to retrieve pll data, %d\n", ret);
                return ret;
        }
 
        ret = nv04_pll_calc(subdev, &info, freq, &N1, &M1, &N2, &M2, &P);
        if (!ret) {
-               nv_error(subdev, "failed pll calculation\n");
+               nvkm_error(subdev, "failed pll calculation\n");
                return ret;
        }
 
 int
 nv50_devinit_init(struct nvkm_object *object)
 {
-       struct nvkm_bios *bios = nvkm_bios(object);
-       struct nvkm_ibus *ibus = nvkm_ibus(object);
        struct nv50_devinit *init = (void *)object;
+       struct nvkm_subdev *subdev = &init->base.subdev;
+       struct nvkm_device *device = subdev->device;
+       struct nvkm_bios *bios = device->bios;
+       struct nvkm_subdev *ibus = device->ibus;
        struct nvbios_outp info;
        struct dcb_output outp;
        u8  ver = 0xff, hdr, cnt, len;
        if (!init->base.post) {
                if (!nv_rdvgac(init, 0, 0x00) &&
                    !nv_rdvgac(init, 0, 0x1a)) {
-                       nv_info(init, "adaptor not initialised\n");
+                       nvkm_debug(subdev, "adaptor not initialised\n");
                        init->base.post = true;
                }
        }