drm_agpsupport.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. #ifndef _DRM_AGPSUPPORT_H_
  2. #define _DRM_AGPSUPPORT_H_
  3. #include <linux/kernel.h>
  4. #include <linux/mm.h>
  5. #include <linux/mutex.h>
  6. #include <linux/types.h>
  7. #include <linux/agp_backend.h>
  8. #include <drm/drmP.h>
  9. #if __OS_HAS_AGP
  10. void drm_free_agp(struct agp_memory * handle, int pages);
  11. int drm_bind_agp(struct agp_memory * handle, unsigned int start);
  12. int drm_unbind_agp(struct agp_memory * handle);
  13. struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
  14. struct page **pages,
  15. unsigned long num_pages,
  16. uint32_t gtt_offset,
  17. uint32_t type);
  18. struct drm_agp_head *drm_agp_init(struct drm_device *dev);
  19. void drm_agp_clear(struct drm_device *dev);
  20. int drm_agp_acquire(struct drm_device *dev);
  21. int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
  22. struct drm_file *file_priv);
  23. int drm_agp_release(struct drm_device *dev);
  24. int drm_agp_release_ioctl(struct drm_device *dev, void *data,
  25. struct drm_file *file_priv);
  26. int drm_agp_enable(struct drm_device *dev, struct drm_agp_mode mode);
  27. int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
  28. struct drm_file *file_priv);
  29. int drm_agp_info(struct drm_device *dev, struct drm_agp_info *info);
  30. int drm_agp_info_ioctl(struct drm_device *dev, void *data,
  31. struct drm_file *file_priv);
  32. int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request);
  33. int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
  34. struct drm_file *file_priv);
  35. int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request);
  36. int drm_agp_free_ioctl(struct drm_device *dev, void *data,
  37. struct drm_file *file_priv);
  38. int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request);
  39. int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
  40. struct drm_file *file_priv);
  41. int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request);
  42. int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
  43. struct drm_file *file_priv);
  44. #else /* __OS_HAS_AGP */
  45. static inline void drm_free_agp(struct agp_memory * handle, int pages)
  46. {
  47. }
  48. static inline int drm_bind_agp(struct agp_memory * handle, unsigned int start)
  49. {
  50. return -ENODEV;
  51. }
  52. static inline int drm_unbind_agp(struct agp_memory * handle)
  53. {
  54. return -ENODEV;
  55. }
  56. static inline struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
  57. struct page **pages,
  58. unsigned long num_pages,
  59. uint32_t gtt_offset,
  60. uint32_t type)
  61. {
  62. return NULL;
  63. }
  64. static inline struct drm_agp_head *drm_agp_init(struct drm_device *dev)
  65. {
  66. return NULL;
  67. }
  68. static inline void drm_agp_clear(struct drm_device *dev)
  69. {
  70. }
  71. static inline int drm_agp_acquire(struct drm_device *dev)
  72. {
  73. return -ENODEV;
  74. }
  75. static inline int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
  76. struct drm_file *file_priv)
  77. {
  78. return -ENODEV;
  79. }
  80. static inline int drm_agp_release(struct drm_device *dev)
  81. {
  82. return -ENODEV;
  83. }
  84. static inline int drm_agp_release_ioctl(struct drm_device *dev, void *data,
  85. struct drm_file *file_priv)
  86. {
  87. return -ENODEV;
  88. }
  89. static inline int drm_agp_enable(struct drm_device *dev,
  90. struct drm_agp_mode mode)
  91. {
  92. return -ENODEV;
  93. }
  94. static inline int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
  95. struct drm_file *file_priv)
  96. {
  97. return -ENODEV;
  98. }
  99. static inline int drm_agp_info(struct drm_device *dev,
  100. struct drm_agp_info *info)
  101. {
  102. return -ENODEV;
  103. }
  104. static inline int drm_agp_info_ioctl(struct drm_device *dev, void *data,
  105. struct drm_file *file_priv)
  106. {
  107. return -ENODEV;
  108. }
  109. static inline int drm_agp_alloc(struct drm_device *dev,
  110. struct drm_agp_buffer *request)
  111. {
  112. return -ENODEV;
  113. }
  114. static inline int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
  115. struct drm_file *file_priv)
  116. {
  117. return -ENODEV;
  118. }
  119. static inline int drm_agp_free(struct drm_device *dev,
  120. struct drm_agp_buffer *request)
  121. {
  122. return -ENODEV;
  123. }
  124. static inline int drm_agp_free_ioctl(struct drm_device *dev, void *data,
  125. struct drm_file *file_priv)
  126. {
  127. return -ENODEV;
  128. }
  129. static inline int drm_agp_unbind(struct drm_device *dev,
  130. struct drm_agp_binding *request)
  131. {
  132. return -ENODEV;
  133. }
  134. static inline int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
  135. struct drm_file *file_priv)
  136. {
  137. return -ENODEV;
  138. }
  139. static inline int drm_agp_bind(struct drm_device *dev,
  140. struct drm_agp_binding *request)
  141. {
  142. return -ENODEV;
  143. }
  144. static inline int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
  145. struct drm_file *file_priv)
  146. {
  147. return -ENODEV;
  148. }
  149. #endif /* __OS_HAS_AGP */
  150. #endif /* _DRM_AGPSUPPORT_H_ */