Quirks

Differences between revisions 11 and 12
Revision 11 as of 2009-01-11 10:27:53
Size: 7413
Editor: 84-72-178-80
Comment:
Revision 12 as of 2009-01-11 10:38:43
Size: 7503
Editor: 84-72-178-80
Comment: split out Subsystem in agpmode examples
Deletions are marked like this. Additions are marked like this.
Line 160: Line 160:
  Graphics Card: [1002,4a4e]:[1028,5106] ATI Technologies Inc M18 JN [Radeon Mobility 9800]   Graphics Card: [1002,4a4e] ATI Technologies Inc M18 JN [Radeon Mobility 9800]
  Card Subsystem: [1028,5106] Dell: Unknown device 5106
Line 168: Line 169:
  Graphics Card: [1002,4c59]:[1028,00e3] Radeon Mobility M6 LY   Graphics Card: [1002,4c59] Radeon Mobility M6 LY
  Card Subsystem: [1028,00e3] Dell: Unknown device 00e3

Sometimes there are bugs in the hardware itself. Quirks are software ways to work around these bugs.

Monitor Quirks

When X starts up, it gathers the 'EDID' data from your monitor to get your monitor's id, and then looks up if there are quirks for that id to apply. Monitor quirks are kept in the X server, in the file hw/xfree86/modes/xf86EdidModes.c. Here is a listing of the current quirks:

quirk_prefer_large_60:           Detailed timing is not preferred, use largest mode at 60Hz
quirk_135_clock_too_high:        Recommended 135MHz pixel clock is too high
quirk_prefer_large_75:           Detailed timing is not preferred, use largest mode at 75Hz
quirk_detailed_h_in_cm:          Detailed timings give horizontal size in cm.
quirk_detailed_v_in_cm:          Detailed timings give vertical size in cm.
quirk_detailed_use_maximum_size: Detailed timings give sizes in cm.
quirk_first_detailed_preferred:  First detailed timing was not marked as preferred.
quirk_detailed_sync_pp:          Use +hsync +vsync for detailed timing.

These all deal with issues where the monitor manufacturer didn't encode EDID properly (like putting values in centimeters rather than millimeters, etc.)

If you look in the source of hw/xfree86/modes/xf86EdidModes.c in xorg-server, it references bug ID's that explain the problems in better detail.

Intel Driver Quirks

The open source -intel driver has a set of quirks contained in the file src/i830_quirks.c:

quirk_pipea_force
quirk_ignore_tv
quirk_ignore_lvds
quirk_mac_mini
quirk_lenovo_tv_dmi
quirk_ivch_dvob

Force Pipe A Quirk

This problem typically exhibits itself on Intel graphics hardware (most particularly i855) by locking up the machine when closing the lid. The fix for this issue is to quirk your card to force enabling Pipe A. If you suspect you're having this bug, try setting this option in your xorg.conf:

  • Section "Device"
    • ..
      Option "ForceEnablePipeA" "true"

    EndSection

If that eliminates the issue, then please file a new bug report with the following information:

  • Title the bug report "Need a Pipe-A quirk for <your video card PCI ID>"

  • Paste in the output of lspci -vvnn | grep -A1 "VGA compat"

  • Give the laptop model name and number
  • Confirm that adding "ForceEnablePipeA" solved the problem

Ref: See bug number 138256

Ignore TV Output Quirk

This problem typically exhibits itself as the GNOME panel seems sized to fit a different resolution than the one your monitor is actually displaying, as shown in this screenshot. This can be caused by the TV output being turned on when it shouldn't; the fix is to quirk your card to ignore the TV output by default. If you suspect you're having this bug, first try setting this option in your xorg.conf:

In section "Section "Device"" add the line:

  • Option "monitor-TV" "TV"

Then the following new section:

  • Section "Monitor"
    • Identifier "TV"
      Option "Ignore" "True"

    EndSection

