No DVI output on ATI Xpress 200 - reopen

Alex Deucher alexdeucher at gmail.com
Mon Jul 23 16:07:17 PDT 2012


On Mon, Jul 23, 2012 at 6:29 PM, Przemysław Tomczyk
<tomczyk.przemek at gmail.com> wrote:
> so.
> the box has 2 monitors (different) connected, thru VGA and DVI-D
> after inserting i2c-dev and eeprom modules, i've run i2cdetect from
> debian's i2c-tools package. output was:
>
> i2c-0 smbus     SMBus PIIX4 adapter at 0b00     SMBus adapter
> i2c-1 i2c       Radeon i2c bit bus DVI_DDC       I2C adapter
> i2c-2 i2c       Radeon i2c bit bus VGA_DDC       I2C adapter
> i2c-3 i2c       Radeon i2c bit bus MONID         I2C adapter
> i2c-4 i2c       Radeon i2c bit bus GPIOPAD_MASK I2C adapter
>
> package contains also script called "ddcmon" that probes busses on
> given address, defaulting to 0x50, for something that looks like
> eeprom and contains data that can be interpreted as EDID block.
>
> running it with default arguments, i got VGA monitor's EDID on default
> addres on bus 3. scanning busses 1-4 for addresses 1-4096 (does it
> even make sense? ;-) ) gave no other hits.
>
> and now, i've disconnected VGA, leaving only DVI, and the same - bus 3
> address 0x50 contains VGA's EDID.
>
> after reboot with only DVI connected, theres no EDIDs found anywhere.
>
> then, hw_i2c option of radeon module. got one more bus:
> i2c-0   smbus           SMBus PIIX4 adapter at 0b00             SMBus adapter
> i2c-1   i2c             Radeon i2c hw bus DVI_DDC               I2C adapter
> i2c-2   i2c             Radeon i2c hw bus VGA_DDC               I2C adapter
> i2c-3   i2c             Radeon i2c hw bus MM_I2C                I2C adapter
> i2c-4   i2c             Radeon i2c bit bus MONID                I2C adapter
> i2c-5   i2c             Radeon i2c bit bus GPIOPAD_MASK         I2C adapter
>
> edid of VGA is on 4th bus, 0x50 address - so standard one.
>
> after disabling drm modesetting (no X running) , DVI remained active.
> but no i2c busses :-/
> get-edid from read-edid package managed to get proper edid (only one -
> even with 2 monitors connected) but using interrupt call:
> Read EDID
> Performing real mode VBE call
> Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
> Function supported
> Call successful
>
> concluding: i have no idea where from get DVI edid after kms kicks in :-(

The vbios indicates it should use the gpio pad i2c setup in the i2c
table for DVI ddc (GPIOPAD_MASK i2c bus), but it's possible the oem
wired it up to something else.  You could use something like the
hacked up libx86 in the following package
(http://people.freedesktop.org/~airlied/xresprobe-mjg59-0.4.21.tar.gz)
to snoop what the vbe ddc implementation is doing when you use
read_edid to read the EDID via vbe.  You should be able to look at the
register stream and see what gpio register and bits it is using.  Once
you find out, I can help you add support to the driver.

Alex


More information about the xorg-driver-ati mailing list