1#ifndef __NVKM_MXM_H__
2#define __NVKM_MXM_H__
3#include <core/subdev.h>
4
5#define MXM_SANITISE_DCB 0x00000001
6
7struct nvkm_mxm {
8	struct nvkm_subdev base;
9	u32 action;
10	u8 *mxms;
11};
12
13static inline struct nvkm_mxm *
14nvkm_mxm(void *obj)
15{
16	return (void *)nvkm_subdev(obj, NVDEV_SUBDEV_MXM);
17}
18
19#define nvkm_mxm_create(p,e,o,d)                                            \
20	nvkm_mxm_create_((p), (e), (o), sizeof(**d), (void **)d)
21#define nvkm_mxm_init(p)                                                    \
22	nvkm_subdev_init(&(p)->base)
23#define nvkm_mxm_fini(p,s)                                                  \
24	nvkm_subdev_fini(&(p)->base, (s))
25int  nvkm_mxm_create_(struct nvkm_object *, struct nvkm_object *,
26			 struct nvkm_oclass *, int, void **);
27void nvkm_mxm_destroy(struct nvkm_mxm *);
28
29#define _nvkm_mxm_dtor _nvkm_subdev_dtor
30#define _nvkm_mxm_init _nvkm_subdev_init
31#define _nvkm_mxm_fini _nvkm_subdev_fini
32
33extern struct nvkm_oclass nv50_mxm_oclass;
34#endif
35