aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_connectors.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_connectors.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c50
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)