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 3fba50540f72..47bd98521bec 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c | |||
@@ -1032,7 +1032,6 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1032 | struct radeon_connector_atom_dig *radeon_dig_connector; | 1032 | struct radeon_connector_atom_dig *radeon_dig_connector; |
1033 | uint32_t subpixel_order = SubPixelNone; | 1033 | uint32_t subpixel_order = SubPixelNone; |
1034 | bool shared_ddc = false; | 1034 | bool shared_ddc = false; |
1035 | int ret; | ||
1036 | 1035 | ||
1037 | /* fixme - tv/cv/din */ | 1036 | /* fixme - tv/cv/din */ |
1038 | if (connector_type == DRM_MODE_CONNECTOR_Unknown) | 1037 | if (connector_type == DRM_MODE_CONNECTOR_Unknown) |
@@ -1067,9 +1066,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1067 | switch (connector_type) { | 1066 | switch (connector_type) { |
1068 | case DRM_MODE_CONNECTOR_VGA: | 1067 | case DRM_MODE_CONNECTOR_VGA: |
1069 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); | 1068 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); |
1070 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); | 1069 | drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); |
1071 | if (ret) | ||
1072 | goto failed; | ||
1073 | if (i2c_bus->valid) { | 1070 | if (i2c_bus->valid) { |
1074 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "VGA"); | 1071 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "VGA"); |
1075 | if (!radeon_connector->ddc_bus) | 1072 | if (!radeon_connector->ddc_bus) |
@@ -1082,9 +1079,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1082 | break; | 1079 | break; |
1083 | case DRM_MODE_CONNECTOR_DVIA: | 1080 | case DRM_MODE_CONNECTOR_DVIA: |
1084 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); | 1081 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); |
1085 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); | 1082 | drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); |
1086 | if (ret) | ||
1087 | goto failed; | ||
1088 | if (i2c_bus->valid) { | 1083 | if (i2c_bus->valid) { |
1089 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); | 1084 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); |
1090 | if (!radeon_connector->ddc_bus) | 1085 | if (!radeon_connector->ddc_bus) |
@@ -1104,9 +1099,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1104 | radeon_dig_connector->igp_lane_info = igp_lane_info; | 1099 | radeon_dig_connector->igp_lane_info = igp_lane_info; |
1105 | radeon_connector->con_priv = radeon_dig_connector; | 1100 | radeon_connector->con_priv = radeon_dig_connector; |
1106 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); | 1101 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); |
1107 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); | 1102 | drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); |
1108 | if (ret) | ||
1109 | goto failed; | ||
1110 | if (i2c_bus->valid) { | 1103 | if (i2c_bus->valid) { |
1111 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); | 1104 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); |
1112 | if (!radeon_connector->ddc_bus) | 1105 | if (!radeon_connector->ddc_bus) |
@@ -1132,9 +1125,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1132 | radeon_dig_connector->igp_lane_info = igp_lane_info; | 1125 | radeon_dig_connector->igp_lane_info = igp_lane_info; |
1133 | radeon_connector->con_priv = radeon_dig_connector; | 1126 | radeon_connector->con_priv = radeon_dig_connector; |
1134 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); | 1127 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); |
1135 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); | 1128 | drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); |
1136 | if (ret) | ||
1137 | goto failed; | ||
1138 | if (i2c_bus->valid) { | 1129 | if (i2c_bus->valid) { |
1139 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "HDMI"); | 1130 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "HDMI"); |
1140 | if (!radeon_connector->ddc_bus) | 1131 | if (!radeon_connector->ddc_bus) |
@@ -1154,9 +1145,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1154 | radeon_dig_connector->igp_lane_info = igp_lane_info; | 1145 | radeon_dig_connector->igp_lane_info = igp_lane_info; |
1155 | radeon_connector->con_priv = radeon_dig_connector; | 1146 | radeon_connector->con_priv = radeon_dig_connector; |
1156 | drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type); | 1147 | drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type); |
1157 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs); | 1148 | drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs); |
1158 | if (ret) | ||
1159 | goto failed; | ||
1160 | if (i2c_bus->valid) { | 1149 | if (i2c_bus->valid) { |
1161 | /* add DP i2c bus */ | 1150 | /* add DP i2c bus */ |
1162 | if (connector_type == DRM_MODE_CONNECTOR_eDP) | 1151 | if (connector_type == DRM_MODE_CONNECTOR_eDP) |
@@ -1182,9 +1171,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1182 | case DRM_MODE_CONNECTOR_9PinDIN: | 1171 | case DRM_MODE_CONNECTOR_9PinDIN: |
1183 | if (radeon_tv == 1) { | 1172 | if (radeon_tv == 1) { |
1184 | drm_connector_init(dev, &radeon_connector->base, &radeon_tv_connector_funcs, connector_type); | 1173 | drm_connector_init(dev, &radeon_connector->base, &radeon_tv_connector_funcs, connector_type); |
1185 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_tv_connector_helper_funcs); | 1174 | drm_connector_helper_add(&radeon_connector->base, &radeon_tv_connector_helper_funcs); |
1186 | if (ret) | ||
1187 | goto failed; | ||
1188 | radeon_connector->dac_load_detect = true; | 1175 | radeon_connector->dac_load_detect = true; |
1189 | drm_connector_attach_property(&radeon_connector->base, | 1176 | drm_connector_attach_property(&radeon_connector->base, |
1190 | rdev->mode_info.load_detect_property, | 1177 | rdev->mode_info.load_detect_property, |
@@ -1202,9 +1189,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1202 | radeon_dig_connector->igp_lane_info = igp_lane_info; | 1189 | radeon_dig_connector->igp_lane_info = igp_lane_info; |
1203 | radeon_connector->con_priv = radeon_dig_connector; | 1190 | radeon_connector->con_priv = radeon_dig_connector; |
1204 | drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type); | 1191 | drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type); |
1205 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs); | 1192 | drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs); |
1206 | if (ret) | ||
1207 | goto failed; | ||
1208 | if (i2c_bus->valid) { | 1193 | if (i2c_bus->valid) { |
1209 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "LVDS"); | 1194 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "LVDS"); |
1210 | if (!radeon_connector->ddc_bus) | 1195 | if (!radeon_connector->ddc_bus) |
@@ -1241,7 +1226,6 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1241 | struct drm_connector *connector; | 1226 | struct drm_connector *connector; |
1242 | struct radeon_connector *radeon_connector; | 1227 | struct radeon_connector *radeon_connector; |
1243 | uint32_t subpixel_order = SubPixelNone; | 1228 | uint32_t subpixel_order = SubPixelNone; |
1244 | int ret; | ||
1245 | 1229 | ||
1246 | /* fixme - tv/cv/din */ | 1230 | /* fixme - tv/cv/din */ |
1247 | if (connector_type == DRM_MODE_CONNECTOR_Unknown) | 1231 | if (connector_type == DRM_MODE_CONNECTOR_Unknown) |
@@ -1269,9 +1253,7 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1269 | switch (connector_type) { | 1253 | switch (connector_type) { |
1270 | case DRM_MODE_CONNECTOR_VGA: | 1254 | case DRM_MODE_CONNECTOR_VGA: |
1271 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); | 1255 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); |
1272 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); | 1256 | drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); |
1273 | if (ret) | ||
1274 | goto failed; | ||
1275 | if (i2c_bus->valid) { | 1257 | if (i2c_bus->valid) { |
1276 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "VGA"); | 1258 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "VGA"); |
1277 | if (!radeon_connector->ddc_bus) | 1259 | if (!radeon_connector->ddc_bus) |
@@ -1284,9 +1266,7 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1284 | break; | 1266 | break; |
1285 | case DRM_MODE_CONNECTOR_DVIA: | 1267 | case DRM_MODE_CONNECTOR_DVIA: |
1286 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); | 1268 | drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); |
1287 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); | 1269 | drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs); |
1288 | if (ret) | ||
1289 | goto failed; | ||
1290 | if (i2c_bus->valid) { | 1270 | if (i2c_bus->valid) { |
1291 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); | 1271 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); |
1292 | if (!radeon_connector->ddc_bus) | 1272 | if (!radeon_connector->ddc_bus) |
@@ -1300,9 +1280,7 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1300 | case DRM_MODE_CONNECTOR_DVII: | 1280 | case DRM_MODE_CONNECTOR_DVII: |
1301 | case DRM_MODE_CONNECTOR_DVID: | 1281 | case DRM_MODE_CONNECTOR_DVID: |
1302 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); | 1282 | drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type); |
1303 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); | 1283 | drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs); |
1304 | if (ret) | ||
1305 | goto failed; | ||
1306 | if (i2c_bus->valid) { | 1284 | if (i2c_bus->valid) { |
1307 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); | 1285 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); |
1308 | if (!radeon_connector->ddc_bus) | 1286 | if (!radeon_connector->ddc_bus) |
@@ -1319,9 +1297,7 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1319 | case DRM_MODE_CONNECTOR_9PinDIN: | 1297 | case DRM_MODE_CONNECTOR_9PinDIN: |
1320 | if (radeon_tv == 1) { | 1298 | if (radeon_tv == 1) { |
1321 | drm_connector_init(dev, &radeon_connector->base, &radeon_tv_connector_funcs, connector_type); | 1299 | drm_connector_init(dev, &radeon_connector->base, &radeon_tv_connector_funcs, connector_type); |
1322 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_tv_connector_helper_funcs); | 1300 | drm_connector_helper_add(&radeon_connector->base, &radeon_tv_connector_helper_funcs); |
1323 | if (ret) | ||
1324 | goto failed; | ||
1325 | radeon_connector->dac_load_detect = true; | 1301 | radeon_connector->dac_load_detect = true; |
1326 | /* RS400,RC410,RS480 chipset seems to report a lot | 1302 | /* RS400,RC410,RS480 chipset seems to report a lot |
1327 | * of false positive on load detect, we haven't yet | 1303 | * of false positive on load detect, we haven't yet |
@@ -1340,9 +1316,7 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1340 | break; | 1316 | break; |
1341 | case DRM_MODE_CONNECTOR_LVDS: | 1317 | case DRM_MODE_CONNECTOR_LVDS: |
1342 | drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type); | 1318 | drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type); |
1343 | ret = drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs); | 1319 | drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs); |
1344 | if (ret) | ||
1345 | goto failed; | ||
1346 | if (i2c_bus->valid) { | 1320 | if (i2c_bus->valid) { |
1347 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "LVDS"); | 1321 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "LVDS"); |
1348 | if (!radeon_connector->ddc_bus) | 1322 | if (!radeon_connector->ddc_bus) |