aboutsummaryrefslogtreecommitdiff
path: root/drivers/mfd/glamo/glamo-display.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2009-06-28 22:14:17 +0100
committerThomas White <taw@bitwiz.org.uk>2009-06-28 22:14:17 +0100
commitee66b72542a996ee8f161221713125ef93f8e105 (patch)
tree87dbcb62f62b3f8291b6ea4ac663942254d7f4e8 /drivers/mfd/glamo/glamo-display.c
parentbfdf7016e915a89f381d6d8da342ad974681736e (diff)
KMS bits and pieces
This adds some missing bits and pieces to make most of the KMS initialisation flow work.` Signed-off-by: Thomas White <taw@bitwiz.org.uk>
Diffstat (limited to 'drivers/mfd/glamo/glamo-display.c')
-rw-r--r--drivers/mfd/glamo/glamo-display.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/drivers/mfd/glamo/glamo-display.c b/drivers/mfd/glamo/glamo-display.c
index 2110e19732d..debcd0706f9 100644
--- a/drivers/mfd/glamo/glamo-display.c
+++ b/drivers/mfd/glamo/glamo-display.c
@@ -297,8 +297,17 @@ static void glamo_connector_destroy(struct drm_connector *connector)
static int glamo_connector_get_modes(struct drm_connector *connector)
{
+ struct drm_display_mode *mode;
printk(KERN_CRIT "glamo_connector_get_modes\n");
- return false;
+
+ mode = drm_mode_create(connector->dev);
+ if (!mode)
+ return 0;
+ /* Fill in 'mode' here */
+ mode->type = DRM_MODE_TYPE_DEFAULT | DRM_MODE_TYPE_PREFERRED;
+ drm_mode_probed_add(connector, mode);
+
+ return 1; /* one mode, for now */
}
@@ -315,11 +324,12 @@ static int glamo_connector_mode_valid(struct drm_connector *connector,
struct drm_display_mode *mode)
{
printk(KERN_CRIT "glamo_connector_mode_valid\n");
- if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
+ if (mode->flags & DRM_MODE_FLAG_DBLSCAN) {
+ printk(KERN_CRIT "Doublescan is not allowed\n");
return MODE_NO_DBLESCAN;
-
- if (mode->clock > 400000 || mode->clock < 25000)
- return MODE_CLOCK_RANGE;
+ }
+
+ printk(KERN_CRIT "Ok!\n");
return MODE_OK;
}
@@ -606,6 +616,7 @@ int glamo_display_init(struct drm_device *dev)
/* Initialise the encoder */
drm_encoder_init(dev, &glamo_output->enc, &glamo_encoder_funcs,
DRM_MODE_ENCODER_DAC);
+ glamo_output->enc.possible_crtcs = 1 << 0;
drm_mode_connector_attach_encoder(&glamo_output->base,
&glamo_output->enc);
@@ -633,7 +644,7 @@ int glamo_display_init(struct drm_device *dev)
modeset->fb = &glamo_fb->base;
modeset->connectors[0] = connector;
- //par->crtc_ids[0] = glamo_crtc->base.id;
+ par->crtc_ids[0] = glamo_crtc->base.base.id;
modeset->num_connectors = 1;
modeset->mode = modeset->crtc->desired_mode;