#include <core/option.h>
 
-#include <subdev/bios.h>
-#include <subdev/bios/init.h>
 #include <subdev/vga.h>
 
 #include "priv.h"
        if (ret)
                return ret;
 
-       ret = nvbios_init(&devinit->base, devinit->post);
+       ret = impl->post(&devinit->base, devinit->post);
        if (ret)
                return ret;
 
 
        },
        .pll_set = nvc0_devinit_pll_set,
        .disable = gm107_devinit_disable,
+       .post = nvbios_init,
 }.base;
 
        },
        .meminit = nv04_devinit_meminit,
        .pll_set = nv04_devinit_pll_set,
+       .post = nvbios_init,
 }.base;
 
        },
        .meminit = nv05_devinit_meminit,
        .pll_set = nv04_devinit_pll_set,
+       .post = nvbios_init,
 }.base;
 
        },
        .meminit = nv10_devinit_meminit,
        .pll_set = nv04_devinit_pll_set,
+       .post = nvbios_init,
 }.base;
 
                .fini = nv04_devinit_fini,
        },
        .pll_set = nv04_devinit_pll_set,
+       .post = nvbios_init,
 }.base;
 
        },
        .meminit = nv20_devinit_meminit,
        .pll_set = nv04_devinit_pll_set,
+       .post = nvbios_init,
 }.base;
 
        },
        .pll_set = nv50_devinit_pll_set,
        .disable = nv50_devinit_disable,
+       .post = nvbios_init,
 }.base;
 
        },
        .pll_set = nv50_devinit_pll_set,
        .disable = nv84_devinit_disable,
+       .post = nvbios_init,
 }.base;
 
        },
        .pll_set = nv50_devinit_pll_set,
        .disable = nv98_devinit_disable,
+       .post = nvbios_init,
 }.base;
 
        .pll_set = nva3_devinit_pll_set,
        .disable = nva3_devinit_disable,
        .mmio    = nva3_devinit_mmio,
+       .post = nvbios_init,
 }.base;
 
        },
        .pll_set = nva3_devinit_pll_set,
        .disable = nvaf_devinit_disable,
+       .post = nvbios_init,
 }.base;
 
        },
        .pll_set = nvc0_devinit_pll_set,
        .disable = nvc0_devinit_disable,
+       .post = nvbios_init,
 }.base;
 
 
 #include <subdev/bios.h>
 #include <subdev/bios/pll.h>
+#include <subdev/bios/init.h>
 #include <subdev/clock/pll.h>
 #include <subdev/devinit.h>
 
        int  (*pll_set)(struct nouveau_devinit *, u32 type, u32 freq);
        u64  (*disable)(struct nouveau_devinit *);
        u32  (*mmio)(struct nouveau_devinit *, u32);
+       int  (*post)(struct nouveau_subdev *, bool);
 };
 
 #define nouveau_devinit_create(p,e,o,d)                                        \