[PATCH] [131/223] drm/radeon/kms: add workaround for dce3 ddc line vbios bug

From: Andi Kleen
Date: Sun Dec 12 2010 - 19:06:39 EST


2.6.35-longterm review patch. If anyone has any objections, please let me know.

------------------
From: Alex Deucher <alexdeucher@xxxxxxxxx>

commit 3074adc8b6d9bf28b574a58241b958057a69a7a0 upstream.

fixes:
https://bugzilla.kernel.org/show_bug.cgi?id=23752

[AK: Dropped hunk for non existing i2c code in .35]
Signed-off-by: Alex Deucher <alexdeucher@xxxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>
Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>

---
drivers/gpu/drm/radeon/radeon_atombios.c | 8 ++++++++
1 file changed, 8 insertions(+)

Index: linux/drivers/gpu/drm/radeon/radeon_atombios.c
===================================================================
--- linux.orig/drivers/gpu/drm/radeon/radeon_atombios.c
+++ linux/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -84,6 +84,14 @@ static inline struct radeon_i2c_bus_rec
for (i = 0; i < num_indices; i++) {
gpio = &i2c_info->asGPIO_Info[i];

+ /* some DCE3 boards have bad data for this entry */
+ if (ASIC_IS_DCE3(rdev)) {
+ if ((i == 4) &&
+ (gpio->usClkMaskRegisterIndex == 0x1fda) &&
+ (gpio->sucI2cId.ucAccess == 0x94))
+ gpio->sucI2cId.ucAccess = 0x14;
+ }
+
if (gpio->sucI2cId.ucAccess == id) {
i2c.mask_clk_reg = le16_to_cpu(gpio->usClkMaskRegisterIndex) * 4;
i2c.mask_data_reg = le16_to_cpu(gpio->usDataMaskRegisterIndex) * 4;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/