Announcement

Collapse
No announcement yet.

Radeon KMS and fbcon: overscan with HDMI, not with DVI

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Radeon KMS and fbcon: overscan with HDMI, not with DVI

    Hello helpers,

    I'm experiencing an issue with overscan in the framebuffer console from a HD3200 IGP connected to Samsung Syncmaster 2333HD LCD. When connected through DVI the resolution is perfectly fine, running 1920x1080. Also when I, without restarting, change the cable from DVI to HDMI (motherboard connector) the screen is OK.

    The problem occurs when I coldstart and have connected through HDMI. There is about 10% overscan on all sides of the screen. I added debug=1 to the drm module and can see the following differences:

    Booting from DVI:
    [drm:radeon_compute_pll_new], 13872 155.0, 2, 8

    Booting from HDMI:
    [drm:radeon_compute_pll_new], 14857 166.0, 2, 8

    I don't know where the differences in PLL frequency come from, so I'm asking help here. Is there anything I can do to isolate this problem even further? Can it be related to incorrect EDID data? I know this monitor has some issues with EDID, as it looks like there's a path in xorg, where it reports vertical size in cm.

    (http://cgit.freedesktop.org/xorg/xse...15edbb88c1f8fd)

    Thanks for any hints and clues!

  • #2
    maybe the monitor reports different EDID information depending on the connector? Trying to be smart, "hey, HDMI input is probably a TV source, let's do overscan".

    You could try dumping the EDID info from both connectors to see if they're equal.


    btw, any reason why sticking to DVI is not an acceptable solution?

    Comment


    • #3
      Lots of flat panel TV's enable overscan on HDMI for some reason. The EDID may be different or the tv config may automatically overscan the image from the HDMI input.

      Comment


      • #4
        You're both correct, the EDID is inded different depending on the input.

        for DVI, EDID was parsed as:
        Code:
                
        # EDID version 1 revision 3
        Section "Monitor"
                # Block type: 2:0 3:fd
                # Block type: 2:0 3:fc
                Identifier "SyncMaster"
                VendorName "SAM"
                ModelName "SyncMaster"
                # Block type: 2:0 3:fd
                HorizSync 30-81
                VertRefresh 56-75
                # Max dot clock (video bandwidth) 170 MHz
                # Block type: 2:0 3:fc
                # Block type: 2:0 3:ff
                # DPMS capabilities: Active off:yes  Suspend:no  Standby:no
        
                Mode    "1920x1080"     # vfreq 59.934Hz, hfreq 66.587kHz
                        DotClock        138.500000
                        HTimings        1920 1968 2000 2080
                        VTimings        1080 1083 1088 1111
                        Flags   "-HSync" "+VSync"
                EndMode
                # Block type: 2:0 3:fd
                # Block type: 2:0 3:fc
                # Block type: 2:0 3:ff
        EndSection
        whereas for HDMI, EDID was parsed as:
        Code:
                # EDID version 1 revision 3
        Section "Monitor"
                # Block type: 2:0 3:fd
                # Block type: 2:0 3:fc
                Identifier "SyncMaster"
                VendorName "SAM"
                ModelName "SyncMaster"
                # Block type: 2:0 3:fd
                HorizSync 27-81
                VertRefresh 23-75
                # Max dot clock (video bandwidth) 170 MHz
                # Block type: 2:0 3:fc
                # DPMS capabilities: Active off:yes  Suspend:no  Standby:no
        
                Mode    "1920x1080"     # vfreq 60.000Hz, hfreq 67.500kHz
                        DotClock        148.500000
                        HTimings        1920 2008 2052 2200
                        VTimings        1080 1084 1089 1125
                        Flags   "+HSync" "+VSync"
                EndMode
                Mode    "1280x720"      # vfreq 50.000Hz, hfreq 37.500kHz
                        DotClock        74.250000
                        HTimings        1280 1464 1504 1980
                        VTimings        720 725 730 750
                        Flags   "+HSync" "+VSync"
                EndMode
                # Block type: 2:0 3:fd
                # Block type: 2:0 3:fc
        EndSection
        (obtained through "get-edid|parse-edid")

        The question now is, how can I enforce the EDID as reported from DVI input as the same for HDMI? Should I submit a change request to, say dri-devel, and ask for an EDID quirk for this monitor? Does this also fix xorg? Or should I apply some kind of patch locally?

        Thanks for the support! Good work, good responses!

        Comment


        • #5
          a workaround (NOT a fix, as it might break dynpm)

          Hi Richardt,

          I have been banging my head against the wall with the same problem for several months. I am running an r770 (HD4850) w/ HDMI --> Sceptre 32Komodo. The overscan was bad in X, but makes console unusable. And I couldn't do any autoconfig (still haven't figured that one out).

          Here's my workaround--xorg.conf (or xorg.conf.d, though I found that to be less friendly). setting the Monitor DisplaySize and creating a working modeline seemed to fix things.

          The only problem is that the card doesn't want to change out of power state 4 (or so it says, the thing is still putting out enough heat that I was shocked to learn that /sys/kernel/debug/dri/ claims it was using only a single lane).
          Code:
          Section "Monitor"
              Identifier	"X32GV-Komodo"
          	HorizSync 40-80
          	VertRefresh 50-75
          	ModeLine "1360x768" 85.50  1360 1424 1536 1792  768 771 777 795 -hsync +vsync
          	DisplaySize	697 391
          EndSection
          #
          Section "Device"
              Identifier	"Myrv770p.i.m.a."
              Driver	"radeon"
              ChipID	0x9442
              Option	"BusType" "PCIE"
              Option	"IgnoreEDID" "on"
              Option	"DynamicPM" "on"
          EndSection
          A custom edid file might solve the pm problem? I still don't have an idea on how do deal with this @ console... Perhaps you'll have better luck than me!

          And rohcQaH -- when the audio doesn't matter ~that much~, I'd rather just pipe it through the TV instead of powering up my entire soundsystem.

          Comment


          • #6
            With Samsungs, you can disable the hdmi overscan in the tv's onscreen menus in picture options -> screen fit.

            Comment


            • #7
              Regarding how to force a certain EDID to a specific output, I just saw this in the radeon manual and though it might be relevant to this thread:

              Option qCustomEDIDq qstringq
              Forces the X driver to use the EDID data specified in a file rather
              than the display's EDID. Also overrides DDC monitor detection.
              Lots more info in the manual pages.

              Comment


              • #8
                Originally posted by runeks View Post
                Regarding how to force a certain EDID to a specific output, I just saw this in the radeon manual and though it might be relevant to this thread:



                Lots more info in the manual pages.
                FWIW, that option only applies to UMS.

                Comment

                Working...
                X