1 #ifndef __NVKM_DEVINIT_PRIV_H__ 2 #define __NVKM_DEVINIT_PRIV_H__ 3 4 #include <subdev/bios.h> 5 #include <subdev/bios/pll.h> 6 #include <subdev/clock/pll.h> 7 #include <subdev/devinit.h> 8 9 struct nouveau_devinit_impl { 10 struct nouveau_oclass base; 11 void (*meminit)(struct nouveau_devinit *); 12 int (*pll_set)(struct nouveau_devinit *, u32 type, u32 freq); 13 u64 (*disable)(struct nouveau_devinit *); 14 u32 (*mmio)(struct nouveau_devinit *, u32); 15 }; 16 17 #define nouveau_devinit_create(p,e,o,d) \ 18 nouveau_devinit_create_((p), (e), (o), sizeof(**d), (void **)d) 19 #define nouveau_devinit_destroy(p) ({ \ 20 struct nouveau_devinit *d = (p); \ 21 _nouveau_devinit_dtor(nv_object(d)); \ 22 }) 23 #define nouveau_devinit_init(p) ({ \ 24 struct nouveau_devinit *d = (p); \ 25 _nouveau_devinit_init(nv_object(d)); \ 26 }) 27 #define nouveau_devinit_fini(p,s) ({ \ 28 struct nouveau_devinit *d = (p); \ 29 _nouveau_devinit_fini(nv_object(d), (s)); \ 30 }) 31 32 int nouveau_devinit_create_(struct nouveau_object *, struct nouveau_object *, 33 struct nouveau_oclass *, int, void **); 34 void _nouveau_devinit_dtor(struct nouveau_object *); 35 int _nouveau_devinit_init(struct nouveau_object *); 36 int _nouveau_devinit_fini(struct nouveau_object *, bool suspend); 37 38 #endif 39