[PATCH] drm/xe/guc: Remove explicit shutdown of SLPC

Rodrigo Vivi rodrigo.vivi at intel.com
Thu Mar 21 19:51:56 UTC 2024


On Thu, Mar 21, 2024 at 11:49:24AM -0700, Vinay Belgaumkar wrote:
> SLPC shutdown is called in reset and suspend paths. In the reset
> path, it is possible that the H2G call gets lost as GuC is in the
> process of being reset. There is no value in stopping SLPC when
> it will happen anyways.
> 
> In the suspend path, we disable communication with GuC, so there
> is no need to explicitly shutdown SLPC.
> 
> Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar at intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_guc_pc.c | 29 -----------------------------
>  1 file changed, 29 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_guc_pc.c
> index 786acaf71931..6dfae1c23946 100644
> --- a/drivers/gpu/drm/xe/xe_guc_pc.c
> +++ b/drivers/gpu/drm/xe/xe_guc_pc.c
> @@ -145,25 +145,6 @@ static int pc_action_reset(struct xe_guc_pc *pc)
>  	return ret;
>  }
>  
> -static int pc_action_shutdown(struct xe_guc_pc *pc)
> -{
> -	struct  xe_guc_ct *ct = &pc_to_guc(pc)->ct;
> -	int ret;
> -	u32 action[] = {
> -		GUC_ACTION_HOST2GUC_PC_SLPC_REQUEST,
> -		SLPC_EVENT(SLPC_EVENT_SHUTDOWN, 2),
> -		xe_bo_ggtt_addr(pc->bo),
> -		0,
> -	};
> -
> -	ret = xe_guc_ct_send(ct, action, ARRAY_SIZE(action), 0, 0);
> -	if (ret)
> -		drm_err(&pc_to_xe(pc)->drm, "GuC PC shutdown %pe",
> -			ERR_PTR(ret));
> -
> -	return ret;
> -}
> -
>  static int pc_action_query_task_state(struct xe_guc_pc *pc)
>  {
>  	struct xe_guc_ct *ct = &pc_to_guc(pc)->ct;
> @@ -889,7 +870,6 @@ int xe_guc_pc_start(struct xe_guc_pc *pc)
>  int xe_guc_pc_stop(struct xe_guc_pc *pc)
>  {
>  	struct xe_device *xe = pc_to_xe(pc);
> -	int ret;
>  
>  	if (xe->info.skip_guc_pc) {
>  		xe_gt_idle_disable_c6(pc_to_gt(pc));
> @@ -900,15 +880,6 @@ int xe_guc_pc_stop(struct xe_guc_pc *pc)
>  	pc->freq_ready = false;
>  	mutex_unlock(&pc->freq_lock);
>  
> -	ret = pc_action_shutdown(pc);
> -	if (ret)
> -		return ret;
> -
> -	if (wait_for_pc_state(pc, SLPC_GLOBAL_STATE_NOT_RUNNING)) {
> -		drm_err(&pc_to_xe(pc)->drm, "GuC PC Shutdown failed\n");
> -		return -EIO;
> -	}
> -
>  	return 0;
>  }
>  
> -- 
> 2.38.1
> 


More information about the Intel-xe mailing list