Hi,
I've been carrying this fix privately for far too long; without it, I
cannot enable the hardware I2C for either of my Radeons RV280 or RV350.
It does not fix the I2C for my rv100, which remains broken.
The nature of the failure is that the display fails completely:
[ 35.067825] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
invalid, remainder is 230
[ 35.076023] Raw EDID:
[ 35.078315] 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
[ 35.084067] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 35.089820] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 35.095574] ff ff ff ff ff ff ff ff ff 00 00 ff ff ff ff ff
[ 35.101328] ff ff 1e 1e ff ff ff ff ff ff ff 6d 6d ff ff ff
[ 35.107080] ff ff ff ff 3e 3e ff ff ff ff ff ff ff 4e 4e ff
[ 35.112833] ff ff ff ff ff ff 9a 9a ff ff ff ff ff ff ff f7
[ 35.118587] f7 ff ff ff ff ff ff ff ff ff ff 02 02 ff ff ff
[ 35.167737] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
invalid, remainder is 142
Signed-off-by: Chris Rankin <rankincj@xxxxxxxxxxxxxx>
Cheers,
Chris
--- linux-3.5/drivers/gpu/drm/radeon/radeon_i2c.c.orig 2012-06-07 12:41:09.000000000 +0100
+++ linux-3.5/drivers/gpu/drm/radeon/radeon_i2c.c 2012-08-11 23:00:00.000000000 +0100
@@ -245,7 +245,7 @@
case CHIP_R300:
case CHIP_R350:
case CHIP_RV350:
- i2c_clock = 60;
+ i2c_clock = 100;
nm = (sclk * 10) / (i2c_clock * 4);
for (loop = 1; loop < 255; loop++) {
if ((nm / loop) < loop)
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel