only initialise modes when fbcon or fbset asks for it
authorDave Airlie <airlied@linux.ie>
Thu, 12 Apr 2007 01:54:49 +0000 (11:54 +1000)
committerDave Airlie <airlied@linux.ie>
Thu, 12 Apr 2007 01:54:49 +0000 (11:54 +1000)
linux-core/drm_fb.c
shared-core/i915_init.c

index 1a0fb79..a70e4d5 100644 (file)
@@ -77,6 +77,15 @@ static int drmfb_setcolreg(unsigned regno, unsigned red, unsigned green,
        return 0;
 }
 
+/* this will let fbcon do the mode init */
+static int drmfb_set_par(struct fb_info *info)
+{
+       struct drmfb_par *par = info->par;
+       struct drm_device *dev = par->dev;
+
+       drm_set_desired_modes(dev);
+}
+
 static struct fb_ops drmfb_ops = {
        .owner = THIS_MODULE,
        //      .fb_open = drmfb_open,
@@ -84,6 +93,7 @@ static struct fb_ops drmfb_ops = {
        //      .fb_write = drmfb_write,
        //      .fb_release = drmfb_release,
        //      .fb_ioctl = drmfb_ioctl,
+       .fb_set_par = drmfb_set_par,
        .fb_setcolreg = drmfb_setcolreg,
        .fb_fillrect = cfb_fillrect,
        .fb_copyarea = cfb_copyarea,
index b942b70..ebe7381 100644 (file)
@@ -213,8 +213,6 @@ int i915_driver_load(drm_device_t *dev, unsigned long flags)
 
        drm_initial_config(dev, fb, false);
        drmfb_probe(dev, fb);
-        drm_set_desired_modes(dev);
-
 #if 0
        /* FIXME: command ring needs AGP space, do we own it at this point? */
        dev_priv->ring.Start = dev_priv->baseaddr;