diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/radeon_output.c | 23 |
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 |