diff options
Diffstat (limited to 'drivers/gpu/drm/amd/display/amdgpu_dm')
| -rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 6 | 
2 files changed, 12 insertions, 4 deletions
| diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index b30656959fd8..62139ff35476 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -2714,7 +2714,8 @@ static int dm_resume(void *handle)  		 * this is the case when traversing through already created  		 * MST connectors, should be skipped  		 */ -		if (aconnector->mst_port) +		if (aconnector->dc_link && +		    aconnector->dc_link->type == dc_connection_mst_branch)  			continue;  		mutex_lock(&aconnector->hpd_lock); @@ -3972,7 +3973,7 @@ static u32 convert_brightness_to_user(const struct amdgpu_dm_backlight_caps *cap  				 max - min);  } -static int amdgpu_dm_backlight_set_level(struct amdgpu_display_manager *dm, +static void amdgpu_dm_backlight_set_level(struct amdgpu_display_manager *dm,  					 int bl_idx,  					 u32 user_brightness)  { @@ -4003,7 +4004,8 @@ static int amdgpu_dm_backlight_set_level(struct amdgpu_display_manager *dm,  			DRM_DEBUG("DM: Failed to update backlight on eDP[%d]\n", bl_idx);  	} -	return rc ? 0 : 1; +	if (rc) +		dm->actual_brightness[bl_idx] = user_brightness;  }  static int amdgpu_dm_backlight_update_status(struct backlight_device *bd) @@ -9947,7 +9949,7 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)  	/* restore the backlight level */  	for (i = 0; i < dm->num_of_edps; i++) {  		if (dm->backlight_dev[i] && -		    (amdgpu_dm_backlight_get_level(dm, i) != dm->brightness[i])) +		    (dm->actual_brightness[i] != dm->brightness[i]))  			amdgpu_dm_backlight_set_level(dm, i, dm->brightness[i]);  	}  #endif diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h index 6a908d736d6a..7e44b0429448 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h @@ -540,6 +540,12 @@ struct amdgpu_display_manager {  	 * cached backlight values.  	 */  	u32 brightness[AMDGPU_DM_MAX_NUM_EDP]; +	/** +	 * @actual_brightness: +	 * +	 * last successfully applied backlight values. +	 */ +	u32 actual_brightness[AMDGPU_DM_MAX_NUM_EDP];  };  enum dsc_clock_force_state { |