drm: move AGP definitions harder

Move drm_agp_head to drm_agpsupport.h and drm_agp_mem into drm_legacy.h.
Unfortunately, drivers still heavily access drm_agp_head so we cannot
move it to drm_legacy.h. However, at least it's no longer visible in
drmP.h now (it's directly included from it, though).

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
David Herrmann 2014-08-29 12:12:32 +02:00 committed by Dave Airlie
parent cc33db0a61
commit cc5ea5947a
6 changed files with 32 additions and 29 deletions

View File

@ -34,6 +34,7 @@
#include <drm/drmP.h>
#include <linux/module.h>
#include <linux/slab.h>
#include "drm_legacy.h"
#if __OS_HAS_AGP

View File

@ -28,6 +28,9 @@
* should no longer be using. They cannot be removed as legacy
* drivers use them, and removing them are API breaks.
*/
#include <linux/list.h>
struct agp_memory;
struct drm_device;
struct drm_file;
@ -68,4 +71,16 @@ int drm_legacy_freebufs(struct drm_device *d, void *v, struct drm_file *f);
int drm_legacy_mapbufs(struct drm_device *d, void *v, struct drm_file *f);
int drm_legacy_dma_ioctl(struct drm_device *d, void *v, struct drm_file *f);
/*
* AGP Support
*/
struct drm_agp_mem {
unsigned long handle;
struct agp_memory *memory;
unsigned long bound;
int pages;
struct list_head head;
};
#endif /* __DRM_LEGACY_H__ */

View File

@ -36,6 +36,7 @@
#include <linux/highmem.h>
#include <linux/export.h>
#include <drm/drmP.h>
#include "drm_legacy.h"
#if __OS_HAS_AGP
static void *agp_remap(unsigned long offset, unsigned long size,

View File

@ -40,6 +40,7 @@
#include <linux/efi.h>
#include <linux/slab.h>
#endif
#include "drm_legacy.h"
struct drm_vma_entry {
struct list_head head;

View File

@ -80,6 +80,7 @@ struct module;
struct drm_file;
struct drm_device;
struct drm_agp_head;
struct device_node;
struct videomode;
@ -439,35 +440,6 @@ struct drm_device_dma {
};
/**
* AGP memory entry. Stored as a doubly linked list.
*/
struct drm_agp_mem {
unsigned long handle; /**< handle */
struct agp_memory *memory;
unsigned long bound; /**< address */
int pages;
struct list_head head;
};
/**
* AGP data.
*
* \sa drm_agp_init() and drm_device::agp.
*/
struct drm_agp_head {
struct agp_kern_info agp_info; /**< AGP device information */
struct list_head memory;
unsigned long mode; /**< AGP mode */
struct agp_bridge_data *bridge;
int enabled; /**< whether the AGP bus as been enabled */
int acquired; /**< whether the AGP device has been acquired */
unsigned long base;
int agp_mtrr;
int cant_use_aperture;
unsigned long page_mask;
};
/**
* Scatter-gather memory.
*/

View File

@ -8,6 +8,19 @@
#include <linux/agp_backend.h>
#include <drm/drmP.h>
struct drm_agp_head {
struct agp_kern_info agp_info;
struct list_head memory;
unsigned long mode;
struct agp_bridge_data *bridge;
int enabled;
int acquired;
unsigned long base;
int agp_mtrr;
int cant_use_aperture;
unsigned long page_mask;
};
#if __OS_HAS_AGP
void drm_free_agp(struct agp_memory * handle, int pages);