From 2a27dca2c258811dd003461bdf116d96d7cf2e07 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 6 May 2010 05:40:15 -0700 Subject: Fix dynamic command queue allocation (Not tested...) Signed-off-by: Thomas White --- drivers/mfd/glamo/glamo-cmdq.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'drivers/mfd/glamo/glamo-cmdq.c') diff --git a/drivers/mfd/glamo/glamo-cmdq.c b/drivers/mfd/glamo/glamo-cmdq.c index 442963cc876..28c52680398 100644 --- a/drivers/mfd/glamo/glamo-cmdq.c +++ b/drivers/mfd/glamo/glamo-cmdq.c @@ -57,6 +57,7 @@ #include "glamo-core.h" #include "glamo-drm-private.h" #include "glamo-regs.h" +#include "glamo-buffer.h" #define GLAMO_CMDQ_SIZE (128 * 1024) /* 128k ring buffer */ @@ -495,10 +496,11 @@ int glamo_cmdq_setup(struct glamodrm_handle *gdrm) } -int glamo_cmdq_init(struct glamodrm_handle *gdrm) +int glamo_cmdq_init(struct drm_device *dev) { struct drm_gem_object *obj; struct drm_glamo_gem_object *gobj; + struct glamodrm_handle *gdrm = dev->dev_private; int ret = 0; obj = glamo_gem_object_alloc(dev, GLAMO_CMDQ_SIZE, 4); @@ -507,9 +509,10 @@ int glamo_cmdq_init(struct glamodrm_handle *gdrm) ret = -ENOMEM; goto out; } - gobj = fbo->driver_private; + gobj = obj->driver_private; gdrm->cmdq_offs = GLAMO_OFFSET_FB + gobj->block->start; - gdrm->cmdq_base = ioremap(gdrm->vram->start + offs, GLAMO_CMDQ_SIZE); + gdrm->cmdq_base = ioremap(gdrm->vram->start + gdrm->cmdq_offs, + GLAMO_CMDQ_SIZE); /* Set up registers */ glamo_cmdq_setup(gdrm); @@ -521,6 +524,7 @@ out: int glamo_cmdq_shutdown(struct glamodrm_handle *gdrm) { + iounmap(gdrm->cmdq_base); return 0; } -- cgit v1.2.3