[Intel-gfx] possible quirks addition

The Fungi fungi at yuggoth.org
Wed Oct 14 22:42:18 CEST 2009

Now that I've had a chance to play around with KMS fairly heavily,
I'm seeing that there's probably room for improvement with regard to
coming up with valid modes for my current display. I'm using an ASUS
P5E-VM HMDI motherboard board connected to a Sony KDF-60XS955 with
Linux 2.6.31 as packaged in Debian/experimental. With KMS enabled at
boot, the kernel seems to be deciding it should use a 720x480
resolution, but the television detects this as 640x480 and clips off
the 40 pixel columns on each side. The relevant bits from dmesg are:

Linux agpgart interface v0.103
agpgart-intel 0000:00:00.0: Intel G35 Chipset
agpgart-intel 0000:00:00.0: detected 7676K stolen memory
agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xd0000000
[drm] Initialized drm 1.1.0 20060810
i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
i915 0000:00:02.0: setting latency timer to 64
mtrr: type mismatch for d0000000,10000000 old: write-back new: write-combining
[drm] MTRR allocation failed.  Graphics performance may suffer.
i915 0000:00:02.0: irq 27 for MSI/MSI-X
[drm] TMDS-8: set mode 720x480 d
Console: switching to colour frame buffer device 90x30
[drm] fb0: inteldrmfb frame buffer device
[drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0

The television seems to have a built-in 640x480 at 60 support over HDMI
as 480p, since the BIOS/POST displays successfully at boot. It also
works for timings in the vicinity of ATSC 720p (presumably 480i,
720i and 1080i modes would work as well, but I'm unclear on the
driver's support for interlacing at present). The get-edid utility
complains to stderr:

EDID claims 1 more blocks left
*********** Something special has happened!
Please contact the author, Matthew Kern
E-mail: pyrophobicman at gmail.com
Please include full output from this program (especially that to stderr)
EDID claims 1 more blocks left
EDID blocks left is wrong.
Your EDID is probably invalid.

There is still, however, data which can be interpreted by
parse-edid, and it looks like all it includes is the (obviously
incorrect) 720x480 timings as well as the typical broken 1080i
"1920x540" resolution a lot of HDTVs report:

        # EDID version 1 revision 3
Section "Monitor"
        # Block type: 2:0 3:fc
        Identifier "SONY TV"
        VendorName "SNY"
        ModelName "SONY TV"
        # Block type: 2:0 3:fc
        # Block type: 2:0 3:fd
        HorizSync 15-46
        VertRefresh 59-61
        # Max dot clock (video bandwidth) 80 MHz
        # DPMS capabilities: Active off:no  Suspend:no  Standby:no

        Mode    "1920x540"      # vfreq 60.053Hz, hfreq 33.750kHz
                DotClock        74.250000
                HTimings        1920 2008 2052 2200
                VTimings        540 542 547 562
                Flags   "Interlace" "+HSync" "+VSync"
        Mode    "720x480"       # vfreq 59.940Hz, hfreq 31.469kHz
                DotClock        27.000000
                HTimings        720 736 798 858
                VTimings        480 489 495 525
                Flags   "-HSync" "-VSync"
        # Block type: 2:0 3:fc
        # Block type: 2:0 3:fd

Once I've got X started, xrandr reports these supported modes for it:

Screen 0: minimum 320 x 200, current 640 x 480, maximum 8192 x 8192
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 640x480+0+0 (normal left inverted right x axis y axis) 4mm x 3mm
   720x480        59.9
   640x480        60.0*

I'm able to get everything displaying just fine by adding
ATSC-720-60p standard timings via my .xinitrc:

xrandr --newmode "1280x720" 74.25 1280 1320 1376 1650 720 722 728 750
xrandr --addmode HDMI1 1280x720
xrandr --output HDMI1 --mode 1280x720

Is there enough here to go on for a proper quirk? Would you like me
to file a bug report on it, and what additional information would
you like to see in the report, if any? What other suggestions do you
have for getting a more functional FB resolution at boot and on
virtual terminals? Thanks in advance, as always!
{ IRL(Jeremy_Stanley); PGP(9E8DFF2E4F5995F8FEADDC5829ABF7441FB84657);
SMTP(fungi at yuggoth.org); IRC(fungi at irc.yuggoth.org#ccl); ICQ(114362511);
AIM(dreadazathoth); YAHOO(crawlingchaoslabs); FINGER(fungi at yuggoth.org);
MUD(fungi at katarsis.mudpy.org:6669); WWW(http://fungi.yuggoth.org/); }

More information about the Intel-gfx mailing list