diff options
author | Benjamin Herrenschmidt | 2006-11-17 15:35:00 +1100 |
---|---|---|
committer | Linus Torvalds | 2006-11-16 21:59:41 -0800 |
commit | 4f71c5de19c27f2198105d3b26b398494d5c353b (patch) | |
tree | 63373038978d4b5052a29667ede7591267154269 | |
parent | 1b9bb3c14c60324b54645ffefbe6d270f9fd191c (diff) |
[PATCH] Fix radeon DDC regression
When radeonfb was changed to use the new "generic" ddc, a bit of
code initializing the GPIO lines was lost, causing it to not work
if the firmware didn't configure them properly, which seems to
happen on some cards.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | drivers/video/aty/radeon_i2c.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/video/aty/radeon_i2c.c b/drivers/video/aty/radeon_i2c.c index 676754520099..869725a13c21 100644 --- a/drivers/video/aty/radeon_i2c.c +++ b/drivers/video/aty/radeon_i2c.c @@ -139,7 +139,13 @@ void radeon_delete_i2c_busses(struct radeonfb_info *rinfo) int radeon_probe_i2c_connector(struct radeonfb_info *rinfo, int conn, u8 **out_edid) { - u8 *edid = fb_ddc_read(&rinfo->i2c[conn-1].adapter); + u32 reg = rinfo->i2c[conn-1].ddc_reg; + u8 *edid; + + OUTREG(reg, INREG(reg) & + ~(VGA_DDC_DATA_OUTPUT | VGA_DDC_CLK_OUTPUT)); + + edid = fb_ddc_read(&rinfo->i2c[conn-1].adapter); if (out_edid) *out_edid = edid; |