1#ifndef __NOUVEAU_DEVINIT_H__
2#define __NOUVEAU_DEVINIT_H__
3
4#include <core/subdev.h>
5#include <core/device.h>
6
7struct nouveau_devinit {
8	struct nouveau_subdev base;
9	bool post;
10	void (*meminit)(struct nouveau_devinit *);
11	int  (*pll_set)(struct nouveau_devinit *, u32 type, u32 freq);
12	u32  (*mmio)(struct nouveau_devinit *, u32 addr);
13};
14
15static inline struct nouveau_devinit *
16nouveau_devinit(void *obj)
17{
18	return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_DEVINIT];
19}
20
21extern struct nouveau_oclass *nv04_devinit_oclass;
22extern struct nouveau_oclass *nv05_devinit_oclass;
23extern struct nouveau_oclass *nv10_devinit_oclass;
24extern struct nouveau_oclass *nv1a_devinit_oclass;
25extern struct nouveau_oclass *nv20_devinit_oclass;
26extern struct nouveau_oclass *nv50_devinit_oclass;
27extern struct nouveau_oclass *nv84_devinit_oclass;
28extern struct nouveau_oclass *nv98_devinit_oclass;
29extern struct nouveau_oclass *nva3_devinit_oclass;
30extern struct nouveau_oclass *nvaf_devinit_oclass;
31extern struct nouveau_oclass *nvc0_devinit_oclass;
32extern struct nouveau_oclass *gm107_devinit_oclass;
33
34#endif
35