From 740d8196e83bd7eaccf2f3575019a7bd96444c1d Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 27 May 2009 22:14:11 +0100 Subject: Initial KMS stuff --- drivers/mfd/glamo/glamo-drm-private.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'drivers/mfd/glamo/glamo-drm-private.h') diff --git a/drivers/mfd/glamo/glamo-drm-private.h b/drivers/mfd/glamo/glamo-drm-private.h index 59fbc2488c5..d1c76c23115 100644 --- a/drivers/mfd/glamo/glamo-drm-private.h +++ b/drivers/mfd/glamo/glamo-drm-private.h @@ -58,6 +58,7 @@ struct glamodrm_handle { struct drm_mm *mmgr; }; + /* Private data. This is where we keep our memory management bits */ struct drm_glamo_gem_object { struct drm_gem_object *obj; /* The GEM object this refers to */ @@ -65,5 +66,15 @@ struct drm_glamo_gem_object { }; +struct glamo_crtc { + struct drm_crtc base; +}; + + +#define to_glamo_crtc(x) container_of(x, struct glamo_crtc, base) +#define to_glamo_output(x) container_of(x, struct glamo_output, base) +#define enc_to_glamo_output(x) container_of(x, struct glamo_output, enc) +#define to_glamo_framebuffer(x) container_of(x, struct glamo_framebuffer, base) + #endif /* __GLAMO_DRMPRIV_H */ -- cgit v1.2.3 From fc1aa2d81852798ea8772705cafec88405d3b4f7 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 3 Jun 2009 00:42:45 +0100 Subject: KMS Skeleton Bits This adds more of the bare bones for KMS, to be fleshed out later. Signed-off-by: Thomas White --- drivers/mfd/glamo/glamo-drm-private.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'drivers/mfd/glamo/glamo-drm-private.h') diff --git a/drivers/mfd/glamo/glamo-drm-private.h b/drivers/mfd/glamo/glamo-drm-private.h index d1c76c23115..835b65bc8cd 100644 --- a/drivers/mfd/glamo/glamo-drm-private.h +++ b/drivers/mfd/glamo/glamo-drm-private.h @@ -71,6 +71,18 @@ struct glamo_crtc { }; +struct glamo_framebuffer { + struct drm_framebuffer base; + struct drm_gem_object *obj; +}; + + +struct glamo_output { + struct drm_connector base; + struct drm_encoder enc; +}; + + #define to_glamo_crtc(x) container_of(x, struct glamo_crtc, base) #define to_glamo_output(x) container_of(x, struct glamo_output, base) #define enc_to_glamo_output(x) container_of(x, struct glamo_output, enc) -- cgit v1.2.3 From ef859741e8baf985777015207041860cc42a2939 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Mon, 15 Jun 2009 01:21:30 +0100 Subject: Just backing up progress (again) Nearly there... Signed-off-by: Thomas White --- drivers/mfd/glamo/glamo-drm-private.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'drivers/mfd/glamo/glamo-drm-private.h') diff --git a/drivers/mfd/glamo/glamo-drm-private.h b/drivers/mfd/glamo/glamo-drm-private.h index 835b65bc8cd..ae65d10a19c 100644 --- a/drivers/mfd/glamo/glamo-drm-private.h +++ b/drivers/mfd/glamo/glamo-drm-private.h @@ -52,6 +52,10 @@ struct glamodrm_handle { struct resource *cmdq; char __iomem *cmdq_base; + /* LCD controller registers */ + struct resource *lcd_regs; + char __iomem *lcd_base; + ssize_t vram_size; /* Memory management */ @@ -68,6 +72,10 @@ struct drm_glamo_gem_object { struct glamo_crtc { struct drm_crtc base; + struct glamodrm_handle *gdrm; + /* a mode_set for fbdev users on this crtc */ + struct drm_mode_set mode_set; + int blank_mode; }; -- cgit v1.2.3 From 32babb5ddf8c7ca02bd8e64482c2a5d9eb727724 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 30 Jun 2009 10:15:49 +0100 Subject: Program the LCD registers This also alters some debug lines. Signed-off-by: Thomas White --- drivers/mfd/glamo/glamo-drm-private.h | 1 + 1 file changed, 1 insertion(+) (limited to 'drivers/mfd/glamo/glamo-drm-private.h') diff --git a/drivers/mfd/glamo/glamo-drm-private.h b/drivers/mfd/glamo/glamo-drm-private.h index ae65d10a19c..ec4b67c084d 100644 --- a/drivers/mfd/glamo/glamo-drm-private.h +++ b/drivers/mfd/glamo/glamo-drm-private.h @@ -88,6 +88,7 @@ struct glamo_framebuffer { struct glamo_output { struct drm_connector base; struct drm_encoder enc; + struct glamodrm_handle *gdrm; }; -- cgit v1.2.3 From 791916962183d648d71f9b45125fa656696084fd Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 2 Jul 2009 23:44:07 +0100 Subject: Initial suspend/resume Doesn't work yet... Signed-off-by: Thomas White --- drivers/mfd/glamo/glamo-drm-private.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'drivers/mfd/glamo/glamo-drm-private.h') diff --git a/drivers/mfd/glamo/glamo-drm-private.h b/drivers/mfd/glamo/glamo-drm-private.h index ec4b67c084d..b7a9932e6ca 100644 --- a/drivers/mfd/glamo/glamo-drm-private.h +++ b/drivers/mfd/glamo/glamo-drm-private.h @@ -37,9 +37,13 @@ struct glamodrm_handle { /* This device */ struct device *dev; + /* The parent device handle */ struct glamo_core *glamo_core; + /* Framebuffer handle for the console (i.e. /dev/fb0) */ + struct fb_info *fb; + /* Command queue registers */ struct resource *reg; char __iomem *reg_base; @@ -60,6 +64,22 @@ struct glamodrm_handle { /* Memory management */ struct drm_mm *mmgr; + + /* Saved state */ + u_int16_t saved_clock; + u_int16_t saved_width; + u_int16_t saved_height; + u_int16_t saved_pitch; + u_int16_t saved_htotal; + u_int16_t saved_hrtrst; + u_int16_t saved_hrtren; + u_int16_t saved_hdspst; + u_int16_t saved_hdspen; + u_int16_t saved_vtotal; + u_int16_t saved_vrtrst; + u_int16_t saved_vrtren; + u_int16_t saved_vdspst; + u_int16_t saved_vdspen; }; -- cgit v1.2.3 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 +++++ 1 file changed, 5 insertions(+) (limited to 'drivers/mfd/glamo/glamo-drm-private.h') 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 */ -- cgit v1.2.3