diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 13 | 
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c index d8729285f731..a62cbc8199de 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c @@ -1019,8 +1019,12 @@ amdgpu_connector_dvi_detect(struct drm_connector *connector, bool force)  			 */  			if (amdgpu_connector->shared_ddc && (ret == connector_status_connected)) {  				struct drm_connector *list_connector; +				struct drm_connector_list_iter iter;  				struct amdgpu_connector *list_amdgpu_connector; -				list_for_each_entry(list_connector, &dev->mode_config.connector_list, head) { + +				drm_connector_list_iter_begin(dev, &iter); +				drm_for_each_connector_iter(list_connector, +							    &iter) {  					if (connector == list_connector)  						continue;  					list_amdgpu_connector = to_amdgpu_connector(list_connector); @@ -1037,6 +1041,7 @@ amdgpu_connector_dvi_detect(struct drm_connector *connector, bool force)  						}  					}  				} +				drm_connector_list_iter_end(&iter);  			}  		}  	} @@ -1494,6 +1499,7 @@ amdgpu_connector_add(struct amdgpu_device *adev,  {  	struct drm_device *dev = adev->ddev;  	struct drm_connector *connector; +	struct drm_connector_list_iter iter;  	struct amdgpu_connector *amdgpu_connector;  	struct amdgpu_connector_atom_dig *amdgpu_dig_connector;  	struct drm_encoder *encoder; @@ -1508,10 +1514,12 @@ amdgpu_connector_add(struct amdgpu_device *adev,  		return;  	/* see if we already added it */ -	list_for_each_entry(connector, &dev->mode_config.connector_list, head) { +	drm_connector_list_iter_begin(dev, &iter); +	drm_for_each_connector_iter(connector, &iter) {  		amdgpu_connector = to_amdgpu_connector(connector);  		if (amdgpu_connector->connector_id == connector_id) {  			amdgpu_connector->devices |= supported_device; +			drm_connector_list_iter_end(&iter);  			return;  		}  		if (amdgpu_connector->ddc_bus && i2c_bus->valid) { @@ -1526,6 +1534,7 @@ amdgpu_connector_add(struct amdgpu_device *adev,  			}  		}  	} +	drm_connector_list_iter_end(&iter);  	/* check if it's a dp bridge */  	list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {  | 
