aboutsummaryrefslogtreecommitdiff
path: root/drivers/mfd/glamo/glamo-drm-private.h
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2009-07-15 12:02:49 +0100
committerThomas White <taw@bitwiz.org.uk>2009-07-15 12:02:49 +0100
commit7903aad4738b38f48fb8800782b186be8dfaa024 (patch)
treea8b20157c57c9dc35f049725d38fb2ca645c816a /drivers/mfd/glamo/glamo-drm-private.h
parentd1bb1b43b8db0926715d4bb1bbd9abcb88a4c5ee (diff)
parent5b85050a8f1e7db530f803627ba6371ca9c0ba9b (diff)
Merge branch 'drm-kms' into drm-tracking
Conflicts: drivers/mfd/glamo/glamo-cmdq.c drivers/mfd/glamo/glamo-cmdq.h drivers/mfd/glamo/glamo-drm-drv.c drivers/mfd/glamo/glamo-drm-private.h Signed-off-by: Thomas White <taw@bitwiz.org.uk>
Diffstat (limited to 'drivers/mfd/glamo/glamo-drm-private.h')
-rw-r--r--drivers/mfd/glamo/glamo-drm-private.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/drivers/mfd/glamo/glamo-drm-private.h b/drivers/mfd/glamo/glamo-drm-private.h
index 4cc5877e118..3f01f1fd6a1 100644
--- a/drivers/mfd/glamo/glamo-drm-private.h
+++ b/drivers/mfd/glamo/glamo-drm-private.h
@@ -35,13 +35,22 @@
#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 */
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;
@@ -54,6 +63,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 */
@@ -61,8 +74,25 @@ struct glamodrm_handle {
/* semaphore against concurrent ioctl */
struct semaphore add_to_ring;
+
+ /* 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;
};
+
/* 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 */
@@ -70,5 +100,32 @@ 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;
+};
+
+
+struct glamo_framebuffer {
+ struct drm_framebuffer base;
+ struct drm_gem_object *obj;
+};
+
+
+struct glamo_output {
+ struct drm_connector base;
+ struct drm_encoder enc;
+ struct glamodrm_handle *gdrm;
+};
+
+
+#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 */