summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrzej Hajda <andrzej.hajda@intel.com>2022-08-26 17:19:29 +0300
committerImre Deak <imre.deak@intel.com>2022-09-05 16:21:46 +0300
commitf1ee74afc1e303e69f4485ae677686e95a8bcbe5 (patch)
tree4f8ee5ef451919f077b78b56f54de10811585e7a
parentf8cc091e05305231c8f747ca253a90ff0cea60b9 (diff)
downloadlinux-f1ee74afc1e303e69f4485ae677686e95a8bcbe5.tar.xz
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
-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)) {