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