summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-core/xgi_cmdlist.c13
-rw-r--r--linux-core/xgi_cmdlist.h9
-rw-r--r--linux-core/xgi_drv.c2
-rw-r--r--linux-core/xgi_drv.h4
4 files changed, 9 insertions, 19 deletions
diff --git a/linux-core/xgi_cmdlist.c b/linux-core/xgi_cmdlist.c
index e1653021..a1ec5720 100644
--- a/linux-core/xgi_cmdlist.c
+++ b/linux-core/xgi_cmdlist.c
@@ -34,7 +34,8 @@ static unsigned int get_batch_command(enum xgi_batch_type type);
static void triggerHWCommandList(struct xgi_info * info);
static void xgi_cmdlist_reset(struct xgi_info * info);
-int xgi_cmdlist_initialize(struct xgi_info * info, size_t size)
+int xgi_cmdlist_initialize(struct xgi_info * info, size_t size,
+ struct drm_file * filp)
{
struct xgi_mem_alloc mem_alloc = {
.location = XGI_MEMLOC_NON_LOCAL,
@@ -42,7 +43,7 @@ int xgi_cmdlist_initialize(struct xgi_info * info, size_t size)
};
int err;
- err = xgi_alloc(info, &mem_alloc, 0);
+ err = xgi_alloc(info, &mem_alloc, filp);
if (err) {
return err;
}
@@ -50,7 +51,6 @@ int xgi_cmdlist_initialize(struct xgi_info * info, size_t size)
info->cmdring.ptr = xgi_find_pcie_virt(info, mem_alloc.hw_addr);
info->cmdring.size = mem_alloc.size;
info->cmdring.ring_hw_base = mem_alloc.hw_addr;
- info->cmdring.ring_gart_base = mem_alloc.offset;
info->cmdring.last_ptr = NULL;
info->cmdring.ring_offset = 0;
@@ -202,12 +202,7 @@ void xgi_cmdlist_cleanup(struct xgi_info * info)
xgi_waitfor_pci_idle(info);
}
- xgi_free(info, (XGI_MEMLOC_NON_LOCAL
- | info->cmdring.ring_gart_base),
- NULL);
- info->cmdring.ring_hw_base = 0;
- info->cmdring.ring_offset = 0;
- info->cmdring.size = 0;
+ (void) memset(&info->cmdring, 0, sizeof(info->cmdring));
}
}
diff --git a/linux-core/xgi_cmdlist.h b/linux-core/xgi_cmdlist.h
index 604c9aac..07a2eb98 100644
--- a/linux-core/xgi_cmdlist.h
+++ b/linux-core/xgi_cmdlist.h
@@ -72,12 +72,6 @@ struct xgi_cmdring_info {
*/
unsigned int ring_hw_base;
- /**
- * Offset, in bytes, from the base of PCI-e GART space to the start
- * of the ring.
- */
- unsigned long ring_gart_base;
-
u32 * last_ptr;
/**
@@ -88,7 +82,8 @@ struct xgi_cmdring_info {
};
struct xgi_info;
-extern int xgi_cmdlist_initialize(struct xgi_info * info, size_t size);
+extern int xgi_cmdlist_initialize(struct xgi_info * info, size_t size,
+ struct drm_file * filp);
extern int xgi_state_change(struct xgi_info * info, unsigned int to,
unsigned int from);
diff --git a/linux-core/xgi_drv.c b/linux-core/xgi_drv.c
index b6fea437..9aaeb467 100644
--- a/linux-core/xgi_drv.c
+++ b/linux-core/xgi_drv.c
@@ -248,7 +248,7 @@ int xgi_bootstrap(struct drm_device * dev, void * data,
}
/* Alloc 1M bytes for cmdbuffer which is flush2D batch array */
- err = xgi_cmdlist_initialize(info, 0x100000);
+ err = xgi_cmdlist_initialize(info, 0x100000, filp);
if (err) {
DRM_ERROR("xgi_cmdlist_initialize() failed\n");
return err;
diff --git a/linux-core/xgi_drv.h b/linux-core/xgi_drv.h
index a7740ceb..9c0f5a28 100644
--- a/linux-core/xgi_drv.h
+++ b/linux-core/xgi_drv.h
@@ -34,11 +34,11 @@
#define DRIVER_NAME "xgi"
#define DRIVER_DESC "XGI XP5 / XP10 / XG47"
-#define DRIVER_DATE "20070806"
+#define DRIVER_DATE "20070809"
#define DRIVER_MAJOR 0
#define DRIVER_MINOR 10
-#define DRIVER_PATCHLEVEL 5
+#define DRIVER_PATCHLEVEL 6
#include "xgi_cmdlist.h"
#include "xgi_drm.h"