drm/radeon/kms: fix some logic errors in combios i2c mapping
authorAlex Deucher <alexdeucher@gmail.com>
Wed, 4 May 2011 15:14:44 +0000 (15:14 +0000)
committerDave Airlie <airlied@redhat.com>
Mon, 9 May 2011 02:41:01 +0000 (12:41 +1000)
The virtual i2c to real i2c channel mappings weren't setting
the right id in some cases.

Spotted by: Andrew Randrianasulu

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_combios.c

index 0e350b74ea2ececb9011b69f72c1621225e935c9..5b991f7c6e2add24f1b4290b270cf1d44282915f 100644 (file)
@@ -544,20 +544,26 @@ static struct radeon_i2c_bus_rec combios_setup_i2c_bus(struct radeon_device *rde
                    rdev->family == CHIP_RS480)
                        ddc_line = RADEON_GPIOPAD_MASK;
                else if (rdev->family == CHIP_R300 ||
-                        rdev->family == CHIP_R350)
+                        rdev->family == CHIP_R350) {
                        ddc_line = RADEON_GPIO_DVI_DDC;
-               else
+                       ddc = DDC_DVI;
+               } else
                        ddc_line = RADEON_GPIO_MONID;
                break;
        case DDC_CRT2:
                if (rdev->family == CHIP_R200 ||
                    rdev->family == CHIP_R300 ||
-                   rdev->family == CHIP_R350)
+                   rdev->family == CHIP_R350) {
                        ddc_line = RADEON_GPIO_DVI_DDC;
-               else if (rdev->family == CHIP_RS300 ||
-                        rdev->family >= CHIP_RV350)
+                       ddc = DDC_DVI;
+               } else if (rdev->family == CHIP_RS300 ||
+                          rdev->family == CHIP_RS400 ||
+                          rdev->family == CHIP_RS480)
                        ddc_line = RADEON_GPIO_MONID;
-               else
+               else if (rdev->family >= CHIP_RV350) {
+                       ddc_line = RADEON_GPIO_MONID;
+                       ddc = DDC_MONID;
+               } else
                        ddc_line = RADEON_GPIO_CRT2_DDC;
                break;
        }