From 29a463f963afcd0da83dff2dfd9f0fdc2720dc35 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 9 Jul 2009 00:59:54 +0100 Subject: Expose more memory via glamo-kms-fb This increases the amount of memory exposed via the framebuffer. This should eventually allow an fbdev-based DDX or a KMS DDX to run on the same kernel, albeit suboptimally. Signed-off-by: Thomas White --- drivers/mfd/glamo/glamo-drm-private.h | 5 +++++ drivers/mfd/glamo/glamo-kms-fb.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/mfd/glamo/glamo-drm-private.h b/drivers/mfd/glamo/glamo-drm-private.h index b7a9932e6ca..59030cb2313 100644 --- a/drivers/mfd/glamo/glamo-drm-private.h +++ b/drivers/mfd/glamo/glamo-drm-private.h @@ -33,6 +33,11 @@ #include "glamo-core.h" +/* Memory to allocate for the framebuffer. + * The rest is reserved for the DRM memory manager */ +#define GLAMO_FRAMEBUFFER_ALLOCATION (4*1024*1024) + + struct glamodrm_handle { /* This device */ diff --git a/drivers/mfd/glamo/glamo-kms-fb.c b/drivers/mfd/glamo/glamo-kms-fb.c index b0d46b39a29..4a153fc4857 100644 --- a/drivers/mfd/glamo/glamo-kms-fb.c +++ b/drivers/mfd/glamo/glamo-kms-fb.c @@ -396,7 +396,12 @@ int glamofb_create(struct drm_device *dev, uint32_t fb_width, size = mode_cmd.pitch * mode_cmd.height; size = ALIGN(size, PAGE_SIZE); - fbo = glamo_gem_object_alloc(dev, size, 2); + if ( size > GLAMO_FRAMEBUFFER_ALLOCATION ) { + printk(KERN_ERR "[glamo-drm] Not enough memory for fb\n"); + ret = -ENOMEM; + goto out; + } + fbo = glamo_gem_object_alloc(dev, GLAMO_FRAMEBUFFER_ALLOCATION, 2); if (!fbo) { printk(KERN_ERR "[glamo-drm] Failed to allocate framebuffer\n"); ret = -ENOMEM; -- cgit v1.2.3