diff options
author | Thomas White <taw@bitwiz.org.uk> | 2010-05-06 05:40:15 -0700 |
---|---|---|
committer | Thomas White <taw@bitwiz.org.uk> | 2010-05-22 19:01:20 +0200 |
commit | 752dfe99a5e2b361f740f2f986de93f5682b1a8d (patch) | |
tree | 044e461556094c6cbea553b68a673eeacf153ffb /drivers/mfd/glamo/glamo-cmdq.c | |
parent | 9cd5001fc2f4c817d5614b1ee5445d69af05d483 (diff) |
Fix dynamic command queue allocation
(Not tested...)
Signed-off-by: Thomas White <taw@bitwiz.org.uk>
Diffstat (limited to 'drivers/mfd/glamo/glamo-cmdq.c')
-rw-r--r-- | drivers/mfd/glamo/glamo-cmdq.c | 10 |
1 files changed, 7 insertions, 3 deletions
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; } |