| .. | .. |
|---|
| 29 | 29 | * drivers use them, and removing them are API breaks. |
|---|
| 30 | 30 | */ |
|---|
| 31 | 31 | #include <linux/list.h> |
|---|
| 32 | + |
|---|
| 33 | +#include <drm/drm.h> |
|---|
| 34 | +#include <drm/drm_device.h> |
|---|
| 32 | 35 | #include <drm/drm_legacy.h> |
|---|
| 33 | 36 | |
|---|
| 34 | 37 | struct agp_memory; |
|---|
| 35 | 38 | struct drm_device; |
|---|
| 36 | 39 | struct drm_file; |
|---|
| 40 | +struct drm_buf_desc; |
|---|
| 37 | 41 | |
|---|
| 38 | 42 | /* |
|---|
| 39 | 43 | * Generic DRM Contexts |
|---|
| .. | .. |
|---|
| 42 | 46 | #define DRM_KERNEL_CONTEXT 0 |
|---|
| 43 | 47 | #define DRM_RESERVED_CONTEXTS 1 |
|---|
| 44 | 48 | |
|---|
| 49 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 45 | 50 | void drm_legacy_ctxbitmap_init(struct drm_device *dev); |
|---|
| 46 | 51 | void drm_legacy_ctxbitmap_cleanup(struct drm_device *dev); |
|---|
| 47 | | -void drm_legacy_ctxbitmap_free(struct drm_device *dev, int ctx_handle); |
|---|
| 48 | 52 | void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file); |
|---|
| 53 | +#else |
|---|
| 54 | +static inline void drm_legacy_ctxbitmap_init(struct drm_device *dev) {} |
|---|
| 55 | +static inline void drm_legacy_ctxbitmap_cleanup(struct drm_device *dev) {} |
|---|
| 56 | +static inline void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file) {} |
|---|
| 57 | +#endif |
|---|
| 49 | 58 | |
|---|
| 59 | +void drm_legacy_ctxbitmap_free(struct drm_device *dev, int ctx_handle); |
|---|
| 60 | + |
|---|
| 61 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 50 | 62 | int drm_legacy_resctx(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 51 | 63 | int drm_legacy_addctx(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 52 | 64 | int drm_legacy_getctx(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| .. | .. |
|---|
| 56 | 68 | |
|---|
| 57 | 69 | int drm_legacy_setsareactx(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 58 | 70 | int drm_legacy_getsareactx(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 71 | +#endif |
|---|
| 59 | 72 | |
|---|
| 60 | 73 | /* |
|---|
| 61 | 74 | * Generic Buffer Management |
|---|
| .. | .. |
|---|
| 63 | 76 | |
|---|
| 64 | 77 | #define DRM_MAP_HASH_OFFSET 0x10000000 |
|---|
| 65 | 78 | |
|---|
| 79 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 80 | +static inline int drm_legacy_create_map_hash(struct drm_device *dev) |
|---|
| 81 | +{ |
|---|
| 82 | + return drm_ht_create(&dev->map_hash, 12); |
|---|
| 83 | +} |
|---|
| 84 | + |
|---|
| 85 | +static inline void drm_legacy_remove_map_hash(struct drm_device *dev) |
|---|
| 86 | +{ |
|---|
| 87 | + drm_ht_remove(&dev->map_hash); |
|---|
| 88 | +} |
|---|
| 89 | +#else |
|---|
| 90 | +static inline int drm_legacy_create_map_hash(struct drm_device *dev) |
|---|
| 91 | +{ |
|---|
| 92 | + return 0; |
|---|
| 93 | +} |
|---|
| 94 | + |
|---|
| 95 | +static inline void drm_legacy_remove_map_hash(struct drm_device *dev) {} |
|---|
| 96 | +#endif |
|---|
| 97 | + |
|---|
| 98 | + |
|---|
| 99 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 66 | 100 | int drm_legacy_getmap_ioctl(struct drm_device *dev, void *data, |
|---|
| 67 | 101 | struct drm_file *file_priv); |
|---|
| 68 | 102 | int drm_legacy_addmap_ioctl(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 69 | 103 | int drm_legacy_rmmap_ioctl(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 104 | + |
|---|
| 70 | 105 | int drm_legacy_addbufs(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 71 | 106 | int drm_legacy_infobufs(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 72 | 107 | int drm_legacy_markbufs(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 73 | 108 | int drm_legacy_freebufs(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 74 | 109 | int drm_legacy_mapbufs(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 75 | 110 | int drm_legacy_dma_ioctl(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 111 | +#endif |
|---|
| 76 | 112 | |
|---|
| 77 | 113 | int __drm_legacy_infobufs(struct drm_device *, void *, int *, |
|---|
| 78 | 114 | int (*)(void *, int, struct drm_buf_entry *)); |
|---|
| .. | .. |
|---|
| 81 | 117 | int (*)(void *, int, unsigned long, struct drm_buf *), |
|---|
| 82 | 118 | struct drm_file *); |
|---|
| 83 | 119 | |
|---|
| 84 | | -#ifdef CONFIG_DRM_VM |
|---|
| 120 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 121 | +void drm_legacy_master_rmmaps(struct drm_device *dev, |
|---|
| 122 | + struct drm_master *master); |
|---|
| 123 | +void drm_legacy_rmmaps(struct drm_device *dev); |
|---|
| 124 | +#else |
|---|
| 125 | +static inline void drm_legacy_master_rmmaps(struct drm_device *dev, |
|---|
| 126 | + struct drm_master *master) {} |
|---|
| 127 | +static inline void drm_legacy_rmmaps(struct drm_device *dev) {} |
|---|
| 128 | +#endif |
|---|
| 129 | + |
|---|
| 130 | +#if IS_ENABLED(CONFIG_DRM_VM) && IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 85 | 131 | void drm_legacy_vma_flush(struct drm_device *d); |
|---|
| 86 | 132 | #else |
|---|
| 87 | 133 | static inline void drm_legacy_vma_flush(struct drm_device *d) |
|---|
| .. | .. |
|---|
| 103 | 149 | }; |
|---|
| 104 | 150 | |
|---|
| 105 | 151 | /* drm_lock.c */ |
|---|
| 152 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 106 | 153 | int drm_legacy_lock(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 107 | 154 | int drm_legacy_unlock(struct drm_device *d, void *v, struct drm_file *f); |
|---|
| 108 | 155 | void drm_legacy_lock_release(struct drm_device *dev, struct file *filp); |
|---|
| 156 | +#else |
|---|
| 157 | +static inline void drm_legacy_lock_release(struct drm_device *dev, struct file *filp) {} |
|---|
| 158 | +#endif |
|---|
| 109 | 159 | |
|---|
| 110 | 160 | /* DMA support */ |
|---|
| 161 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 111 | 162 | int drm_legacy_dma_setup(struct drm_device *dev); |
|---|
| 112 | 163 | void drm_legacy_dma_takedown(struct drm_device *dev); |
|---|
| 164 | +#else |
|---|
| 165 | +static inline int drm_legacy_dma_setup(struct drm_device *dev) |
|---|
| 166 | +{ |
|---|
| 167 | + return 0; |
|---|
| 168 | +} |
|---|
| 169 | +#endif |
|---|
| 170 | + |
|---|
| 113 | 171 | void drm_legacy_free_buffer(struct drm_device *dev, |
|---|
| 114 | 172 | struct drm_buf * buf); |
|---|
| 173 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 115 | 174 | void drm_legacy_reclaim_buffers(struct drm_device *dev, |
|---|
| 116 | 175 | struct drm_file *filp); |
|---|
| 176 | +#else |
|---|
| 177 | +static inline void drm_legacy_reclaim_buffers(struct drm_device *dev, |
|---|
| 178 | + struct drm_file *filp) {} |
|---|
| 179 | +#endif |
|---|
| 117 | 180 | |
|---|
| 118 | 181 | /* Scatter Gather Support */ |
|---|
| 182 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 119 | 183 | void drm_legacy_sg_cleanup(struct drm_device *dev); |
|---|
| 120 | 184 | int drm_legacy_sg_alloc(struct drm_device *dev, void *data, |
|---|
| 121 | 185 | struct drm_file *file_priv); |
|---|
| 122 | 186 | int drm_legacy_sg_free(struct drm_device *dev, void *data, |
|---|
| 123 | 187 | struct drm_file *file_priv); |
|---|
| 188 | +#endif |
|---|
| 189 | + |
|---|
| 190 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 191 | +void drm_legacy_init_members(struct drm_device *dev); |
|---|
| 192 | +void drm_legacy_destroy_members(struct drm_device *dev); |
|---|
| 193 | +void drm_legacy_dev_reinit(struct drm_device *dev); |
|---|
| 194 | +int drm_legacy_setup(struct drm_device * dev); |
|---|
| 195 | +#else |
|---|
| 196 | +static inline void drm_legacy_init_members(struct drm_device *dev) {} |
|---|
| 197 | +static inline void drm_legacy_destroy_members(struct drm_device *dev) {} |
|---|
| 198 | +static inline void drm_legacy_dev_reinit(struct drm_device *dev) {} |
|---|
| 199 | +static inline int drm_legacy_setup(struct drm_device * dev) { return 0; } |
|---|
| 200 | +#endif |
|---|
| 201 | + |
|---|
| 202 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 203 | +void drm_legacy_lock_master_cleanup(struct drm_device *dev, struct drm_master *master); |
|---|
| 204 | +#else |
|---|
| 205 | +static inline void drm_legacy_lock_master_cleanup(struct drm_device *dev, struct drm_master *master) {} |
|---|
| 206 | +#endif |
|---|
| 207 | + |
|---|
| 208 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
|---|
| 209 | +void drm_master_legacy_init(struct drm_master *master); |
|---|
| 210 | +#else |
|---|
| 211 | +static inline void drm_master_legacy_init(struct drm_master *master) {} |
|---|
| 212 | +#endif |
|---|
| 124 | 213 | |
|---|
| 125 | 214 | #endif /* __DRM_LEGACY_H__ */ |
|---|