From: Jiri Slaby <jirislaby@kernel.org>
To: Zsolt Kajtar <soci@c64.rulez.org>,
linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org,
gregkh@linuxfoundation.org
Subject: Re: [PATCH 1/3] tty/vt: 8th bit location in vc_uniscr routines
Date: Sun, 31 Aug 2025 08:14:54 +0200 [thread overview]
Message-ID: <339029f2-1f54-40ea-8880-e68fbd351755@kernel.org> (raw)
In-Reply-To: <20250829194908.24852-2-soci@c64.rulez.org>
On 29. 08. 25, 21:49, Zsolt Kajtar wrote:
> Both vc_uniscr_check and vc_uniscr_copy_line assume that the 8th bit of
> glyph is also the 8th bit in the screen buffer. However this is only the
> case for fbcon at the moment. Vgacon has it on the 11th and so the
> conversion won't work correctly in that case. The patch corrects this
> oversight.
>
> Signed-off-by: Zsolt Kajtar <soci@c64.rulez.org>
> ---
> drivers/tty/vt/vt.c | 16 +++++++++++-----
> 1 file changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
> index 869261141..c6c931047 100644
> --- a/drivers/tty/vt/vt.c
> +++ b/drivers/tty/vt/vt.c
> @@ -493,7 +493,7 @@ int vc_uniscr_check(struct vc_data *vc)
> {
> u32 **uni_lines;
> unsigned short *p;
> - int x, y, mask;
> + int x, y;
>
> WARN_CONSOLE_UNLOCKED();
>
> @@ -514,11 +514,14 @@ int vc_uniscr_check(struct vc_data *vc)
> * unicode content will be available after a complete screen refresh.
> */
> p = (unsigned short *)vc->vc_origin;
> - mask = vc->vc_hi_font_mask | 0xff;
> for (y = 0; y < vc->vc_rows; y++) {
> u32 *line = uni_lines[y];
> for (x = 0; x < vc->vc_cols; x++) {
> - u16 glyph = scr_readw(p++) & mask;
> + u16 w = scr_readw(p++);
> + u16 glyph = w & 0xff;
> +
> + if (w & vc->vc_hi_font_mask)
> + glyph |= 0x100;
This makes sense, but introduce a helper, please.
> line[x] = inverse_translate(vc, glyph, true);
> }
> }
> @@ -561,10 +564,13 @@ void vc_uniscr_copy_line(const struct vc_data *vc, void *dest, bool viewed,
> * buffer of its own.
> */
> u16 *p = (u16 *)pos;
> - int mask = vc->vc_hi_font_mask | 0xff;
> u32 *uni_buf = dest;
> while (nr--) {
> - u16 glyph = scr_readw(p++) & mask;
> + u16 w = scr_readw(p++);
> + u16 glyph = w & 0xff;
> +
> + if (w & vc->vc_hi_font_mask)
> + glyph |= 0x100;
And use here as well.
> *uni_buf++ = inverse_translate(vc, glyph, true);
> }
> }
--
js
suse labs
next prev parent reply other threads:[~2025-08-31 6:14 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-29 19:49 [PATCH 0/3] tty/vt: fix various 512 glyph font issues Zsolt Kajtar
2025-08-29 19:49 ` [PATCH 1/3] tty/vt: 8th bit location in vc_uniscr routines Zsolt Kajtar
2025-08-31 6:14 ` Jiri Slaby [this message]
2025-08-29 19:49 ` [PATCH 2/3] tty/vt: Prevent 8th bit corruption with soft cursor Zsolt Kajtar
2025-08-31 6:25 ` Jiri Slaby
2025-08-29 19:49 ` [PATCH 3/3] tty/vt: Fix unreadable kernel messages on vgacon Zsolt Kajtar
2025-08-31 6:28 ` Jiri Slaby
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=339029f2-1f54-40ea-8880-e68fbd351755@kernel.org \
--to=jirislaby@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=soci@c64.rulez.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.