DRM_AGP_KERN agp_info; /**< AGP device information */
struct list_head memory;
unsigned long mode; /**< AGP mode */
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,11)
struct agp_bridge_data *bridge;
-#endif
int enabled; /**< whether the AGP bus as been enabled */
int acquired; /**< whether the AGP device has been acquired */
unsigned long base;
extern int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request);
extern int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
-extern DRM_AGP_MEM *drm_agp_allocate_memory(size_t pages, u32 type);
-#else
extern DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data *bridge, size_t pages, u32 type);
-#endif
extern int drm_agp_free_memory(DRM_AGP_MEM * handle);
extern int drm_agp_bind_memory(DRM_AGP_MEM * handle, off_t start);
extern int drm_agp_unbind_memory(DRM_AGP_MEM * handle);
*/
int drm_agp_acquire(struct drm_device * dev)
{
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
- int retcode;
-#endif
-
if (!dev->agp)
return -ENODEV;
if (dev->agp->acquired)
return -EBUSY;
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
- if ((retcode = agp_backend_acquire()))
- return retcode;
-#else
if (!(dev->agp->bridge = agp_backend_acquire(dev->pdev)))
return -ENODEV;
-#endif
dev->agp->acquired = 1;
return 0;
{
if (!dev->agp || !dev->agp->acquired)
return -EINVAL;
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
- agp_backend_release();
-#else
agp_backend_release(dev->agp->bridge);
-#endif
dev->agp->acquired = 0;
return 0;
return -EINVAL;
dev->agp->mode = mode.mode;
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
- agp_enable(mode.mode);
-#else
agp_enable(dev->agp->bridge, mode.mode);
-#endif
dev->agp->enabled = 1;
return 0;
}
return NULL;
memset((void *)head, 0, sizeof(*head));
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
- agp_copy_info(&head->agp_info);
-#else
head->bridge = agp_find_bridge(dev->pdev);
if (!head->bridge) {
if (!(head->bridge = agp_backend_acquire(dev->pdev))) {
} else {
agp_copy_info(head->bridge, &head->agp_info);
}
-#endif
+
if (head->agp_info.chipset == NOT_SUPPORTED) {
drm_free(head, sizeof(*head), DRM_MEM_AGPLISTS);
return NULL;
}
/** Calls agp_allocate_memory() */
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
-DRM_AGP_MEM *drm_agp_allocate_memory(size_t pages, u32 type)
-{
- return agp_allocate_memory(pages, type);
-}
-#else
DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data *bridge,
size_t pages, u32 type)
{
return agp_allocate_memory(bridge, pages, type);
}
-#endif
/** Calls agp_free_memory() */
int drm_agp_free_memory(DRM_AGP_MEM * handle)
int ret, i;
DRM_DEBUG("drm_agp_populate_ttm\n");
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
- mem = drm_agp_allocate_memory(num_pages, AGP_USER_MEMORY);
-#else
mem = drm_agp_allocate_memory(dev->agp->bridge, num_pages,
AGP_USER_MEMORY);
-#endif
if (mem == NULL) {
DRM_ERROR("Failed to allocate memory for %ld pages\n",
num_pages);
return -1;
DRM_DEBUG("drm_agp_populate_ttm\n");
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
- mem = drm_agp_allocate_memory(num_pages, AGP_USER_MEMORY);
-#else
mem = drm_agp_allocate_memory(agp_be->bridge, num_pages, AGP_USER_MEMORY);
-#endif
if (!mem) {
drm_free_memctl(num_pages * sizeof(void *));
return -1;
}
/** Wrapper around agp_allocate_memory() */
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
-DRM_AGP_MEM *drm_alloc_agp(struct drm_device *dev, int pages, u32 type)
-{
- return drm_agp_allocate_memory(pages, type);
-}
-#else
DRM_AGP_MEM *drm_alloc_agp(struct drm_device *dev, int pages, u32 type)
{
return drm_agp_allocate_memory(dev->agp->bridge, pages, type);
}
-#endif
/** Wrapper around agp_free_memory() */
int drm_free_agp(DRM_AGP_MEM * handle, int pages)