[PATCH v3 2/3] drm/xe: Handle polling only for system s/r in xe_display_pm_suspend/resume()

Murthy, Arun R arun.r.murthy at intel.com
Fri Aug 23 05:30:23 UTC 2024



> -----Original Message-----
> From: Govindapillai, Vinod <vinod.govindapillai at intel.com>
> Sent: Tuesday, August 20, 2024 10:44 PM
> To: intel-xe at lists.freedesktop.org
> Cc: Govindapillai, Vinod <vinod.govindapillai at intel.com>; Deak, Imre
> <imre.deak at intel.com>; Murthy, Arun R <arun.r.murthy at intel.com>; Vivi,
> Rodrigo <rodrigo.vivi at intel.com>; Shankar, Uma <uma.shankar at intel.com>;
> ville.syrala at intel.com
> Subject: [PATCH v3 2/3] drm/xe: Handle polling only for system s/r in
> xe_display_pm_suspend/resume()
> 
> From: Imre Deak <imre.deak at intel.com>
> 
> This is a preparation for the follow-up patch where polling will be handled
> properly for all cases during runtime suspend/resume.
> 
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai at intel.com>
> ---
>  drivers/gpu/drm/xe/display/xe_display.c | 19 +++++++------------
>  1 file changed, 7 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/xe_display.c
> b/drivers/gpu/drm/xe/display/xe_display.c
> index ad7fc5137b42..b2a0b4b5c45c 100644
> --- a/drivers/gpu/drm/xe/display/xe_display.c
> +++ b/drivers/gpu/drm/xe/display/xe_display.c
> @@ -320,15 +320,13 @@ void xe_display_pm_suspend(struct xe_device *xe,
> bool runtime)
>  	 * properly.
>  	 */
>  	intel_power_domains_disable(xe);
> +
Un-necessary change.

>  	intel_fbdev_set_suspend(&xe->drm, FBINFO_STATE_SUSPENDED, true);
> -	if (has_display(xe)) {
> +	if (!runtime && has_display(xe)) {
>  		drm_kms_helper_poll_disable(&xe->drm);

Can we get rid of this API as we don't reply on device polling and use interrupt based.

> -		if (!runtime)
> -			intel_display_driver_disable_user_access(xe);
> -	}
> -
> -	if (!runtime)
> +		intel_display_driver_disable_user_access(xe);
>  		intel_display_driver_suspend(xe);
> +	}
> 
>  	xe_display_flush_cleanup_work(xe);
> 
> @@ -387,15 +385,12 @@ void xe_display_pm_resume(struct xe_device *xe,
> bool runtime)
> 
>  	/* MST sideband requires HPD interrupts enabled */
>  	intel_dp_mst_resume(xe);
> -	if (!runtime)
> +	if (!runtime && has_display(xe)) {
>  		intel_display_driver_resume(xe);
> -
> -	if (has_display(xe)) {
>  		drm_kms_helper_poll_enable(&xe->drm);
> -		if (!runtime)
> -			intel_display_driver_enable_user_access(xe);
> +		intel_display_driver_enable_user_access(xe);
> +		intel_hpd_poll_disable(xe);
Do we need this disable here as we are enabling this only in xe_display_pm_runtime_suspend() and hence disable only in xe_display_pm_runtime_resume()

Thanks and Regards,
Arun R Murthy
-------------------

>  	}
> -	intel_hpd_poll_disable(xe);
> 
>  	intel_opregion_resume(display);
> 
> --
> 2.34.1



More information about the Intel-xe mailing list