aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-12-08 12:48:20 -0500
committerDave Airlie <airlied@redhat.com>2009-12-08 22:31:00 -0500
commit390d0bbe88b3ef00c28086076d791533407f298e (patch)
treede1ded9f070ac1ffc608c3c656bb3027429fb107
parentec42a6e7dcfc2e9a92fad1c132bc9e110fafeb3f (diff)
drm/radeon/kms: connector fixes
- Don't add dac load detection property to DVI-D - Make sure i2c info is valid before adding DP aux chan bus - Don't create scaling_mode_property twice - fix typo that prevented coherent and load detection from working - add coherent prop to DP (for dp->dvi adapters) Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c20
-rw-r--r--drivers/gpu/drm/radeon/radeon_display.c4
2 files changed, 15 insertions, 9 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index cfa2ebb259fe..5eece186e03c 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -1103,10 +1103,12 @@ radeon_add_atom_connector(struct drm_device *dev,
1103 drm_connector_attach_property(&radeon_connector->base, 1103 drm_connector_attach_property(&radeon_connector->base,
1104 rdev->mode_info.coherent_mode_property, 1104 rdev->mode_info.coherent_mode_property,
1105 1); 1105 1);
1106 radeon_connector->dac_load_detect = true; 1106 if (connector_type == DRM_MODE_CONNECTOR_DVII) {
1107 drm_connector_attach_property(&radeon_connector->base, 1107 radeon_connector->dac_load_detect = true;
1108 rdev->mode_info.load_detect_property, 1108 drm_connector_attach_property(&radeon_connector->base,
1109 1); 1109 rdev->mode_info.load_detect_property,
1110 1);
1111 }
1110 break; 1112 break;
1111 case DRM_MODE_CONNECTOR_HDMIA: 1113 case DRM_MODE_CONNECTOR_HDMIA:
1112 case DRM_MODE_CONNECTOR_HDMIB: 1114 case DRM_MODE_CONNECTOR_HDMIB:
@@ -1141,14 +1143,19 @@ radeon_add_atom_connector(struct drm_device *dev,
1141 ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs); 1143 ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs);
1142 if (ret) 1144 if (ret)
1143 goto failed; 1145 goto failed;
1144 /* add DP i2c bus */
1145 radeon_dig_connector->dp_i2c_bus = radeon_i2c_create_dp(dev, i2c_bus, "DP-auxch");
1146 if (i2c_bus->valid) { 1146 if (i2c_bus->valid) {
1147 /* add DP i2c bus */
1148 radeon_dig_connector->dp_i2c_bus = radeon_i2c_create_dp(dev, i2c_bus, "DP-auxch");
1149 if (!radeon_dig_connector->dp_i2c_bus)
1150 goto failed;
1147 radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DP"); 1151 radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DP");
1148 if (!radeon_connector->ddc_bus) 1152 if (!radeon_connector->ddc_bus)
1149 goto failed; 1153 goto failed;
1150 } 1154 }
1151 subpixel_order = SubPixelHorizontalRGB; 1155 subpixel_order = SubPixelHorizontalRGB;
1156 drm_connector_attach_property(&radeon_connector->base,
1157 rdev->mode_info.coherent_mode_property,
1158 1);
1152 break; 1159 break;
1153 case DRM_MODE_CONNECTOR_SVIDEO: 1160 case DRM_MODE_CONNECTOR_SVIDEO:
1154 case DRM_MODE_CONNECTOR_Composite: 1161 case DRM_MODE_CONNECTOR_Composite:
@@ -1183,7 +1190,6 @@ radeon_add_atom_connector(struct drm_device *dev,
1183 if (!radeon_connector->ddc_bus) 1190 if (!radeon_connector->ddc_bus)
1184 goto failed; 1191 goto failed;
1185 } 1192 }
1186 drm_mode_create_scaling_mode_property(dev);
1187 drm_connector_attach_property(&radeon_connector->base, 1193 drm_connector_attach_property(&radeon_connector->base,
1188 dev->mode_config.scaling_mode_property, 1194 dev->mode_config.scaling_mode_property,
1189 DRM_MODE_SCALE_FULLSCREEN); 1195 DRM_MODE_SCALE_FULLSCREEN);
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index c115f2e442eb..f099ce2d4cc3 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -660,7 +660,7 @@ int radeon_modeset_create_props(struct radeon_device *rdev)
660 return -ENOMEM; 660 return -ENOMEM;
661 661
662 rdev->mode_info.coherent_mode_property->values[0] = 0; 662 rdev->mode_info.coherent_mode_property->values[0] = 0;
663 rdev->mode_info.coherent_mode_property->values[0] = 1; 663 rdev->mode_info.coherent_mode_property->values[1] = 1;
664 } 664 }
665 665
666 if (!ASIC_IS_AVIVO(rdev)) { 666 if (!ASIC_IS_AVIVO(rdev)) {
@@ -684,7 +684,7 @@ int radeon_modeset_create_props(struct radeon_device *rdev)
684 if (!rdev->mode_info.load_detect_property) 684 if (!rdev->mode_info.load_detect_property)
685 return -ENOMEM; 685 return -ENOMEM;
686 rdev->mode_info.load_detect_property->values[0] = 0; 686 rdev->mode_info.load_detect_property->values[0] = 0;
687 rdev->mode_info.load_detect_property->values[0] = 1; 687 rdev->mode_info.load_detect_property->values[1] = 1;
688 688
689 drm_mode_create_scaling_mode_property(rdev->ddev); 689 drm_mode_create_scaling_mode_property(rdev->ddev);
690 690