1 /* SPDX-License-Identifier: MIT */
2 #ifndef __NVIF_DRIVER_H__
3 #define __NVIF_DRIVER_H__
4 #include <nvif/os.h>
5 struct nvif_client;
6 
7 struct nvif_driver {
8 	const char *name;
9 	int (*init)(const char *name, u64 device, const char *cfg,
10 		    const char *dbg, void **priv);
11 	int (*suspend)(void *priv);
12 	int (*resume)(void *priv);
13 	int (*ioctl)(void *priv, void *data, u32 size, void **hack);
14 	void __iomem *(*map)(void *priv, u64 handle, u32 size);
15 	void (*unmap)(void *priv, void __iomem *ptr, u32 size);
16 };
17 
18 int nvif_driver_init(const char *drv, const char *cfg, const char *dbg,
19 		     const char *name, u64 device, struct nvif_client *);
20 
21 extern const struct nvif_driver nvif_driver_nvkm;
22 #endif
23