diff options
6 files changed, 16 insertions, 21 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c index c1772f44b1d7..2523221a2519 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c @@ -4021,17 +4021,6 @@ static void gfx_v12_0_update_coarse_grain_clock_gating(struct amdgpu_device *ade  		if (def != data)  			WREG32_SOC15(GC, 0, regRLC_CGCG_CGLS_CTRL_3D, data); - -		data = RREG32_SOC15(GC, 0, regSDMA0_RLC_CGCG_CTRL); -		data &= ~SDMA0_RLC_CGCG_CTRL__CGCG_INT_ENABLE_MASK; -		WREG32_SOC15(GC, 0, regSDMA0_RLC_CGCG_CTRL, data); - -		/* Some ASICs only have one SDMA instance, not need to configure SDMA1 */ -		if (adev->sdma.num_instances > 1) { -			data = RREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL); -			data &= ~SDMA1_RLC_CGCG_CTRL__CGCG_INT_ENABLE_MASK; -			WREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL, data); -		}  	}  } diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c index 1405e8affd48..d4593374e7a1 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c @@ -2325,9 +2325,9 @@ static int unmap_queues_cpsch(struct device_queue_manager *dqm,  	 */  	mqd_mgr = dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ];  	if (mqd_mgr->check_preemption_failed(mqd_mgr, dqm->packet_mgr.priv_queue->queue->mqd)) { +		while (halt_if_hws_hang) +			schedule();  		if (reset_queues_on_hws_hang(dqm)) { -			while (halt_if_hws_hang) -				schedule();  			dqm->is_hws_hang = true;  			kfd_hws_hang(dqm);  			retval = -ETIME; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c index 9df56f8e09f9..bcddd989c7f3 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c @@ -86,9 +86,12 @@ void kfd_process_dequeue_from_device(struct kfd_process_device *pdd)  	if (pdd->already_dequeued)  		return; - +	/* The MES context flush needs to filter out the case which the +	 * KFD process is created without setting up the MES context and +	 * queue for creating a compute queue. +	 */  	dev->dqm->ops.process_termination(dev->dqm, &pdd->qpd); -	if (dev->kfd->shared_resources.enable_mes && +	if (dev->kfd->shared_resources.enable_mes && !!pdd->proc_ctx_gpu_addr &&  	    down_read_trylock(&dev->adev->reset_domain->sem)) {  		amdgpu_mes_flush_shader_debugger(dev->adev,  						 pdd->proc_ctx_gpu_addr); 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 b0e66c05d811..ac3fd81fecef 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -12326,10 +12326,14 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,  	if (edid && (sink->sink_signal == SIGNAL_TYPE_DISPLAY_PORT ||  		     sink->sink_signal == SIGNAL_TYPE_EDP)) { -		amdgpu_dm_connector->min_vfreq = connector->display_info.monitor_range.min_vfreq; -		amdgpu_dm_connector->max_vfreq = connector->display_info.monitor_range.max_vfreq; -		if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10) -			freesync_capable = true; +		if (amdgpu_dm_connector->dc_link && +		    amdgpu_dm_connector->dc_link->dpcd_caps.allow_invalid_MSA_timing_param) { +			amdgpu_dm_connector->min_vfreq = connector->display_info.monitor_range.min_vfreq; +			amdgpu_dm_connector->max_vfreq = connector->display_info.monitor_range.max_vfreq; +			if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10) +				freesync_capable = true; +		} +  		parse_amd_vsdb(amdgpu_dm_connector, edid, &vsdb_info);  		if (vsdb_info.replay_mode) { diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c index 1f974ea3b0c6..1648226586e2 100644 --- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c +++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c @@ -89,7 +89,7 @@  #define mmCLK1_CLK4_ALLOW_DS 0x16EA8  #define mmCLK1_CLK5_ALLOW_DS 0x16EB1 -#define mmCLK5_spll_field_8 0x1B04B +#define mmCLK5_spll_field_8 0x1B24B  #define mmDENTIST_DISPCLK_CNTL 0x0124  #define regDENTIST_DISPCLK_CNTL 0x0064  #define regDENTIST_DISPCLK_CNTL_BASE_IDX 1 diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c index f6b029354327..83163d7c7f00 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c @@ -1732,7 +1732,6 @@ static ssize_t aldebaran_get_gpu_metrics(struct smu_context *smu,  	gpu_metrics->average_gfx_activity = metrics.AverageGfxActivity;  	gpu_metrics->average_umc_activity = metrics.AverageUclkActivity; -	gpu_metrics->average_mm_activity = 0;  	/* Valid power data is available only from primary die */  	if (aldebaran_is_primary(smu)) { | 
