Home | History | Annotate | Line # | Download | only in nouveau
      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