Clone mode on i915

Vladimir Davydov davydov.vladimir at gmail.com
Wed Feb 14 03:37:39 PST 2007


> On Fri, 2007-02-09 at 15:52 +0200, Vladimir Davydov wrote:
> > Hello All,
> >
> > I'm using the  Dell Inspiron 2200 laptop with embedded i915 graphics
> > controller.
> >
> > The native resolution for builtin LFP is 1024x768.
> > I wont to connect external monitor Samsung SyncMaster  740N to the VGA
> > port. And I wont to work in the clone mode:
> > LFP: 1024x768
> > Samsung: 1280x1024
> >
> > This configuration is working fine under the Windows XP with Intel
> > graphics drivers.
> >
> > Is it possible by using x.org?
> >
> > I tried to use many examples of xorg.conf files for this mode which I
> > found in the Internet by google.
> >
> > Best result that I have: both monitors (LFP and external Samsung) work in
> > the 1024x768 mode.
> >
> >
> > Software configuration:
> > Linux distribution is OpenSUSE 10.2.
> > X.org version is xorg-7.2 (Latest suse build).
> > Linux kernel is 2.6.18.2.
> >
> > I have attached my xorg.conf file and X server log file.
>
> With the current releases, this isn't as easy as it should be.  With
> randrproto, libXrandr, and xrandr from master, xserver from
> server-1.2-branch, and xf86-video-intel from modesetting, it should be
> not just easy, but automatically configured that way if you have those
> outputs connected at X startup.  It would also be configurable
> post-startup using xrandr.
>
> We're working on getting a release of all of these components ready in
> the next couple of weeks.

Thank you for response.

I think that I found the problem.
My LFP supports three resolutions: 1024x768, 800x600, 640x480.

I have found following code in the function I830CheckModeSupport() 
i830_driver.c:8242

Bool
I830CheckModeSupport(ScrnInfoPtr pScrn, int x, int y, int mode)
{
   I830Ptr pI830 = I830PTR(pScrn);
   Bool ret = TRUE;

   if (pI830->Clone) {
      if (pI830->pipeDisplaySize[0].x2 != 0) {
         if (x > pI830->pipeDisplaySize[0].x2 ||
             y > pI830->pipeDisplaySize[0].y2) {
                xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Bad Clone Mode 
removing\n");
                return FALSE;
         }
      }
      if (pI830->pipeDisplaySize[1].x2 != 0) {
         if (x > pI830->pipeDisplaySize[1].x2 ||
             y > pI830->pipeDisplaySize[1].y2) {
                xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Bad Clone Mode 
removing\n");
                return FALSE;
         }
      }
   }

   return ret;
}

In my case Pipe A  has the biggest resolution -  1024x768.
If  I'm trying to set resolution 1280x1024 on Pipe B then this function 
returns  FALSE. 
I think it is not correct becuase I set the virtual size on Pipe A to 
1280x1024.  This function doesn't consider it.

In other words, the mode:
LFP - 1024x768 (virtual size 1280x1024)
External monitor: 1280x1024
is not working.


Thanks for help.


-- 
Best regards!



More information about the xorg mailing list