From b77e2aff7453a9f370beba37ca3c25b92b3f97ff Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Tue, 19 Feb 2008 19:55:41 -0500 Subject: RADEON: fix DDC types 5 and 6 --- src/radeon_output.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/radeon_output.c b/src/radeon_output.c index aceb3d8e..e65e269e 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 -- cgit v1.2.3