1#ifndef __NOUVEAU_MXM_H__
2#define __NOUVEAU_MXM_H__
3
4#include <core/subdev.h>
5#include <core/device.h>
6
7#define MXM_SANITISE_DCB 0x00000001
8
9struct nouveau_mxm {
10 struct nouveau_subdev base;
11 u32 action;
12 u8 *mxms;
13};
14
15static inline struct nouveau_mxm *
16nouveau_mxm(void *obj)
17{
18 return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_MXM];
19}
20
21#define nouveau_mxm_create(p,e,o,d) \
22 nouveau_mxm_create_((p), (e), (o), sizeof(**d), (void **)d)
23#define nouveau_mxm_init(p) \
24 nouveau_subdev_init(&(p)->base)
25#define nouveau_mxm_fini(p,s) \
26 nouveau_subdev_fini(&(p)->base, (s))
27int nouveau_mxm_create_(struct nouveau_object *, struct nouveau_object *,
28 struct nouveau_oclass *, int, void **);
29void nouveau_mxm_destroy(struct nouveau_mxm *);
30
31#define _nouveau_mxm_dtor _nouveau_subdev_dtor
32#define _nouveau_mxm_init _nouveau_subdev_init
33#define _nouveau_mxm_fini _nouveau_subdev_fini
34
35extern struct nouveau_oclass nv50_mxm_oclass;
36
37#endif
38