|
@@ -522,20 +522,33 @@ struct drm_mm {
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * Kernel side of a mapping
|
|
|
|
+ */
|
|
|
|
+struct drm_local_map {
|
|
|
|
+ unsigned long offset; /**< Requested physical address (0 for SAREA)*/
|
|
|
|
+ unsigned long size; /**< Requested physical size (bytes) */
|
|
|
|
+ enum drm_map_type type; /**< Type of memory to map */
|
|
|
|
+ enum drm_map_flags flags; /**< Flags */
|
|
|
|
+ void *handle; /**< User-space: "Handle" to pass to mmap() */
|
|
|
|
+ /**< Kernel-space: kernel-virtual address */
|
|
|
|
+ int mtrr; /**< MTRR slot used */
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+typedef struct drm_local_map drm_local_map_t;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Mappings list
|
|
* Mappings list
|
|
*/
|
|
*/
|
|
struct drm_map_list {
|
|
struct drm_map_list {
|
|
struct list_head head; /**< list head */
|
|
struct list_head head; /**< list head */
|
|
struct drm_hash_item hash;
|
|
struct drm_hash_item hash;
|
|
- struct drm_map *map; /**< mapping */
|
|
|
|
|
|
+ struct drm_local_map *map; /**< mapping */
|
|
uint64_t user_token;
|
|
uint64_t user_token;
|
|
struct drm_master *master;
|
|
struct drm_master *master;
|
|
struct drm_mm_node *file_offset_node; /**< fake offset */
|
|
struct drm_mm_node *file_offset_node; /**< fake offset */
|
|
};
|
|
};
|
|
|
|
|
|
-typedef struct drm_map drm_local_map_t;
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* Context handle list
|
|
* Context handle list
|
|
*/
|
|
*/
|
|
@@ -560,7 +573,7 @@ struct drm_ati_pcigart_info {
|
|
dma_addr_t bus_addr;
|
|
dma_addr_t bus_addr;
|
|
dma_addr_t table_mask;
|
|
dma_addr_t table_mask;
|
|
struct drm_dma_handle *table_handle;
|
|
struct drm_dma_handle *table_handle;
|
|
- drm_local_map_t mapping;
|
|
|
|
|
|
+ struct drm_local_map mapping;
|
|
int table_size;
|
|
int table_size;
|
|
};
|
|
};
|
|
|
|
|
|
@@ -747,7 +760,7 @@ struct drm_driver {
|
|
struct drm_file *file_priv);
|
|
struct drm_file *file_priv);
|
|
void (*reclaim_buffers_idlelocked) (struct drm_device *dev,
|
|
void (*reclaim_buffers_idlelocked) (struct drm_device *dev,
|
|
struct drm_file *file_priv);
|
|
struct drm_file *file_priv);
|
|
- unsigned long (*get_map_ofs) (struct drm_map * map);
|
|
|
|
|
|
+ unsigned long (*get_map_ofs) (struct drm_local_map * map);
|
|
unsigned long (*get_reg_ofs) (struct drm_device *dev);
|
|
unsigned long (*get_reg_ofs) (struct drm_device *dev);
|
|
void (*set_version) (struct drm_device *dev,
|
|
void (*set_version) (struct drm_device *dev,
|
|
struct drm_set_version *sv);
|
|
struct drm_set_version *sv);
|
|
@@ -932,7 +945,7 @@ struct drm_device {
|
|
sigset_t sigmask;
|
|
sigset_t sigmask;
|
|
|
|
|
|
struct drm_driver *driver;
|
|
struct drm_driver *driver;
|
|
- drm_local_map_t *agp_buffer_map;
|
|
|
|
|
|
+ struct drm_local_map *agp_buffer_map;
|
|
unsigned int agp_buffer_token;
|
|
unsigned int agp_buffer_token;
|
|
struct drm_minor *control; /**< Control node for card */
|
|
struct drm_minor *control; /**< Control node for card */
|
|
struct drm_minor *primary; /**< render type primary screen head */
|
|
struct drm_minor *primary; /**< render type primary screen head */
|
|
@@ -1049,7 +1062,7 @@ extern int drm_release(struct inode *inode, struct file *filp);
|
|
extern int drm_mmap(struct file *filp, struct vm_area_struct *vma);
|
|
extern int drm_mmap(struct file *filp, struct vm_area_struct *vma);
|
|
extern int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma);
|
|
extern int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma);
|
|
extern void drm_vm_open_locked(struct vm_area_struct *vma);
|
|
extern void drm_vm_open_locked(struct vm_area_struct *vma);
|
|
-extern unsigned long drm_core_get_map_ofs(struct drm_map * map);
|
|
|
|
|
|
+extern unsigned long drm_core_get_map_ofs(struct drm_local_map * map);
|
|
extern unsigned long drm_core_get_reg_ofs(struct drm_device *dev);
|
|
extern unsigned long drm_core_get_reg_ofs(struct drm_device *dev);
|
|
extern unsigned int drm_poll(struct file *filp, struct poll_table_struct *wait);
|
|
extern unsigned int drm_poll(struct file *filp, struct poll_table_struct *wait);
|
|
|
|
|
|
@@ -1155,11 +1168,11 @@ extern int drm_addbufs_agp(struct drm_device *dev, struct drm_buf_desc * request
|
|
extern int drm_addbufs_pci(struct drm_device *dev, struct drm_buf_desc * request);
|
|
extern int drm_addbufs_pci(struct drm_device *dev, struct drm_buf_desc * request);
|
|
extern int drm_addmap(struct drm_device *dev, unsigned int offset,
|
|
extern int drm_addmap(struct drm_device *dev, unsigned int offset,
|
|
unsigned int size, enum drm_map_type type,
|
|
unsigned int size, enum drm_map_type type,
|
|
- enum drm_map_flags flags, drm_local_map_t ** map_ptr);
|
|
|
|
|
|
+ enum drm_map_flags flags, struct drm_local_map **map_ptr);
|
|
extern int drm_addmap_ioctl(struct drm_device *dev, void *data,
|
|
extern int drm_addmap_ioctl(struct drm_device *dev, void *data,
|
|
struct drm_file *file_priv);
|
|
struct drm_file *file_priv);
|
|
-extern int drm_rmmap(struct drm_device *dev, drm_local_map_t *map);
|
|
|
|
-extern int drm_rmmap_locked(struct drm_device *dev, drm_local_map_t *map);
|
|
|
|
|
|
+extern int drm_rmmap(struct drm_device *dev, struct drm_local_map *map);
|
|
|
|
+extern int drm_rmmap_locked(struct drm_device *dev, struct drm_local_map *map);
|
|
extern int drm_rmmap_ioctl(struct drm_device *dev, void *data,
|
|
extern int drm_rmmap_ioctl(struct drm_device *dev, void *data,
|
|
struct drm_file *file_priv);
|
|
struct drm_file *file_priv);
|
|
extern int drm_addbufs(struct drm_device *dev, void *data,
|
|
extern int drm_addbufs(struct drm_device *dev, void *data,
|
|
@@ -1261,7 +1274,7 @@ extern struct proc_dir_entry *drm_proc_root;
|
|
|
|
|
|
extern struct idr drm_minors_idr;
|
|
extern struct idr drm_minors_idr;
|
|
|
|
|
|
-extern drm_local_map_t *drm_getsarea(struct drm_device *dev);
|
|
|
|
|
|
+extern struct drm_local_map *drm_getsarea(struct drm_device *dev);
|
|
|
|
|
|
/* Proc support (drm_proc.h) */
|
|
/* Proc support (drm_proc.h) */
|
|
extern int drm_proc_init(struct drm_minor *minor, int minor_id,
|
|
extern int drm_proc_init(struct drm_minor *minor, int minor_id,
|
|
@@ -1378,12 +1391,12 @@ int drm_gem_open_ioctl(struct drm_device *dev, void *data,
|
|
void drm_gem_open(struct drm_device *dev, struct drm_file *file_private);
|
|
void drm_gem_open(struct drm_device *dev, struct drm_file *file_private);
|
|
void drm_gem_release(struct drm_device *dev, struct drm_file *file_private);
|
|
void drm_gem_release(struct drm_device *dev, struct drm_file *file_private);
|
|
|
|
|
|
-extern void drm_core_ioremap(struct drm_map *map, struct drm_device *dev);
|
|
|
|
-extern void drm_core_ioremap_wc(struct drm_map *map, struct drm_device *dev);
|
|
|
|
-extern void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev);
|
|
|
|
|
|
+extern void drm_core_ioremap(struct drm_local_map *map, struct drm_device *dev);
|
|
|
|
+extern void drm_core_ioremap_wc(struct drm_local_map *map, struct drm_device *dev);
|
|
|
|
+extern void drm_core_ioremapfree(struct drm_local_map *map, struct drm_device *dev);
|
|
|
|
|
|
-static __inline__ struct drm_map *drm_core_findmap(struct drm_device *dev,
|
|
|
|
- unsigned int token)
|
|
|
|
|
|
+static __inline__ struct drm_local_map *drm_core_findmap(struct drm_device *dev,
|
|
|
|
+ unsigned int token)
|
|
{
|
|
{
|
|
struct drm_map_list *_entry;
|
|
struct drm_map_list *_entry;
|
|
list_for_each_entry(_entry, &dev->maplist, head)
|
|
list_for_each_entry(_entry, &dev->maplist, head)
|
|
@@ -1410,7 +1423,7 @@ static __inline__ int drm_device_is_pcie(struct drm_device *dev)
|
|
return pci_find_capability(dev->pdev, PCI_CAP_ID_EXP);
|
|
return pci_find_capability(dev->pdev, PCI_CAP_ID_EXP);
|
|
}
|
|
}
|
|
|
|
|
|
-static __inline__ void drm_core_dropmap(struct drm_map *map)
|
|
|
|
|
|
+static __inline__ void drm_core_dropmap(struct drm_local_map *map)
|
|
{
|
|
{
|
|
}
|
|
}
|
|
|
|
|