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