<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED --- - [r128] Changes needed for RandR support"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=75629#c22">Comment # 22</a>
              on <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED --- - [r128] Changes needed for RandR support"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=75629">bug 75629</a>
              from <span class="vcard"><a class="email" href="mailto:agd5f@yahoo.com" title="Alex Deucher <agd5f@yahoo.com>"> <span class="fn">Alex Deucher</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=75629#c20">comment #20</a>)
<span class="quote">> (In reply to <a href="show_bug.cgi?id=75629#c13">comment #13</a>)
> > I think my code is wrong.  You should probably use R128_GPIO_MONID (0x68) or
> > R128_GPIO_MONIDB (0x6c) rather than RADEON_GPIO_DVI_DDC or
> > RADEON_GPIO_VGA_DDC. and use the R128_GPIO_MONID_*_3 and R128_GPIO_MONID_*_0
> > bits rather the bits used on radeon.  Basically just follow the logic in the
> > existing R128I2c*() functions.

> The most recent patch tries calling xf86DoEDID_DDC2() for all types of cards
> with the existing I2c logic. This no longer crashes but it still fails to
> detect the VGA monitor. xf86DoEDID_DDC2() returns NULL no matter what so
> I'll have to do some experimentation. I have three questions about snooping
> the vbe ddc commands.

> 1. By this, do you mean vbeDoEDID()?</span >

Matthew Garret had a hacked up version of vbetool that would trace mmio using
libx86 when executing so you could see what registers were being used.  You
could probably hack vbeDoEDID() and libx86 used by the xserver to do something
similar.

<span class="quote">> 
> 2. This detects the monitor perfectly on my card, so why can't the driver
> just use this instead of implementing the I2c stuff? Is it because
> xf86DoEDID_DDC2() is platform independent but vbeDoEDID() is x86 only?</span >

vbeDoEDID() uses vbe which may be problematic on non-x86 platforms and it has
no concept of multiple monitors so if you have a card with more than one
display attached, it's not clear which EDID would be returned.  For R128, it
may be fine since I think most (all?) dualhead capable cards were laptops so
the other display was an LVDS panel and you could get the panel info from the
vbios.

<span class="quote">> 
> 3. To snoop what the vbios is doing, would this consist of dumping the
> contents of suspicious registers before and after vbeDoEDID() to see what
> changed? Or should I try to dump the contents *during* that function (i.e.
> patching the vbe module or running radeonreg in a loop)?</span >

You just execute the vbe edid fetch function using vbetool and it would dump
the mmio commands to file which you could then look through to see what was
happening.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>