1 1.1 riastrad /* $NetBSD: nouveau_svm.h,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ 2 1.1 riastrad 3 1.1 riastrad #ifndef __NOUVEAU_SVM_H__ 4 1.1 riastrad #define __NOUVEAU_SVM_H__ 5 1.1 riastrad #include <nvif/os.h> 6 1.1 riastrad struct drm_device; 7 1.1 riastrad struct drm_file; 8 1.1 riastrad struct nouveau_drm; 9 1.1 riastrad 10 1.1 riastrad struct nouveau_svmm; 11 1.1 riastrad 12 1.1 riastrad #if IS_ENABLED(CONFIG_DRM_NOUVEAU_SVM) 13 1.1 riastrad void nouveau_svm_init(struct nouveau_drm *); 14 1.1 riastrad void nouveau_svm_fini(struct nouveau_drm *); 15 1.1 riastrad void nouveau_svm_suspend(struct nouveau_drm *); 16 1.1 riastrad void nouveau_svm_resume(struct nouveau_drm *); 17 1.1 riastrad 18 1.1 riastrad int nouveau_svmm_init(struct drm_device *, void *, struct drm_file *); 19 1.1 riastrad void nouveau_svmm_fini(struct nouveau_svmm **); 20 1.1 riastrad int nouveau_svmm_join(struct nouveau_svmm *, u64 inst); 21 1.1 riastrad void nouveau_svmm_part(struct nouveau_svmm *, u64 inst); 22 1.1 riastrad int nouveau_svmm_bind(struct drm_device *, void *, struct drm_file *); 23 1.1 riastrad #else /* IS_ENABLED(CONFIG_DRM_NOUVEAU_SVM) */ 24 1.1 riastrad static inline void nouveau_svm_init(struct nouveau_drm *drm) {} 25 1.1 riastrad static inline void nouveau_svm_fini(struct nouveau_drm *drm) {} 26 1.1 riastrad static inline void nouveau_svm_suspend(struct nouveau_drm *drm) {} 27 1.1 riastrad static inline void nouveau_svm_resume(struct nouveau_drm *drm) {} 28 1.1 riastrad 29 1.1 riastrad static inline int nouveau_svmm_init(struct drm_device *device, void *p, 30 1.1 riastrad struct drm_file *file) 31 1.1 riastrad { 32 1.1 riastrad return -ENOSYS; 33 1.1 riastrad } 34 1.1 riastrad 35 1.1 riastrad static inline void nouveau_svmm_fini(struct nouveau_svmm **svmmp) {} 36 1.1 riastrad 37 1.1 riastrad static inline int nouveau_svmm_join(struct nouveau_svmm *svmm, u64 inst) 38 1.1 riastrad { 39 1.1 riastrad return 0; 40 1.1 riastrad } 41 1.1 riastrad 42 1.1 riastrad static inline void nouveau_svmm_part(struct nouveau_svmm *svmm, u64 inst) {} 43 1.1 riastrad 44 1.1 riastrad static inline int nouveau_svmm_bind(struct drm_device *device, void *p, 45 1.1 riastrad struct drm_file *file) 46 1.1 riastrad { 47 1.1 riastrad return -ENOSYS; 48 1.1 riastrad } 49 1.1 riastrad #endif /* IS_ENABLED(CONFIG_DRM_NOUVEAU_SVM) */ 50 1.1 riastrad #endif 51