summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@botch2.(none)>2008-02-19 19:55:41 -0500
committerAlex Deucher <alex@botch2.(none)>2008-02-19 19:55:41 -0500
commitb77e2aff7453a9f370beba37ca3c25b92b3f97ff (patch)
tree7f62f8dddda853146e069d5d486acaaa11a65fc3
parentaf82172a82f2bdf96e571def659a1c70f92dfdbf (diff)
RADEON: fix DDC types 5 and 6
-rw-r--r--src/radeon_output.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/radeon_output.c b/src/radeon_output.c
index aceb3d8..e65e269 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -1754,12 +1754,23 @@ legacy_setup_i2c_bus(int ddc_line)
i2c.put_data_mask = RADEON_GPIO_EN_0;
i2c.get_clk_mask = RADEON_GPIO_Y_1;
i2c.get_data_mask = RADEON_GPIO_Y_0;
- i2c.mask_clk_reg = ddc_line;
- i2c.mask_data_reg = ddc_line;
- i2c.put_clk_reg = ddc_line;
- i2c.put_data_reg = ddc_line;
- i2c.get_clk_reg = ddc_line;
- i2c.get_data_reg = ddc_line;
+ if ((ddc_line == RADEON_LCD_GPIO_MASK) ||
+ (ddc_line == RADEON_MDGPIO_EN_REG)) {
+ i2c.mask_clk_reg = ddc_line;
+ i2c.mask_data_reg = ddc_line;
+ i2c.put_clk_reg = ddc_line;
+ i2c.put_data_reg = ddc_line;
+ i2c.get_clk_reg = ddc_line + 4;
+ i2c.get_data_reg = ddc_line + 4;
+ } else {
+ i2c.mask_clk_reg = ddc_line;
+ i2c.mask_data_reg = ddc_line;
+ i2c.put_clk_reg = ddc_line;
+ i2c.put_data_reg = ddc_line;
+ i2c.get_clk_reg = ddc_line;
+ i2c.get_data_reg = ddc_line;
+ }
+
if (ddc_line)
i2c.valid = TRUE;
else