aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/gpu/drm/i915/display/intel_fbdev.c
diff options
context:
space:
mode:
authorAndrzej Hajda <andrzej.hajda@intel.com>2022-08-26 16:19:29 +0200
committerImre Deak <imre.deak@intel.com>2022-09-05 16:21:46 +0300
commitf1ee74afc1e303e69f4485ae677686e95a8bcbe5 (patch)
tree4f8ee5ef451919f077b78b56f54de10811585e7a /drivers/gpu/drm/i915/display/intel_fbdev.c
parentdrm/i915/fbdev: suspend HPD before fbdev unregistration (diff)
downloadwireguard-linux-f1ee74afc1e303e69f4485ae677686e95a8bcbe5.tar.xz
wireguard-linux-f1ee74afc1e303e69f4485ae677686e95a8bcbe5.zip
drm/i915/fbdev: do not create fbdev if HPD is suspended
In case of deferred FB setup core can try to create new framebuffer. Disallow it if hpd_suspended flag is set. Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com> Signed-off-by: Imre Deak <imre.deak@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220826141929.189681-4-andrzej.hajda@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_fbdev.c')
-rw-r--r--drivers/gpu/drm/i915/display/intel_fbdev.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c
index 864219615566..b3a254c34fc6 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -210,6 +210,12 @@ static int intelfb_create(struct drm_fb_helper *helper,
struct drm_i915_gem_object *obj;
int ret;
+ mutex_lock(&ifbdev->hpd_lock);
+ ret = ifbdev->hpd_suspended ? -EAGAIN : 0;
+ mutex_unlock(&ifbdev->hpd_lock);
+ if (ret)
+ return ret;
+
if (intel_fb &&
(sizes->fb_width > intel_fb->base.width ||
sizes->fb_height > intel_fb->base.height)) {