[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <32595080-dd79-5cf0-46e7-b82d0df8f067@linaro.org>
Date: Wed, 19 Jul 2023 15:49:22 +0200
From: Philippe Mathieu-Daudé <philmd@...aro.org>
To: Arnd Bergmann <arnd@...nel.org>, linux-fbdev@...r.kernel.org,
Thomas Zimmermann <tzimmermann@...e.de>,
Helge Deller <deller@....de>,
Javier Martinez Canillas <javierm@...hat.com>
Cc: Arnd Bergmann <arnd@...db.de>,
"David S. Miller" <davem@...emloft.net>,
"K. Y. Srinivasan" <kys@...rosoft.com>,
Ard Biesheuvel <ardb@...nel.org>,
Borislav Petkov <bp@...en8.de>, Brian Cain <bcain@...cinc.com>,
Catalin Marinas <catalin.marinas@....com>,
Christophe Leroy <christophe.leroy@...roup.eu>,
Daniel Vetter <daniel@...ll.ch>,
Dave Hansen <dave.hansen@...ux.intel.com>,
David Airlie <airlied@...il.com>,
Deepak Rawat <drawat.floss@...il.com>,
Dexuan Cui <decui@...rosoft.com>,
Dinh Nguyen <dinguyen@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Guo Ren <guoren@...nel.org>,
Haiyang Zhang <haiyangz@...rosoft.com>,
Huacai Chen <chenhuacai@...nel.org>,
Ingo Molnar <mingo@...hat.com>,
John Paul Adrian Glaubitz <glaubitz@...sik.fu-berlin.de>,
Khalid Aziz <khalid@...ehiking.org>,
Linus Walleij <linus.walleij@...aro.org>,
Matt Turner <mattst88@...il.com>,
Max Filippov <jcmvbkbc@...il.com>,
Michael Ellerman <mpe@...erman.id.au>,
Nicholas Piggin <npiggin@...il.com>,
Palmer Dabbelt <palmer@...belt.com>,
Russell King <linux@...linux.org.uk>,
Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
Thomas Gleixner <tglx@...utronix.de>,
WANG Xuerui <kernel@...0n.name>, Wei Liu <wei.liu@...nel.org>,
Will Deacon <will@...nel.org>, x86@...nel.org,
linux-alpha@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-efi@...r.kernel.org,
linux-csky@...r.kernel.org, linux-hexagon@...r.kernel.org,
linux-ia64@...r.kernel.org, loongarch@...ts.linux.dev,
linux-mips@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
linux-riscv@...ts.infradead.org, linux-sh@...r.kernel.org,
sparclinux@...r.kernel.org, linux-hyperv@...r.kernel.org,
dri-devel@...ts.freedesktop.org
Subject: Re: [PATCH v2 5/9] vgacon: remove screen_info dependency
Hi Arnd,
On 19/7/23 14:39, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@...db.de>
>
> The vga console driver is fairly self-contained, and only used by
> architectures that explicitly initialize the screen_info settings.
>
> Chance every instance that picks the vga console by setting conswitchp
> to call a function instead, and pass a reference to the screen_info
> there.
>
> Signed-off-by: Arnd Bergmann <arnd@...db.de>
> ---
> arch/alpha/kernel/setup.c | 2 +-
> arch/arm/kernel/setup.c | 2 +-
> arch/ia64/kernel/setup.c | 2 +-
> arch/mips/kernel/setup.c | 2 +-
> arch/x86/kernel/setup.c | 2 +-
> drivers/firmware/pcdp.c | 2 +-
> drivers/video/console/vgacon.c | 68 ++++++++++++++++++++--------------
> include/linux/console.h | 7 ++++
> 8 files changed, 53 insertions(+), 34 deletions(-)
> @@ -1074,13 +1077,13 @@ static int vgacon_resize(struct vc_data *c, unsigned int width,
> * Ho ho! Someone (svgatextmode, eh?) may have reprogrammed
> * the video mode! Set the new defaults then and go away.
> */
> - screen_info.orig_video_cols = width;
> - screen_info.orig_video_lines = height;
> + vga_si->orig_video_cols = width;
> + vga_si->orig_video_lines = height;
> vga_default_font_height = c->vc_cell_height;
> return 0;
> }
> - if (width % 2 || width > screen_info.orig_video_cols ||
> - height > (screen_info.orig_video_lines * vga_default_font_height)/
> + if (width % 2 || width > vga_si->orig_video_cols ||
> + height > (vga_si->orig_video_lines * vga_default_font_height)/
> c->vc_cell_height)
> return -EINVAL;
>
> @@ -1110,8 +1113,8 @@ static void vgacon_save_screen(struct vc_data *c)
> * console initialization routines.
> */
> vga_bootup_console = 1;
> - c->state.x = screen_info.orig_x;
> - c->state.y = screen_info.orig_y;
> + c->state.x = vga_si->orig_x;
> + c->state.y = vga_si->orig_y;
Not really my area, so bare with me if this is obviously not
possible :) If using DUMMY_CONSOLE, can we trigger a save_screen
/ resize? If so, we'd reach here with vga_si=NULL.
> }
>
> /* We can't copy in more than the size of the video buffer,
> @@ -1204,4 +1207,13 @@ const struct consw vga_con = {
> };
> EXPORT_SYMBOL(vga_con);
>
> +void vgacon_register_screen(struct screen_info *si)
> +{
> + if (!si || vga_si)
> + return;
> +
> + conswitchp = &vga_con;
> + vga_si = si;
> +}
Powered by blists - more mailing lists