Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp357077pxb; Wed, 3 Nov 2021 05:29:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz55vknlldyFKm7jTBUamZD02jj/LJdRDZZA3pLIM0S8TKUphZe5AEq9yT1Tr3Dsvmyu8gM X-Received: by 2002:a5d:93d2:: with SMTP id j18mr31424888ioo.86.1635942591961; Wed, 03 Nov 2021 05:29:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635942591; cv=none; d=google.com; s=arc-20160816; b=qA9l7sajPYPWZVWQL3Lrulg3wjeDNtn+02xPyw1vwFeAwxbth4lekyvL2zVEYKcmjz +1qkDADqmqRyZg23+cuCKRJ5ynY1wMziwTOk1e461JcQd2iqIf5HgUsGymDHvnm3II3p OUzFThkI9O9Sxxe/bpob9HvG0esAxLdLb9xUhOFTK8k2blTGJVeiGqBo6Z7jRe9nyCrg KpBWYGUbQVPOVVJJw0+sKn6y+TKlaTVlxfmgdTLxJFspQ8+vg8mgPsh/AZtOFsguawo1 HWn41Cp+lew0WuClXX3gxQ9qKrp2j82iy6sKli2WLgK1o8wiBw2bCcjCGZAH7AWpQg9r nl1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=IGtf0E3LGL0ddyBRq7P24Qzj/B5Mx88heI+2/E3qIo0=; b=ZzG2JdUySGSGvGlDTPKiR2Ouua63uGDx+fGbxx97B+uR200pHOhFviR/Vs/wGISQ8G H0D+eAk6L8KcewhlU+EamvEERWr5qv3cvge6YbLMyO2hq+33YFxAJaRE9rvzSpYr/GCK oLsupeG4X1ZVNFjomsSB9v4dyTesto1d1RTuWZMqiUJ8FmNiMZfVfPU7K/pUwM9DBpxk l9zc/cP9IjdeOncJLOvrgdJ9nZde4Bzw+BXUz+nQwnGyFcJzLfhC/PqkKYmDklI2F09t KhB9NTDRN9zmC5/b+8h/tOj5kySIAEvrcwigvlR5gblkcAMXQOOlmVkYD8EtP4WWG+LE OaSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=KvRMwCGF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u15si3946965jak.129.2021.11.03.05.29.39; Wed, 03 Nov 2021 05:29:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=KvRMwCGF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232045AbhKCMbM (ORCPT + 99 others); Wed, 3 Nov 2021 08:31:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:49612 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231970AbhKCMbK (ORCPT ); Wed, 3 Nov 2021 08:31:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1635942513; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IGtf0E3LGL0ddyBRq7P24Qzj/B5Mx88heI+2/E3qIo0=; b=KvRMwCGF8uPwd5fnvPFjlClNhOEmPiKVrUQQv9JWvSlgwEtgi8j9qOAK6HP+r3YeqgMOoA rV7AD9KH0vinJIfWYqxQKxc5PlR7hnOYbQb2PEU8U4vs/zJqMaWZplfUKT5OSEIgamZW/p FOuVG7BWSPTQqRV4I4m0rP72ZAwi83M= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-41-XBo8jlqyP5KOjvFw2HUB4w-1; Wed, 03 Nov 2021 08:28:33 -0400 X-MC-Unique: XBo8jlqyP5KOjvFw2HUB4w-1 Received: by mail-wm1-f72.google.com with SMTP id v18-20020a7bcb52000000b00322fea1d5b7so1000908wmj.9 for ; Wed, 03 Nov 2021 05:28:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IGtf0E3LGL0ddyBRq7P24Qzj/B5Mx88heI+2/E3qIo0=; b=1EGj685cDMSFs6HI5ADPLsFgjqVBl118xtUX6rAHxhf6cJThmzNf414HoalYu6pN/I D0Gq7spI+h8IvWy4EQxdFJh+wk9OUrIMUTtDLmmWMw4A+1exEydRj0MTu7jZCEjWQtMJ Tf90y4YOjtewfOPa9s68WrfjsvoV1pJH0gdFR3fcj6e5nRbN668UjFBC6ZRNlhmOuBaR A8E1l8PLmidAb4WLKjtFDL+xpIFjO2mZj1nzQ9U0GTWnOaZ+yjyrzVTNp1QLF/3Ugasq tsyuueSXbHRK/+5xBFYNNXh3oL5EIAnsxbiGimXzC7/dZe0hx7C/8H0FNDsXnhUEP58a 2D4w== X-Gm-Message-State: AOAM532nh/7jvyP0CcRM28TJI0nvtUoIAaLJMsx/PfKuEwnPnQ8w3naT xPbdSbOWmyMWcMB5BFA8Ik9kItcQYOTLDaWMrT6wk+W7xxuhDzyjgB8Te6qZTOjOhUuCimF2z/4 vv1f7U84Jvzoir+fMMpIU33aFv8mwVroUwZ7TIoA1JlYAo8mx74phM7bq7Uv76MptnBpPRlMy2f w= X-Received: by 2002:a05:600c:5125:: with SMTP id o37mr14376538wms.81.1635942511355; Wed, 03 Nov 2021 05:28:31 -0700 (PDT) X-Received: by 2002:a05:600c:5125:: with SMTP id o37mr14376449wms.81.1635942510920; Wed, 03 Nov 2021 05:28:30 -0700 (PDT) Received: from minerva.home ([92.176.231.106]) by smtp.gmail.com with ESMTPSA id w7sm1868400wru.51.2021.11.03.05.28.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Nov 2021 05:28:30 -0700 (PDT) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: Peter Robinson , =?UTF-8?q?Michel=20D=C3=A4nzer?= , Thomas Zimmermann , Pekka Paalanen , Daniel Vetter , Neal Gompa , Javier Martinez Canillas , Alex Deucher , Ben Skeggs , Chia-I Wu , =?UTF-8?q?Christian=20K=C3=B6nig?= , Daniel Vetter , Dave Airlie , David Airlie , Gerd Hoffmann , Greg Kroah-Hartman , Gurchetan Singh , Hans de Goede , Jani Nikula , Joonas Lahtinen , Maarten Lankhorst , Maxime Ripard , "Pan, Xinhui" , Rodrigo Vivi , VMware Graphics , Zack Rusin , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-fbdev@vger.kernel.org, nouveau@lists.freedesktop.org, spice-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org Subject: [RESEND PATCH 2/5] drm: Move nomodeset kernel parameter handler to the DRM subsystem Date: Wed, 3 Nov 2021 13:28:06 +0100 Message-Id: <20211103122809.1040754-3-javierm@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211103122809.1040754-1-javierm@redhat.com> References: <20211103122809.1040754-1-javierm@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The "nomodeset" kernel cmdline parameter is handled by the vgacon driver but the exported vgacon_text_force() symbol is only used by DRM drivers. It makes much more sense for the parameter logic to be in the subsystem of the drivers that are making use of it. Let's move that to DRM. Suggested-by: Daniel Vetter Signed-off-by: Javier Martinez Canillas --- drivers/gpu/drm/Makefile | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 3 +-- drivers/gpu/drm/ast/ast_drv.c | 1 - drivers/gpu/drm/drm_nomodeset.c | 26 +++++++++++++++++++++++++ drivers/gpu/drm/i915/i915_module.c | 2 -- drivers/gpu/drm/mgag200/mgag200_drv.c | 1 - drivers/gpu/drm/nouveau/nouveau_drm.c | 1 - drivers/gpu/drm/qxl/qxl_drv.c | 1 - drivers/gpu/drm/radeon/radeon_drv.c | 1 - drivers/gpu/drm/tiny/bochs.c | 1 - drivers/gpu/drm/tiny/cirrus.c | 1 - drivers/gpu/drm/vboxvideo/vbox_drv.c | 1 - drivers/gpu/drm/virtio/virtgpu_drv.c | 1 - drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 1 - drivers/video/console/vgacon.c | 21 -------------------- include/drm/drm_mode_config.h | 6 ++++++ include/linux/console.h | 6 ------ 17 files changed, 35 insertions(+), 41 deletions(-) create mode 100644 drivers/gpu/drm/drm_nomodeset.c diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index 1c41156deb5f..0e2d60ea93ca 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -33,6 +33,8 @@ drm-$(CONFIG_DRM_PRIVACY_SCREEN) += drm_privacy_screen.o drm_privacy_screen_x86. obj-$(CONFIG_DRM_DP_AUX_BUS) += drm_dp_aux_bus.o +obj-y += drm_nomodeset.o + drm_cma_helper-y := drm_gem_cma_helper.o obj-$(CONFIG_DRM_GEM_CMA_HELPER) += drm_cma_helper.o diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index c718fb5f3f8a..2680a2aaa877 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -31,7 +31,6 @@ #include "amdgpu_drv.h" #include -#include #include #include #include @@ -2515,7 +2514,7 @@ static int __init amdgpu_init(void) int r; if (vgacon_text_force()) { - DRM_ERROR("VGACON disables amdgpu kernel modesetting.\n"); + DRM_ERROR("amdgpu kernel modesetting disabled.\n"); return -EINVAL; } diff --git a/drivers/gpu/drm/ast/ast_drv.c b/drivers/gpu/drm/ast/ast_drv.c index 86d5cd7b6318..048be607b182 100644 --- a/drivers/gpu/drm/ast/ast_drv.c +++ b/drivers/gpu/drm/ast/ast_drv.c @@ -26,7 +26,6 @@ * Authors: Dave Airlie */ -#include #include #include diff --git a/drivers/gpu/drm/drm_nomodeset.c b/drivers/gpu/drm/drm_nomodeset.c new file mode 100644 index 000000000000..1ac9a8d5a8fe --- /dev/null +++ b/drivers/gpu/drm/drm_nomodeset.c @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include + +static bool vgacon_text_mode_force; + +bool vgacon_text_force(void) +{ + return vgacon_text_mode_force; +} +EXPORT_SYMBOL(vgacon_text_force); + +static int __init text_mode(char *str) +{ + vgacon_text_mode_force = true; + + pr_warn("You have booted with nomodeset. This means your GPU drivers are DISABLED\n"); + pr_warn("Any video related functionality will be severely degraded, and you may not even be able to suspend the system properly\n"); + pr_warn("Unless you actually understand what nomodeset does, you should reboot without enabling it\n"); + + return 1; +} + +/* force text mode - used by kernel modesetting */ +__setup("nomodeset", text_mode); diff --git a/drivers/gpu/drm/i915/i915_module.c b/drivers/gpu/drm/i915/i915_module.c index c7507266aa83..14a59226519d 100644 --- a/drivers/gpu/drm/i915/i915_module.c +++ b/drivers/gpu/drm/i915/i915_module.c @@ -4,8 +4,6 @@ * Copyright © 2021 Intel Corporation */ -#include - #include "gem/i915_gem_context.h" #include "gem/i915_gem_object.h" #include "i915_active.h" diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.c b/drivers/gpu/drm/mgag200/mgag200_drv.c index 6b9243713b3c..685e766db6a4 100644 --- a/drivers/gpu/drm/mgag200/mgag200_drv.c +++ b/drivers/gpu/drm/mgag200/mgag200_drv.c @@ -6,7 +6,6 @@ * Dave Airlie */ -#include #include #include #include diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index 1f828c9f691c..029997f50d1a 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -22,7 +22,6 @@ * Authors: Ben Skeggs */ -#include #include #include #include diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c index fc47b0deb021..3cd6bd9f059d 100644 --- a/drivers/gpu/drm/qxl/qxl_drv.c +++ b/drivers/gpu/drm/qxl/qxl_drv.c @@ -29,7 +29,6 @@ #include "qxl_drv.h" -#include #include #include #include diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index b74cebca1f89..9b606c1b11ec 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -31,7 +31,6 @@ #include -#include #include #include #include diff --git a/drivers/gpu/drm/tiny/bochs.c b/drivers/gpu/drm/tiny/bochs.c index 2ce3bd903b70..04333f78be55 100644 --- a/drivers/gpu/drm/tiny/bochs.c +++ b/drivers/gpu/drm/tiny/bochs.c @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-or-later -#include #include #include diff --git a/drivers/gpu/drm/tiny/cirrus.c b/drivers/gpu/drm/tiny/cirrus.c index 4611ec408506..8bd674f0d682 100644 --- a/drivers/gpu/drm/tiny/cirrus.c +++ b/drivers/gpu/drm/tiny/cirrus.c @@ -16,7 +16,6 @@ * Copyright 1999-2001 Jeff Garzik */ -#include #include #include #include diff --git a/drivers/gpu/drm/vboxvideo/vbox_drv.c b/drivers/gpu/drm/vboxvideo/vbox_drv.c index a6c81af37345..e6d983121d0b 100644 --- a/drivers/gpu/drm/vboxvideo/vbox_drv.c +++ b/drivers/gpu/drm/vboxvideo/vbox_drv.c @@ -7,7 +7,6 @@ * Michael Thayer */ -#include #include #include #include diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.c b/drivers/gpu/drm/virtio/virtgpu_drv.c index 749db18dcfa2..cd4c170236f1 100644 --- a/drivers/gpu/drm/virtio/virtgpu_drv.c +++ b/drivers/gpu/drm/virtio/virtgpu_drv.c @@ -27,7 +27,6 @@ */ #include -#include #include #include #include diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index ab9a1750e1df..fcc4b5a7f639 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -25,7 +25,6 @@ * **************************************************************************/ -#include #include #include #include diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c index ef9c57ce0906..d4320b147956 100644 --- a/drivers/video/console/vgacon.c +++ b/drivers/video/console/vgacon.c @@ -97,30 +97,9 @@ static int vga_video_font_height; static int vga_scan_lines __read_mostly; static unsigned int vga_rolled_over; /* last vc_origin offset before wrap */ -static bool vgacon_text_mode_force; static bool vga_hardscroll_enabled; static bool vga_hardscroll_user_enable = true; -bool vgacon_text_force(void) -{ - return vgacon_text_mode_force; -} -EXPORT_SYMBOL(vgacon_text_force); - -static int __init text_mode(char *str) -{ - vgacon_text_mode_force = true; - - pr_warn("You have booted with nomodeset. This means your GPU drivers are DISABLED\n"); - pr_warn("Any video related functionality will be severely degraded, and you may not even be able to suspend the system properly\n"); - pr_warn("Unless you actually understand what nomodeset does, you should reboot without enabling it\n"); - - return 1; -} - -/* force text mode - used by kernel modesetting */ -__setup("nomodeset", text_mode); - static int __init no_scroll(char *str) { /* diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h index 48b7de80daf5..e1d2042a7b77 100644 --- a/include/drm/drm_mode_config.h +++ b/include/drm/drm_mode_config.h @@ -969,4 +969,10 @@ static inline int drm_mode_config_init(struct drm_device *dev) void drm_mode_config_reset(struct drm_device *dev); void drm_mode_config_cleanup(struct drm_device *dev); +#ifdef CONFIG_VGA_CONSOLE +extern bool vgacon_text_force(void); +#else +static inline bool vgacon_text_force(void) { return false; } +#endif + #endif diff --git a/include/linux/console.h b/include/linux/console.h index 20874db50bc8..d4dd8384898b 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -217,12 +217,6 @@ extern atomic_t ignore_console_lock_warning; #define VESA_HSYNC_SUSPEND 2 #define VESA_POWERDOWN 3 -#ifdef CONFIG_VGA_CONSOLE -extern bool vgacon_text_force(void); -#else -static inline bool vgacon_text_force(void) { return false; } -#endif - extern void console_init(void); /* For deferred console takeover */ -- 2.33.1