diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_connectors.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_connectors.c | 50 |
1 files changed, 12 insertions, 38 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 1331351c5178..c48934677adf 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c | |||
@@ -1041,7 +1041,6 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1041 | struct radeon_connector_atom_dig *radeon_dig_connector; | 1041 | struct radeon_connector_atom_dig *radeon_dig_connector; |
1042 | uint32_t subpixel_order = SubPixelNone; | 1042 | uint32_t subpixel_order = SubPixelNone; |
1043 | bool shared_ddc = false; | 1043 | bool shared_ddc = false; |
1044 | int ret; | ||
1045 | 1044 | ||
1046 | /* fixme - tv/cv/din */ | 1045 | /* fixme - tv/cv/din */ |
1047 | if (connector_type == DRM_MODE_CONNECTOR_Unknown) | 1046 | if (connector_type == DRM_MODE_CONNECTOR_Unknown) |
@@ -1076,9 +1075,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1076 | switch (connector_type) { | 1075 | switch (connector_type) { |
1077 | case DRM_MODE_CONNECTOR_VGA: | 1076 | case DRM_MODE_CONNECTOR_VGA: |
1078 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); | 1077 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); |
1079 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); | 1078 | drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); |
1080 | if (ret) | ||
1081 | goto failed; | ||
1082 | if (i2c_bus->valid) { | 1079 | if (i2c_bus->valid) { |
1083 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "VGA"); | 1080 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "VGA"); |
1084 | if (!radeon_connector->ddc_bus) | 1081 | if (!radeon_connector->ddc_bus) |
@@ -1091,9 +1088,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1091 | break; | 1088 | break; |
1092 | case DRM_MODE_CONNECTOR_DVIA: | 1089 | case DRM_MODE_CONNECTOR_DVIA: |
1093 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); | 1090 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); |
1094 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); | 1091 | drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); |
1095 | if (ret) | ||
1096 | goto failed; | ||
1097 | if (i2c_bus->valid) { | 1092 | if (i2c_bus->valid) { |
1098 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); | 1093 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); |
1099 | if (!radeon_connector->ddc_bus) | 1094 | if (!radeon_connector->ddc_bus) |
@@ -1113,9 +1108,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1113 | radeon_dig_connector->igp_lane_info = igp_lane_info; | 1108 | radeon_dig_connector->igp_lane_info = igp_lane_info; |
1114 | radeon_connector->con_priv = radeon_dig_connector; | 1109 | radeon_connector->con_priv = radeon_dig_connector; |
1115 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); | 1110 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); |
1116 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); | 1111 | drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); |
1117 | if (ret) | ||
1118 | goto failed; | ||
1119 | if (i2c_bus->valid) { | 1112 | if (i2c_bus->valid) { |
1120 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); | 1113 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); |
1121 | if (!radeon_connector->ddc_bus) | 1114 | if (!radeon_connector->ddc_bus) |
@@ -1141,9 +1134,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1141 | radeon_dig_connector->igp_lane_info = igp_lane_info; | 1134 | radeon_dig_connector->igp_lane_info = igp_lane_info; |
1142 | radeon_connector->con_priv = radeon_dig_connector; | 1135 | radeon_connector->con_priv = radeon_dig_connector; |
1143 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); | 1136 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); |
1144 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); | 1137 | drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); |
1145 | if (ret) | ||
1146 | goto failed; | ||
1147 | if (i2c_bus->valid) { | 1138 | if (i2c_bus->valid) { |
1148 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "HDMI"); | 1139 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "HDMI"); |
1149 | if (!radeon_connector->ddc_bus) | 1140 | if (!radeon_connector->ddc_bus) |
@@ -1163,9 +1154,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1163 | radeon_dig_connector->igp_lane_info = igp_lane_info; | 1154 | radeon_dig_connector->igp_lane_info = igp_lane_info; |
1164 | radeon_connector->con_priv = radeon_dig_connector; | 1155 | radeon_connector->con_priv = radeon_dig_connector; |
1165 | drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type); | 1156 | drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type); |
1166 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs); | 1157 | drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs); |
1167 | if (ret) | ||
1168 | goto failed; | ||
1169 | if (i2c_bus->valid) { | 1158 | if (i2c_bus->valid) { |
1170 | /* add DP i2c bus */ | 1159 | /* add DP i2c bus */ |
1171 | if (connector_type == DRM_MODE_CONNECTOR_eDP) | 1160 | if (connector_type == DRM_MODE_CONNECTOR_eDP) |
@@ -1191,9 +1180,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1191 | case DRM_MODE_CONNECTOR_9PinDIN: | 1180 | case DRM_MODE_CONNECTOR_9PinDIN: |
1192 | if (radeon_tv == 1) { | 1181 | if (radeon_tv == 1) { |
1193 | drm_connector_init(dev, &radeon_connector->base, &radeon_tv_connector_funcs, connector_type); | 1182 | drm_connector_init(dev, &radeon_connector->base, &radeon_tv_connector_funcs, connector_type); |
1194 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_tv_connector_helper_funcs); | 1183 | drm_connector_helper_add(&radeon_connector->base, &radeon_tv_connector_helper_funcs); |
1195 | if (ret) | ||
1196 | goto failed; | ||
1197 | radeon_connector->dac_load_detect = true; | 1184 | radeon_connector->dac_load_detect = true; |
1198 | drm_connector_attach_property(&radeon_connector->base, | 1185 | drm_connector_attach_property(&radeon_connector->base, |
1199 | rdev->mode_info.load_detect_property, | 1186 | rdev->mode_info.load_detect_property, |
@@ -1211,9 +1198,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1211 | radeon_dig_connector->igp_lane_info = igp_lane_info; | 1198 | radeon_dig_connector->igp_lane_info = igp_lane_info; |
1212 | radeon_connector->con_priv = radeon_dig_connector; | 1199 | radeon_connector->con_priv = radeon_dig_connector; |
1213 | drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type); | 1200 | drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type); |
1214 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs); | 1201 | drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs); |
1215 | if (ret) | ||
1216 | goto failed; | ||
1217 | if (i2c_bus->valid) { | 1202 | if (i2c_bus->valid) { |
1218 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "LVDS"); | 1203 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "LVDS"); |
1219 | if (!radeon_connector->ddc_bus) | 1204 | if (!radeon_connector->ddc_bus) |
@@ -1250,7 +1235,6 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1250 | struct drm_connector *connector; | 1235 | struct drm_connector *connector; |
1251 | struct radeon_connector *radeon_connector; | 1236 | struct radeon_connector *radeon_connector; |
1252 | uint32_t subpixel_order = SubPixelNone; | 1237 | uint32_t subpixel_order = SubPixelNone; |
1253 | int ret; | ||
1254 | 1238 | ||
1255 | /* fixme - tv/cv/din */ | 1239 | /* fixme - tv/cv/din */ |
1256 | if (connector_type == DRM_MODE_CONNECTOR_Unknown) | 1240 | if (connector_type == DRM_MODE_CONNECTOR_Unknown) |
@@ -1278,9 +1262,7 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1278 | switch (connector_type) { | 1262 | switch (connector_type) { |
1279 | case DRM_MODE_CONNECTOR_VGA: | 1263 | case DRM_MODE_CONNECTOR_VGA: |
1280 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); | 1264 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); |
1281 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); | 1265 | drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); |
1282 | if (ret) | ||
1283 | goto failed; | ||
1284 | if (i2c_bus->valid) { | 1266 | if (i2c_bus->valid) { |
1285 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "VGA"); | 1267 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "VGA"); |
1286 | if (!radeon_connector->ddc_bus) | 1268 | if (!radeon_connector->ddc_bus) |
@@ -1293,9 +1275,7 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1293 | break; | 1275 | break; |
1294 | case DRM_MODE_CONNECTOR_DVIA: | 1276 | case DRM_MODE_CONNECTOR_DVIA: |
1295 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); | 1277 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); |
1296 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); | 1278 | drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); |
1297 | if (ret) | ||
1298 | goto failed; | ||
1299 | if (i2c_bus->valid) { | 1279 | if (i2c_bus->valid) { |
1300 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); | 1280 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); |
1301 | if (!radeon_connector->ddc_bus) | 1281 | if (!radeon_connector->ddc_bus) |
@@ -1309,9 +1289,7 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1309 | case DRM_MODE_CONNECTOR_DVII: | 1289 | case DRM_MODE_CONNECTOR_DVII: |
1310 | case DRM_MODE_CONNECTOR_DVID: | 1290 | case DRM_MODE_CONNECTOR_DVID: |
1311 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); | 1291 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); |
1312 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); | 1292 | drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); |
1313 | if (ret) | ||
1314 | goto failed; | ||
1315 | if (i2c_bus->valid) { | 1293 | if (i2c_bus->valid) { |
1316 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); | 1294 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); |
1317 | if (!radeon_connector->ddc_bus) | 1295 | if (!radeon_connector->ddc_bus) |
@@ -1328,9 +1306,7 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1328 | case DRM_MODE_CONNECTOR_9PinDIN: | 1306 | case DRM_MODE_CONNECTOR_9PinDIN: |
1329 | if (radeon_tv == 1) { | 1307 | if (radeon_tv == 1) { |
1330 | drm_connector_init(dev, &radeon_connector->base, &radeon_tv_connector_funcs, connector_type); | 1308 | drm_connector_init(dev, &radeon_connector->base, &radeon_tv_connector_funcs, connector_type); |
1331 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_tv_connector_helper_funcs); | 1309 | drm_connector_helper_add(&radeon_connector->base, &radeon_tv_connector_helper_funcs); |
1332 | if (ret) | ||
1333 | goto failed; | ||
1334 | radeon_connector->dac_load_detect = true; | 1310 | radeon_connector->dac_load_detect = true; |
1335 | /* RS400,RC410,RS480 chipset seems to report a lot | 1311 | /* RS400,RC410,RS480 chipset seems to report a lot |
1336 | * of false positive on load detect, we haven't yet | 1312 | * of false positive on load detect, we haven't yet |
@@ -1349,9 +1325,7 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1349 | break; | 1325 | break; |
1350 | case DRM_MODE_CONNECTOR_LVDS: | 1326 | case DRM_MODE_CONNECTOR_LVDS: |
1351 | drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type); | 1327 | drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type); |
1352 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs); | 1328 | drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs); |
1353 | if (ret) | ||
1354 | goto failed; | ||
1355 | if (i2c_bus->valid) { | 1329 | if (i2c_bus->valid) { |
1356 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "LVDS"); | 1330 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "LVDS"); |
1357 | if (!radeon_connector->ddc_bus) | 1331 | if (!radeon_connector->ddc_bus) |