Quirks
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 that file, it references bug ID's that explain the problem 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_mac_mini quirk_ignore_tv quirk_lenovo_tv_dmi quirk_ivch_dvob quirk_pipea_force
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
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
- Also found in Xorg.0.log
- Graphics Card
See output of lspci -nnvv | grep "VGA controller" -A1
- 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?
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]:[1028,5106] ATI Technologies Inc M18 JN [Radeon Mobility 9800] 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]:[1028,00e3] Radeon Mobility M6 LY HW changes: (Unknown) BIOS: (Unknown)