From patchwork Tue Nov 27 17:34:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 1003944 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="DMdeH5sv"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ffwll.ch header.i=@ffwll.ch header.b="aO29M1lD"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4349sG6LPfz9s3C for ; Wed, 28 Nov 2018 04:34:58 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pcHh2wfWtVs5jkaV1gB6B+kG9ggGRqYN+FTK/vnM7Bs=; b=DMdeH5svUBgrI0 XS4VfCdCUNeXJKtAQ08dvjqjhYDhOhbVFm0ExTMV6aQ6J59BOevYxbjUEYv8Ydw7gDs0SG4QBaFoi KgaXO6Qo3crxHTApTkyq3P2szMWGvjgJPIzDfc5EhkMHzvZ1NOq/aBIjT8/MnLYcW4oKrlECLFVhM gwKEywYEABnORPUTKFski6DQhzblhBoYR1JJWIrSK0RS/9KSEHhA8n9bM2fMsl7GbAaAzFdoH2qt0 8fdfsc3TMjyF4tr4pCWaOgAcbwSFh+ghTS2BIsxrVQRX3SEIYYLl0/ZuzBGJZOPWX1euI7nl664xH O3hNb9zPlmbJ/sscM3Dw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gRhG9-0002e6-4F; Tue, 27 Nov 2018 17:34:53 +0000 Received: from mail-ed1-x542.google.com ([2a00:1450:4864:20::542]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gRhG0-0002ax-9b for linux-arm-kernel@lists.infradead.org; Tue, 27 Nov 2018 17:34:50 +0000 Received: by mail-ed1-x542.google.com with SMTP id x30so19739342edx.2 for ; Tue, 27 Nov 2018 09:34:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YmWw+UoIv5YRTEXondvWC6QUAMYs51KVv2YXvZIo4ZY=; b=aO29M1lDhG8IcZBfiPy9p14GjbNKfjEdH8hl+8myoMFkZIgCVjBoiBiT3cEY+HAvhG 2KZeNjC/kDMFzd9pcEGccfbW8j6yB87KAUutCvbZjwQwEijsn5Y2B8xGx1ZWjg5mea60 6qVQeFCQrfnoAQ+8a3qAjD3Nj+MZSVhWNqUm4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YmWw+UoIv5YRTEXondvWC6QUAMYs51KVv2YXvZIo4ZY=; b=uP7K9deKnZM3KhHAkSg2rtfKVQe8pQhOw6fFquIsK+OO07ib7s3p2KlCGTGqh69U9f UyHLtayYhEh+49G9Ic7FiIpi2RRhRLBfL4DHKhfrR+ntHOOM0a+TZvS4qnewTdsw01oh qITJYJQnvPJN5qI7Q0lrsv5b1ZI7d1T/3vjjCd+Ehi+uOp3kiQ1ZbTtPbAN6GEIEpleX 6a95sawMk/W6Dys8C8uVg5BISqkDaYz86Uip/14PH6TucAbarcnSPw42f4j5RlAbLSi+ Ybt9I1ttB1GnlXRHywwqJ43TpVx4nuuBwHQWIbqFSTLRgBgaD31cGPuwR/yCHP12WRDg tmZg== X-Gm-Message-State: AA+aEWY2joXjHNTFwI1F6UHkApC/JVYxbKXpAQD+Z4JJ9NfEBWDC7XuS qcqfGy2fB1gdH8C0IvNjfy/Trg== X-Google-Smtp-Source: AFSGD/WM3R9OpvuD7k2A7kAQz5YpqTqgC6/x0hb3oJ4wrpqpU405oQsbV4bOz8ZTuH4maif79k/kBA== X-Received: by 2002:aa7:c0d0:: with SMTP id j16mr26916323edp.173.1543340072045; Tue, 27 Nov 2018 09:34:32 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:569e:0:3106:d637:d723:e855]) by smtp.gmail.com with ESMTPSA id r8sm1099929edo.11.2018.11.27.09.34.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 09:34:30 -0800 (PST) From: Daniel Vetter To: Intel Graphics Development Subject: [PATCH] drm/fbdev: Make skip_vt_switch the default Date: Tue, 27 Nov 2018 18:34:24 +0100 Message-Id: <20181127173424.301-1-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181127170952.28507-1-daniel.vetter@ffwll.ch> References: <20181127170952.28507-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181127_093444_377303_50262BF3 X-CRM114-Status: GOOD ( 17.84 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:542 listed in] [list.dnswl.org] -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Heiko_St=C3=BCbner?= , Maxime Ripard , Daniel Vetter , Joonas Lahtinen , DRI Development , Huang Rui , Daniel Vetter , linux-rockchip@lists.infradead.org, David Airlie , Ben Skeggs , nouveau@lists.freedesktop.org, Daniel Stone , =?utf-8?q?Michel_D=C3=A4nzer?= , Maarten Lankhorst , Jani Nikula , Rodrigo Vivi , Junwei Zhang , Sean Paul , linux-arm-kernel@lists.infradead.org, =?utf-8?q?Michel_D=C3=A4nzer?= , Sandy Huang , Samuel Li , Shirish S , =?utf-8?q?Noralf_Tr=C3=B8nnes?= , Alex Deucher , =?utf-8?q?Christian_K=C3=B6?= =?utf-8?q?nig?= Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org KMS drivers really should all be able to restore their display state on resume without fbcon helping out. So make this the default. Since I'm not entirely foolish, make it only a default, which drivers can still override. That way when the inevitable regression report happens I can fix things up with a one-liner plus FIXME comment that someone should fix up the suspend/resume code in that driver. But at least all new drivers won't be broken by accident as soon as you turn off fbcon because "suspend/resume worked when I tested it". v2: Keep this for radeon because of commit 18c437caa5b18a235dd65cec224eab54bebcee65 Author: Alex Deucher Date: Tue Nov 14 17:19:29 2017 -0500 Revert "drm/radeon: dont switch vt on suspend" Thanks to Michel Dänzer for pointing this one out. Signed-off-by: Daniel Vetter Cc: Michel Dänzer Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Sean Paul Cc: David Airlie Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: Ben Skeggs Cc: Sandy Huang Cc: "Heiko Stübner" Cc: Alex Deucher Cc: "Christian König" Cc: Samuel Li Cc: "Michel Dänzer" Cc: Daniel Vetter Cc: Junwei Zhang Cc: Huang Rui Cc: Shirish S Cc: Daniel Stone Cc: "Noralf Trønnes" Cc: intel-gfx@lists.freedesktop.org Cc: nouveau@lists.freedesktop.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-rockchip@lists.infradead.org Reviewed-by: Maarten Lankhorst Acked-by: Heiko Stuebner Tested-by: Heiko Stuebner Reviewed-by: Samuel Li --- drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 1 - drivers/gpu/drm/drm_fb_helper.c | 1 + drivers/gpu/drm/i915/intel_fbdev.c | 3 --- drivers/gpu/drm/nouveau/nouveau_fbcon.c | 1 - drivers/gpu/drm/radeon/radeon_fb.c | 3 +++ drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 2 -- 6 files changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c index 5cbde74b97dd..24890d8f9ee4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c @@ -234,7 +234,6 @@ static int amdgpufb_create(struct drm_fb_helper *helper, } info->par = rfbdev; - info->skip_vt_switch = true; ret = amdgpu_display_framebuffer_init(adev->ddev, &rfbdev->rfb, &mode_cmd, gobj); diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 5e9ca6f96379..41f37704e0a3 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -934,6 +934,7 @@ struct fb_info *drm_fb_helper_alloc_fbi(struct drm_fb_helper *fb_helper) } fb_helper->fbdev = info; + info->skip_vt_switch = true; return info; diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c index 2480c7d6edee..d6f8d4bbc9fc 100644 --- a/drivers/gpu/drm/i915/intel_fbdev.c +++ b/drivers/gpu/drm/i915/intel_fbdev.c @@ -257,9 +257,6 @@ static int intelfb_create(struct drm_fb_helper *helper, info->screen_base = vaddr; info->screen_size = vma->node.size; - /* This driver doesn't need a VT switch to restore the mode on resume */ - info->skip_vt_switch = true; - drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth); drm_fb_helper_fill_var(info, &ifbdev->helper, sizes->fb_width, sizes->fb_height); diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c index 032317c81bf0..67572408d9ae 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c @@ -365,7 +365,6 @@ nouveau_fbcon_create(struct drm_fb_helper *helper, ret = PTR_ERR(info); goto out_unlock; } - info->skip_vt_switch = 1; info->par = fbcon; diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c index 1179034024ae..d50bff20f7de 100644 --- a/drivers/gpu/drm/radeon/radeon_fb.c +++ b/drivers/gpu/drm/radeon/radeon_fb.c @@ -244,6 +244,9 @@ static int radeonfb_create(struct drm_fb_helper *helper, goto out; } + /* radeon resume is fragile and needs a vt switch to help it along */ + info->skip_vt_switch = false; + info->par = rfbdev; ret = radeon_framebuffer_init(rdev->ddev, &rfbdev->fb, &mode_cmd, gobj); diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c index e6650553f5d6..361604e51361 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c @@ -111,8 +111,6 @@ static int rockchip_drm_fbdev_create(struct drm_fb_helper *helper, rk_obj->kvaddr, offset, size); - fbi->skip_vt_switch = true; - return 0; out: