Dual-headed configuration using xrandr on GM45 intel query

garrone pgarrone at optusnet.com.au
Wed Dec 3 00:57:28 PST 2008

I am having trouble configuring dual headed mode on an ICH9/GM45 chipset motherboard.
Perhaps my configuration is incorrect, or perhaps there is a bug. I'm
not sure.
I am attempting to use xrandr to configure the outputs.
The software is latest drm-intel-next kernel, latest xorg checkouts as of 3-dec-2008.
The pci numbers are 8086:2a42 for the VGA controller,
interpreted in the xorg.log output as "Mobile Intel® GM45 Express Chipset".

I have 3 LCD's connected to the VGA and SDVO outputs.
After I run xrandr, the two SDVO outputs,
which I wish to run dual-headed, one above the other,
instead are both identical, with the lower screen replicated
to the upper screen.

My xrandr script is:

lx xrandr --fb 1680x2100 \
	--output VGA --off\
	--output LVDS --off\
	--output TMDS-1 --pos 0x1050 --mode 1680x1050\
	--output TMDS-2 --mode 1680x1050 --above TMDS-1\
	--output TV --off

Debugging the xserver with gdb, and after running the xrandr script,
I am able to break at the
intel driver function i830DescribeOutputConfiguration,
where it reads pci card registers. The DSPACNTR and DSPBCNTR
registers are 0xd8000400 and 0x59000400 respectively, and PIPEACONF,
PIPEBCONF are 0xc0000000 and 0x0. These values indicate pipeb is disabled.

My xrandr -q output is:

Screen 0: minimum 320 x 200, current 1680 x 2100, maximum 1680 x 2100
VGA connected (normal left inverted right x axis y axis)
   <modes snipped>
LVDS connected (normal left inverted right x axis y axis)
   <modes snipped>
TMDS-1 connected 1680x1050+0+1050 (normal left inverted right x axis y axis) 474mm x 296mm
   1680x1050      59.9*+
   <other modes snipped>
TMDS-2 connected 1680x1050+0+1050 (normal left inverted right x axis y axis) 474mm x 296mm
   1680x1050      59.9*+
   <other modes snipped>
TV disconnected (normal left inverted right x axis y axis)

The xorg.log file, after xrandr is run, produces the output:

(II) intel(0): [drm] Using the DRM lock SAREA also for drawables.
(II) intel(0): [drm] framebuffer mapped by ddx driver
(II) intel(0): [drm] added 1 reserved context for kernel
(II) intel(0): X context handle = 0x1
(II) intel(0): [drm] installed DRM signal handler
(**) intel(0): Framebuffer compression enabled
(**) intel(0): Tiling enabled
(==) intel(0): VideoRam: 262144 KB
(II) intel(0): Attempting memory allocation with tiled buffers.
(II) intel(0): Tiled allocation successful.
(II) intel(0): [drm] Registers = 0x30000000
(II) intel(0): [dri] visual configs initialized
(II) intel(0): Page Flipping disabled
(II) intel(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000
(II) EXA(0): Offscreen pixmap area of 45158400 bytes
(II) EXA(0): Driver registered support for the following operations:
(II)         Solid
(II)         Copy
(II)         Composite (RENDER acceleration)
(II) intel(0): Initializing HW Cursor
(II) intel(0): [DRI] installation complete
(II) intel(0): Current clock rate multiplier: 1
(II) intel(0): Current clock rate multiplier: 1
(II) intel(0): xf86BindGARTMemory: bind key 0 at 0x0ceee000 (pgoffset 52974)
(II) intel(0): Fixed memory allocation layout:
(II) intel(0): 0x00000000-0x000e5fff: compressed frame buffer (920 kB, 0x000000001e000000 physical
(II) intel(0): 0x000e6000-0x000e6fff: power context (4 kB)
(II) intel(0): 0x01fff000:            end of stolen memory
(II) intel(0): 0x01fff000-0x0ceedfff: DRI memory manager (179132 kB)
(II) intel(0): 0x0ceee000-0x0f9fefff: exa offscreen (44100 kB)
(II) intel(0): 0x10000000:            end of aperture
(II) intel(0): BO memory allocation layout:
(II) intel(0): 0x01fff000:            start of memory manager
(II) intel(0): 0x02020000-0x02e8ffff: depth buffer (14784 kB) Y tiled
(II) intel(0): 0x03020000-0x03e8ffff: back buffer (14784 kB) X tiled
(II) intel(0): 0x04100000-0x04f5afff: front buffer (14700 kB) X tiled
(II) intel(0): 0x04020000-0x0402efff: exa G965 state buffer (60 kB)
(II) intel(0): 0x04030000-0x04037fff: logical 3D context (32 kB)
(II) intel(0): 0x04038000-0x04041fff: HW cursors (40 kB)
(II) intel(0): 0x0ceee000:            end of memory manager
(WW) intel(0): ESR is 0x00000010, page table error
(WW) intel(0): PGTBL_ER is 0x00100000, CS instruction GTT PTE
(WW) intel(0): PRB0_CTL (0x0001f001) indicates ring buffer enabled
(WW) intel(0): Existing errors found in hardware state.
(II) intel(0): clone detected, disabling SSC
(II) intel(0): Output configuration:
(II) intel(0):   Pipe A is on
(II) intel(0):   Display plane A is now enabled and connected to pipe A.
(II) intel(0):   Pipe B is off
(II) intel(0):   Display plane B is now disabled and connected to pipe B.
(II) intel(0):   Output VGA is connected to pipe none
(II) intel(0):   Output LVDS is connected to pipe none
(II) intel(0):   Output TMDS-1 is connected to pipe A
(II) intel(0):   Output TMDS-2 is connected to pipe A
(II) intel(0):   Output TV is connected to pipe none
(II) intel(0): [drm] mapped front buffer at 0x24100000, handle = 0x24100000
(II) intel(0): [drm] mapped back buffer at 0x23020000, handle = 0x23020000
(II) intel(0): [drm] mapped depth buffer at 0x22020000, handle = 0x22020000
(II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
(II) intel(0): DPMS enabled
(II) intel(0): Set up textured video
(II) intel(0): direct rendering: XF86DRI Enabled


My xorg.conf files contains the following configuration:

Section "ServerFlags"
  Option       "AllowMouseOpenFail" "on"
  Option       "BlankTime" "0"
  Option       "SuspendTime" "0"
  Option       "OffTime" "0"
  Option       "StandbyTime" "0"

Section "Module"
  Load         "extmod"
  Load         "dbe"
  Load         "glx"
  Load         "dri"

Section "Device"
  Identifier   "Device[1]"
  Driver       "intel"
  BoardName    "IGD"
  BusID        "0:2:0"
  Option       "ForceSDVODetect" "True"
  VendorName   "Intel"

Section "Screen"
  Identifier   "Screen[1]"
  Device       "Device[1]"
  DefaultDepth  24
  SubSection "Display"
  	  Depth 24
	  Virtual 1680 2100

Section "ServerLayout"
  Identifier   "Layout[all]"
  Screen       "Screen[1]"

# This defines those allowed to use direct rendering.
Section "DRI"
    Group      "video"    # everyone in group video.
    Mode       0660

More information about the xorg mailing list