|
@@ -162,12 +162,14 @@ radeon_connector_analog_encoder_conflict_solve(struct drm_connector *connector,
|
|
|
{
|
|
|
struct drm_device *dev = connector->dev;
|
|
|
struct drm_connector *conflict;
|
|
|
+ struct radeon_connector *radeon_conflict;
|
|
|
int i;
|
|
|
|
|
|
list_for_each_entry(conflict, &dev->mode_config.connector_list, head) {
|
|
|
if (conflict == connector)
|
|
|
continue;
|
|
|
|
|
|
+ radeon_conflict = to_radeon_connector(conflict);
|
|
|
for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {
|
|
|
if (conflict->encoder_ids[i] == 0)
|
|
|
break;
|
|
@@ -177,6 +179,9 @@ radeon_connector_analog_encoder_conflict_solve(struct drm_connector *connector,
|
|
|
if (conflict->status != connector_status_connected)
|
|
|
continue;
|
|
|
|
|
|
+ if (radeon_conflict->use_digital)
|
|
|
+ continue;
|
|
|
+
|
|
|
if (priority == true) {
|
|
|
DRM_INFO("1: conflicting encoders switching off %s\n", drm_get_connector_name(conflict));
|
|
|
DRM_INFO("in favor of %s\n", drm_get_connector_name(connector));
|