diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-12-08 12:48:20 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-12-08 22:31:00 -0500 |
commit | 390d0bbe88b3ef00c28086076d791533407f298e (patch) | |
tree | de1ded9f070ac1ffc608c3c656bb3027429fb107 | |
parent | ec42a6e7dcfc2e9a92fad1c132bc9e110fafeb3f (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.c | 20 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_display.c | 4 |
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 | ||