If that solves the problem, then please file a new bug report with the following information:

  • Title the bug report "Need TVout quirk for <your video card PCI ID>"

  • Paste in the output of the original xrandr (before modifying xorg.conf)

  • Paste in the output of lspci -vvnn | grep -A1 "VGA compat"

  • Give the laptop model name and number
  • Confirm that setting Ignore on the TV output fixed it

Ignore LVDS Output Quirk

This problem typically shows up as the screen going blank when X starts up, typically after usplash has shown the Ubuntu logo but before the gdm login screen appears. In addition, switching to vt consoles just results in blank screens. The system usually is not hung - it still responds to ctrl-alt-del and you may even hear the "login sound". Switching to "vesa" usually makes the blanking problem go away.

The issue is that on your hardware the LVDS is getting enabled when it shouldn't. For instance, the intel driver assumes Mobile graphics chips always have an LVDS attached, so if you're using a mobile graphics chip in a non-laptop device, it'll break. You can spot this by looking in your /var/log/Xorg.0.log and seeing if it's connecting the LVDS output to an output pipe.

If you suspect you have this problem, try explicitly disabling LVDS in your /etc/X11/xorg.conf:

In section "Section "Device"" add the line:

  • Option "monitor-LVDS" "LVDS"

Then the following new section:

  • Section "Monitor"
    • Identifier "LVDS"
      Option "Ignore" "True"

    EndSection

If that solves the problem, then please file a new bug report with the following information:

  • Title the bug report "Need LVDSout quirk for <your video card PCI ID>"

  • Explain the symptoms of the problem you encountered
  • Paste in the output of lspci -vvnn | grep -A1 "VGA compat"

  • Give the laptop model name and number
  • Confirm that setting Ignore on the LVDS output fixed it

ATI Radeon Driver Quirks

ATI AGP Mode Quirk

Some ATI cards are incompatible with other stuff in your system, and only work with specific AGPMode values. One not uncommon situation is an incompatibility between the graphics card and motherboard's "host bridge", which is what this quirk deals with.

Typical Symptoms:

  • X hangs (pointer still moves) or shows corruption:
    • shortly after startup,
    • after starting a 3D program, or
    • after a suspend/resume cycle.
  • The issues go away when:
    • Specifying Option "AGPMode" "#" in xorg.conf

    • Using vesa or fglrx driver
    • Using some older version of the -ati driver that used a different default AGPMode setting

Verification:

Try setting different values (1, 2, 4, 8) for AGPMode in your xorg.conf:

Section "Device"
    ...
    Option "AGPMode" "2"
EndSection

Information Needed for Quirking:

  • Bug report URL or number
  • AGPMode value needed
  • Make/Model of laptop or motherboard
  • Host Bridge
    • See output of lspci -nn | grep 00:00.0

    • Sometimes also found in Xorg.0.log
  • Graphics Card and Subsystem
    • See output of lspci -nnvv | grep -A1 "VGA compatible controller"

    • Sometimes also found in Xorg.0.log
  • Is the system all factory hardware, or have any parts been replaced?
  • Is there an AGP Mode in the system BIOS?
    • If so, is it set to the factory default?

Please add this information to your bug report and add "[Needs AGPMode quirk]" to the title.

Examples:

* deb #462590
  AGPMode needed: 4
  Model:          (Unknown) DELL notebook
  Host Bridge:    [8086,2570] 82865G/PE/P DRAM Controller/Host-Hub Interface
  Graphics Card:  [1002,4a4e] ATI Technologies Inc M18 JN [Radeon Mobility 9800]
  Card Subsystem: [1028,5106] Dell: Unknown device 5106
  HW changes:     (Unknown)
  BIOS:           (Unknown)

* fdo #17360
  AGPMode needed: 2
  Model:          (Unknown)
  Host Bridge:    [8086,3575] 82830 830 Chipset Host Bridge
  Graphics Card:  [1002,4c59] Radeon Mobility M6 LY
  Card Subsystem: [1028,00e3] Dell: Unknown device 00e3
  HW changes:     (Unknown)
  BIOS:           (Unknown)

X/Quirks (last edited 2012-04-14 00:43:56 by static-50-53-79-63)