The logs show
(WW) ATI(0): I2C bus Mach64 initialisation failure.
(II) ATI(0): I2C bus "Mach64" removed.
That's because atii2c.c hasn't splitted I2CAddress into I2CStart and I2CAddress. Here is a patch.
Created attachment 5334 [details] [review]
split ATII2CAddress into ATII2CStart and ATII2CAddress
Changing the topic a little bit.
Adjusting topic and add the patch keyword
Will be included in xf86-video-mach64, which is post 7.1 material.
This probably only hurts gatos functionality, as EDID is gathered through VBE.
That will be fixed too in xf86-video-mach64.
I'll try your patch and probably try some other stuff over I2C now that it
works. However, I am new to I2C and will appreciate if you elaborate a little
bit on what was wrong, how it is fixed and other stuff you found useful fixing
this. Also, why are you declaring ATII2CStart as:
while xf86i2c.h has the following prototype:
Bool (*I2CStart) (I2CBusPtr b, int timeout);
I don't know much about i2c in xorg, but it looks like ati's i2c was
not updated to the current convention of I2CStart/I2CAddress/I2CStop
(while the old one probably was only I2CAddress/I2CStop). So I just
split I2CAddress into I2CStart/I2CAddress. I don't have multimedia
devices for actually testing the I2C driver, I mostly submitted the
bug for fixing a warning in my logs :)
The prototype that I set for ATII2CStart is indeed bogus.
Warning has gone in xf86-video-mach64. Samuel, please switch over to
xf86-video-mach64, you'll get George's EXA to boot.
Why not fixing it in xf86-driver-ati too? Some distributions (like debian) don't package xf86-driver-mach64 yet.
xf86-driver-ati is way beyond fixing, but i'm not stopping you from attempting
to do so.