[PATCH] drm/amdgpu: Use cached partition mode, if valid

Lazar, Lijo lijo.lazar at amd.com
Tue Jul 8 05:01:20 UTC 2025


<Ping>

On 7/5/2025 9:54 AM, Lijo Lazar wrote:
> For current partition mode queries, return the mode cached in partition
> manager whenever it's valid.
> 
> Signed-off-by: Lijo Lazar <lijo.lazar at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c | 20 ++++++++++++++++----
>  1 file changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c
> index c8fcafeb6864..c417f8689220 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c
> @@ -218,15 +218,27 @@ int amdgpu_xcp_restore_partition_mode(struct amdgpu_xcp_mgr *xcp_mgr)
>  	return __amdgpu_xcp_switch_partition_mode(xcp_mgr, xcp_mgr->mode);
>  }
>  
> -int amdgpu_xcp_query_partition_mode(struct amdgpu_xcp_mgr *xcp_mgr, u32 flags)
> +static bool __amdgpu_xcp_is_cached_mode_valid(struct amdgpu_xcp_mgr *xcp_mgr)
>  {
> -	int mode;
> +	if (!xcp_mgr->funcs || !xcp_mgr->funcs->query_partition_mode)
> +		return true;
>  
>  	if (!amdgpu_sriov_vf(xcp_mgr->adev) &&
>  	    xcp_mgr->mode == AMDGPU_XCP_MODE_NONE)
> -		return xcp_mgr->mode;
> +		return true;
>  
> -	if (!xcp_mgr->funcs || !xcp_mgr->funcs->query_partition_mode)
> +	if (xcp_mgr->mode != AMDGPU_XCP_MODE_NONE &&
> +	    xcp_mgr->mode != AMDGPU_XCP_MODE_TRANS)
> +		return true;
> +
> +	return false;
> +}
> +
> +int amdgpu_xcp_query_partition_mode(struct amdgpu_xcp_mgr *xcp_mgr, u32 flags)
> +{
> +	int mode;
> +
> +	if (__amdgpu_xcp_is_cached_mode_valid(xcp_mgr))
>  		return xcp_mgr->mode;
>  
>  	if (!(flags & AMDGPU_XCP_FL_LOCKED))



More information about the amd-gfx mailing list