summaryrefslogtreecommitdiff
path: root/shared-core/radeon_drv.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-07-29 16:51:47 +1000
committerDave Airlie <airlied@redhat.com>2008-07-29 16:51:47 +1000
commit4234f82acc70f41e005d8cc301da56634352425c (patch)
treefcf556e5c5f0a22001d41efea8032881f39806e9 /shared-core/radeon_drv.h
parent42e373e903d960b38c605229ab102933b18cff73 (diff)
radeon_cs: add relocate hook for mm and non-mm relocations
Diffstat (limited to 'shared-core/radeon_drv.h')
-rw-r--r--shared-core/radeon_drv.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/shared-core/radeon_drv.h b/shared-core/radeon_drv.h
index 232102d5..f79eade5 100644
--- a/shared-core/radeon_drv.h
+++ b/shared-core/radeon_drv.h
@@ -293,8 +293,8 @@ struct drm_radeon_cs_priv {
uint32_t id_last_wcnt;
uint32_t id_last_scnt;
- int (*parse)(struct drm_device *dev, void *ib,
- uint32_t *packets, uint32_t dwords);
+ int (*parse)(struct drm_device *dev, struct drm_file *file_priv,
+ void *ib, uint32_t *packets, uint32_t dwords);
void (*id_emit)(struct drm_device *dev, uint32_t *id);
uint32_t (*id_last_get)(struct drm_device *dev);
/* this ib handling callback are for hidding memory manager drm
@@ -303,6 +303,9 @@ struct drm_radeon_cs_priv {
int (*ib_get)(struct drm_device *dev, void **ib, uint32_t dwords);
uint32_t (*ib_get_ptr)(struct drm_device *dev, void *ib);
void (*ib_free)(struct drm_device *dev, void *ib, uint32_t dwords);
+ /* do a relocation either MM or non-MM */
+ bool (*relocate)(struct drm_device *dev, struct drm_file *file_priv,
+ uint32_t *reloc, uint32_t *offset);
};
typedef struct drm_radeon_private {
@@ -391,6 +394,7 @@ typedef struct drm_radeon_private {
int num_gb_pipes;
+ int mm_disabled; /* on OSes with no MM this will be 1*/
struct radeon_mm_info mm;
drm_local_map_t *mmio;