Bug 21391

Summary: No support for forcing low horizontal sync
Product: xorg Reporter: Dag Stenstad <dag>
Component: Driver/intelAssignee: MaLing <ling.ma>
Status: RESOLVED DUPLICATE QA Contact: Xorg Project Team <xorg-team>
Severity: enhancement    
Priority: low CC: zhenyu.z.wang
Version: unspecifiedKeywords: NEEDINFO
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Dag Stenstad 2009-04-24 12:33:58 UTC
I want to use a low HorizSync on the VGA port, more specifically 15 kHz. The reason for this is to be able to connect to either an 15 kHz arcade monitor or a 15 kHz CRT TV (SCART RGB). Some drivers support options like "IgnoreEDID", as most drivers have a failsafe "feature" that disallows HroizSync below 30.

I guess what I want is either an option like "IgnoreEDID" or simmilar.
Comment 1 Michael Fu 2009-05-05 05:46:51 UTC
Option NoDDC...but I don't know if your idea would work for your monitor - it has its own range of acceptable hsync and you may not specify it as you wish. if it hs EDID and doesn't claim support 15khz hsync, just ignore EDID won't make it work for you either.
Comment 2 MaLing 2009-05-05 22:31:00 UTC
EDID contains basic information about a monitor and its capabilities, including color characteristics, frequency range limits and so on,
driver fetch EDID to xserver, then xserver use it to chose reliable mode to driver, otherwise monitor could doesn't work.

Even if driver do not provide EDID, current xserver defined the lowest Hsync is 31k, and xserver will force all modes from default mode list to meet the condition. So this is not driver problem, I will close it, please reopen it if that is necessary.

Thanks
Ma Ling
Comment 3 Dag Stenstad 2009-05-13 14:45:35 UTC
Neither my TV or my arcade monitors will report any EDID; You have to set a proper modeline with the correct Hz to do this. I do this on ATI, Matrox and NVidia chipsets; Some don't enforce kHz below 31, some have functions to override this limit.

By adding a feature to disable this check, the Intel chipset can be used for this. It's not a bug, it is a wishlist item to enable hackers to do great things. :-)

If this won't be applied upstream, I'd really like a pointer to where in the code the check is so that I can comment it out..
Comment 4 MaLing 2009-05-13 19:33:57 UTC
Hi Dag
Your external monitor could be VGA, DVI ,HDMI, and their name should be VGA, TMDS-1/2, HDMI-1/2 respectively. please fill one of them in xorg.conf, and your private configuration. if still not work, please upload xorg.log file with modedebug option on.
  
Section "Monitor"
     Identifier "VGA" #TMDS-1/2 HDMI-1/2
     HorizSync 10-170  
     VertRefresh xx
EndSection

Thanks
Ma Ling
Comment 5 MaLing 2009-05-13 20:46:58 UTC
(In reply to comment #4)
> Hi Dag
> Your external monitor could be VGA, DVI ,HDMI, and their name should be VGA,
> TMDS-1/2, HDMI-1/2 respectively. please fill one of them in xorg.conf, and your
> private configuration. if still not work, please upload xorg.log file with
> modedebug option on.
> Section "Monitor"
>      Identifier "VGA" #TMDS-1/2 HDMI-1/2
>      HorizSync 10-170  
>      VertRefresh xx
> EndSection
> Thanks
> Ma Ling

Also append your preferred mode in xorg.conf, if still not work, please upload your xorg.conf and log file with modedebug optoin on together.

thanks
Ma Ling

Section "Monitor"
        Identifier "VGA" #TMDS-1/2 HDMI-1/2
        HorizSync 10-170  
        VertRefresh xx
        Modeline        "1600x1024"  103.12  1600 1600 1656 1664  1024 1024
1029 1030 +hsync +vsync

        Option          "PreferredMode"  "1600x1024"
        ...              ...
EndSection

Section "Screen"
        Identifier      "xxxx"
        Monitor         "VGA" #TMDS-1/2 HDMI-1/2
        ...              ...
EndSection
Comment 6 Michael Fu 2009-05-13 22:27:02 UTC
(In reply to comment #3)
> Neither my TV or my arcade monitors will report any EDID; You have to set a
> proper modeline with the correct Hz to do this. I do this on ATI, Matrox and
> NVidia chipsets; Some don't enforce kHz below 31, some have functions to
> override this limit.

yeah, the point is you have to do it right... it can't be any digit as you wish and has to match your monitor's spec.
Comment 7 Dag Stenstad 2009-05-14 00:53:55 UTC
Yes, I know I have to match the monitors spec, and I have no problems doing this. The problem is that the Intel driver will outright ignore any modelines with a HorizSync less than 31 (maybe the limit is lower, but I don't know what it is exactly). So it does not matter if I set up a correct horizsync, vertrefresh, modelines etc. They will be ignored for being out of spec, because the horizsync setting is ignored for being too low. Valid (or invalid, depending on the monitor) configurations might be:

Section "Monitor"
  Identifier   "Generic Monitor"
  HorizSync    14.0 - 18.0
  VertRefresh  45.0  - 65.0
  Modeline     "720x576" 15.125 720 778 834 968 576 579 607 625 composite interlace +hsync +vsync
EndSection

Or better:

Section "Monitor"
  Identifier      "MonitorTVRGB"
  HorizSync       15.625
  VertRefresh     50.0 - 60.0
  ModeLine "720x576pali" 13.9 720 744 808 888 576 581 586 625 -hsync -vsync interlace
  Modeline "720x576pali" 13.88  720 742 808 888  576 580 583 625 -hsync -vsync interlace
  ModeLine "720x576o"    14.0625  720  760  800 900       576  600  615  625 -hsync -vsync interlace
  ModeLine "720x576"     14.0625  720  760  800 900       576  580  600  625 -hsync -vsync interlace
  Modeline "720x576@60" 33.01 720 752 872 904 576 587 593 605 interlace -hsync -vsync
EndSection

I don't think the Intel chipset/driver currently supports interlace, so these modelines are probably invalid. I've set it up with progressive resolutions as well.

As I mentioned in my last post, I've used this setup on ATI, NVidia and Matrox cards in the past, and most of these have the same failsafe mechanism as the Intel driver; But they include a setting to override the failsafes.
Comment 8 MaLing 2009-05-17 23:00:51 UTC
(In reply to comment #7)
> Yes, I know I have to match the monitors spec, and I have no problems doing
> this. The problem is that the Intel driver will outright ignore any modelines
> with a HorizSync less than 31 (maybe the limit is lower, but I don't know what
> it is exactly). So it does not matter if I set up a correct horizsync,
> vertrefresh, modelines etc. They will be ignored for being out of spec, 

Yes, our driver will mark some low freq as MODE_CLOCK_LOW in valid function because currently our driver doesn't support interlaced mode -bug #11220  

Thanks
Ma Ling

Comment 9 MaLing 2009-05-20 19:56:19 UTC
Hi Dag Stenstad

Because the root cause is the same (currently we don't support interlaced mode), marked the issue as duplicate one with 11220

Thanks
Ma Ling

*** This bug has been marked as a duplicate of bug 11220 ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.