]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/xe: Prepare display for D3Cold
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 22 May 2024 17:01:03 +0000 (13:01 -0400)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 23 May 2024 15:54:07 +0000 (11:54 -0400)
commite7b180b22022f52e3f5fca695cc75d63bddc5a1c
tree76dc8e4f4dba9d640c8e03742a77645fd7ba9ec2
parent73ba282e7faf625faf26a09861e91a9fd20ea9a8
drm/xe: Prepare display for D3Cold

Prepare power-well and DC handling for a full power
lost during D3Cold, then sanitize it upon D3->D0.
Otherwise we get a bunch of state mismatch.

Ideally we could leave DC9 enabled and wouldn't need
to move DC9->DC0 on every runtime resume, however,
the disable_DC is part of the power-well checks and
intrinsic to the dc_off power well. In the future that
can be detangled so we can have even bigger power savings.
But for now, let's focus on getting a D3Cold, which saves
much more power by itself.

v2: create new functions to avoid full-suspend-resume path,
which would result in a deadlock between xe_gem_fault and the
modeset-ioctl.

v3: Only avoid the full modeset to avoid the race, for a more
robust suspend-resume.

Cc: Anshuman Gupta <anshuman.gupta@intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Tested-by: Francois Dugast <francois.dugast@intel.com>
Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240522170105.327472-5-rodrigo.vivi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/display/xe_display.c
drivers/gpu/drm/xe/display/xe_display.h
drivers/gpu/drm/xe/xe_pm.c