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