Rev 6104 | Rev 6661 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6104 | Rev 6321 | ||
---|---|---|---|
Line 1136... | Line 1136... | ||
1136 | int r; |
1136 | int r; |
Line 1137... | Line 1137... | ||
1137 | 1137 | ||
1138 | if (!radeon_connector->dac_load_detect) |
1138 | if (!radeon_connector->dac_load_detect) |
Line -... | Line 1139... | ||
- | 1139 | return ret; |
|
- | 1140 | ||
- | 1141 | r = pm_runtime_get_sync(connector->dev->dev); |
|
- | 1142 | if (r < 0) |
|
1139 | return ret; |
1143 | return connector_status_disconnected; |
1140 | 1144 | ||
1141 | encoder = radeon_best_single_encoder(connector); |
1145 | encoder = radeon_best_single_encoder(connector); |
1142 | if (!encoder) |
1146 | if (!encoder) |
1143 | ret = connector_status_disconnected; |
1147 | ret = connector_status_disconnected; |
1144 | else { |
1148 | else { |
1145 | encoder_funcs = encoder->helper_private; |
1149 | encoder_funcs = encoder->helper_private; |
1146 | ret = encoder_funcs->detect(encoder, connector); |
1150 | ret = encoder_funcs->detect(encoder, connector); |
1147 | } |
1151 | } |
1148 | if (ret == connector_status_connected) |
1152 | if (ret == connector_status_connected) |
- | 1153 | ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, false); |
|
- | 1154 | radeon_connector_update_scratch_regs(connector, ret); |
|
1149 | ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, false); |
1155 | pm_runtime_mark_last_busy(connector->dev->dev); |
1150 | radeon_connector_update_scratch_regs(connector, ret); |
1156 | pm_runtime_put_autosuspend(connector->dev->dev); |
Line 1151... | Line 1157... | ||
1151 | return ret; |
1157 | return ret; |
1152 | } |
1158 | } |
Line 1207... | Line 1213... | ||
1207 | const struct drm_encoder_helper_funcs *encoder_funcs; |
1213 | const struct drm_encoder_helper_funcs *encoder_funcs; |
1208 | int i, r; |
1214 | int i, r; |
1209 | enum drm_connector_status ret = connector_status_disconnected; |
1215 | enum drm_connector_status ret = connector_status_disconnected; |
1210 | bool dret = false, broken_edid = false; |
1216 | bool dret = false, broken_edid = false; |
Line -... | Line 1217... | ||
- | 1217 | ||
- | 1218 | r = pm_runtime_get_sync(connector->dev->dev); |
|
- | 1219 | if (r < 0) |
|
- | 1220 | return connector_status_disconnected; |
|
- | 1221 | ||
- | 1222 | if (radeon_connector->detected_hpd_without_ddc) { |
|
- | 1223 | force = true; |
|
- | 1224 | radeon_connector->detected_hpd_without_ddc = false; |
|
Line 1211... | Line 1225... | ||
1211 | 1225 | } |
|
1212 | 1226 | ||
1213 | if (!force && radeon_check_hpd_status_unchanged(connector)) { |
1227 | if (!force && radeon_check_hpd_status_unchanged(connector)) { |
1214 | ret = connector->status; |
1228 | ret = connector->status; |
Line 1371... | Line 1385... | ||
1371 | radeon_audio_detect(connector, encoder, ret); |
1385 | radeon_audio_detect(connector, encoder, ret); |
1372 | } |
1386 | } |
1373 | } |
1387 | } |
Line 1374... | Line 1388... | ||
1374 | 1388 | ||
- | 1389 | exit: |
|
- | 1390 | pm_runtime_mark_last_busy(connector->dev->dev); |
|
- | 1391 | pm_runtime_put_autosuspend(connector->dev->dev); |
|
1375 | exit: |
1392 | |
1376 | return ret; |
1393 | return ret; |
Line 1377... | Line 1394... | ||
1377 | } |
1394 | } |
1378 | 1395 | ||
Line 1619... | Line 1636... | ||
1619 | int r; |
1636 | int r; |
Line 1620... | Line 1637... | ||
1620 | 1637 | ||
1621 | if (radeon_dig_connector->is_mst) |
1638 | if (radeon_dig_connector->is_mst) |
Line -... | Line 1639... | ||
- | 1639 | return connector_status_disconnected; |
|
- | 1640 | ||
- | 1641 | r = pm_runtime_get_sync(connector->dev->dev); |
|
- | 1642 | if (r < 0) |
|
1622 | return connector_status_disconnected; |
1643 | return connector_status_disconnected; |
1623 | 1644 | ||
1624 | if (!force && radeon_check_hpd_status_unchanged(connector)) { |
1645 | if (!force && radeon_check_hpd_status_unchanged(connector)) { |
1625 | ret = connector->status; |
1646 | ret = connector->status; |
Line 1704... | Line 1725... | ||
1704 | radeon_connector_get_edid(connector); |
1725 | radeon_connector_get_edid(connector); |
1705 | radeon_audio_detect(connector, encoder, ret); |
1726 | radeon_audio_detect(connector, encoder, ret); |
1706 | } |
1727 | } |
Line 1707... | Line 1728... | ||
1707 | 1728 | ||
- | 1729 | out: |
|
- | 1730 | pm_runtime_mark_last_busy(connector->dev->dev); |
|
- | 1731 | pm_runtime_put_autosuspend(connector->dev->dev); |
|
1708 | out: |
1732 | |
1709 | return ret; |
1733 | return ret; |
Line 1710... | Line 1734... | ||
1710 | } |
1734 | } |
1711 | 1735 |