linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alexey Gladkov <legion@kernel.org>
To: Jiri Slaby <jirislaby@kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Re: [RFC PATCH v1 3/5] sticon: Allow to get max font width and height
Date: Fri, 16 Feb 2024 14:03:29 +0100	[thread overview]
Message-ID: <Zc9dIRLbna585cGM@example.org> (raw)
In-Reply-To: <7c91e5e0-a6eb-4d53-89ed-efde04f57c7c@kernel.org>

On Fri, Feb 16, 2024 at 08:10:15AM +0100, Jiri Slaby wrote:
> On 15. 02. 24, 16:37, Alexey Gladkov wrote:
> > Signed-off-by: Alexey Gladkov <legion@kernel.org>
> > ---
> >   drivers/video/console/sticon.c | 21 +++++++++++++++++++--
> >   1 file changed, 19 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/video/console/sticon.c b/drivers/video/console/sticon.c
> > index 992a4fa431aa..63368b3ff9c5 100644
> > --- a/drivers/video/console/sticon.c
> > +++ b/drivers/video/console/sticon.c
> > @@ -56,6 +56,11 @@
> >   #define BLANK 0
> >   static int vga_is_gfx;
> >   
> > +#define STICON_MIN_FONT_WIDTH 6
> > +#define STICON_MIN_FONT_HEIGHT 6
> > +#define STICON_MAX_FONT_WIDTH 32
> > +#define STICON_MAX_FONT_HEIGHT 32
> > +
> >   #define STI_DEF_FONT	sticon_sti->font
> >   
> >   /* borrowed from fbcon.c */
> > @@ -180,8 +185,10 @@ static int sticon_set_font(struct vc_data *vc, struct console_font *op,
> >   	struct sti_cooked_font *cooked_font;
> >   	unsigned char *data = op->data, *p;
> >   
> > -	if ((w < 6) || (h < 6) || (w > 32) || (h > 32) || (vpitch != 32)
> > -	    || (op->charcount != 256 && op->charcount != 512))
> > +	if ((w < STICON_MIN_FONT_WIDTH) || (h < STICON_MIN_FONT_HEIGHT) ||
> > +	    (w > STICON_MAX_FONT_WIDTH) || (h > STICON_MAX_FONT_HEIGHT) ||
> 
> Will
> !in_range(w, STICON_MIN_FONT_WIDTH, STICON_MAX_FONT_WIDTH)
> look better?

Sure! Much better. I made this patch to illustrate what I mean. I will
finish it if you find the idea itself acceptable.

> > +	    (vpitch != 32) ||
> > +	    (op->charcount != 256 && op->charcount != 512))
> >   		return -EINVAL;
> >   	pitch = ALIGN(w, 8) / 8;
> >   	bpc = pitch * h;
> > @@ -273,6 +280,15 @@ static int sticon_font_set(struct vc_data *vc, struct console_font *font,
> >   	return sticon_set_font(vc, font, vpitch);
> >   }
> >   
> > +static int sticon_font_info(struct vc_data *vc, struct console_font *font)
> > +{
> > +	font->width = STICON_MAX_FONT_WIDTH;
> > +	font->height = STICON_MAX_FONT_HEIGHT;
> > +	font->charcount = 512;
> 
> Why not to have a macro for this constant?

Because I don’t know how to correctly transfer this limit to userspace.
I mean, we have the code:

if (op->charcount != 256 && op->charcount != 512)
	return -EINVAL;

So 512 is not exactly the maximum number of glyphs. And such checks in the
code begin to look very strange.

if (op->charcount != 256 && op->charcount != STICON_MAX_FONT_GLYPHS)
	return -EINVAL;

So I decided not to give the value 512 a name.

In fact, I think this should be passed to userspace as a binary flag.
Something like this:

struct console_font_info {
	unsigned int min_width, min_height;
	unsigned int max_width, max_height;
	unsigned int fnt_flags;
}

enum console_font_flags {
	FNT_FLAG_LOW_SIZE  = 1U << 0, // 256
	FNT_FLAG_HIGH_SIZE = 1U << 1, // 512
};

> > +
> > +	return 0;
> > +}
> > +
> >   static void sticon_init(struct vc_data *c, int init)
> >   {
> >       struct sti_struct *sti = sticon_sti;
> > @@ -371,6 +387,7 @@ static const struct consw sti_con = {
> >   	.con_scroll		= sticon_scroll,
> >   	.con_switch		= sticon_switch,
> >   	.con_blank		= sticon_blank,
> > +	.con_font_info		= sticon_font_info,
> >   	.con_font_set		= sticon_font_set,
> >   	.con_font_default	= sticon_font_default,
> >   	.con_build_attr		= sticon_build_attr,
> 
> -- 
> js
> suse labs
> 

-- 
Rgrds, legion


  reply	other threads:[~2024-02-16 13:03 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-15 15:37 [RFC PATCH v1 0/5] VT: Add ability to get font requirements Alexey Gladkov
2024-02-15 15:37 ` [RFC PATCH v1 1/5] VT: Add KD_FONT_OP_GET_INFO operation Alexey Gladkov
2024-02-15 15:37 ` [RFC PATCH v1 2/5] newport_con: Allow to get max font width and height Alexey Gladkov
2024-02-15 15:37 ` [RFC PATCH v1 3/5] sticon: " Alexey Gladkov
2024-02-16  7:10   ` Jiri Slaby
2024-02-16 13:03     ` Alexey Gladkov [this message]
2024-02-15 15:37 ` [RFC PATCH v1 4/5] vgacon: " Alexey Gladkov
2024-02-15 15:37 ` [RFC PATCH v1 5/5] fbcon: " Alexey Gladkov
2024-02-16  7:21 ` [RFC PATCH v1 0/5] VT: Add ability to get font requirements Jiri Slaby
2024-02-16 13:26   ` Alexey Gladkov
2024-02-16 13:45     ` Samuel Thibault
2024-02-16 14:40       ` Alexey Gladkov
2024-02-21  7:04     ` Jiri Slaby
2024-02-26 15:21 ` [RFC PATCH v2 " Alexey Gladkov
2024-02-26 15:21   ` [RFC PATCH v2 1/5] VT: Add KD_FONT_OP_GET_INFO operation Alexey Gladkov
2024-02-26 15:21   ` [RFC PATCH v2 2/5] newport_con: Allow to get max font width and height Alexey Gladkov
2024-02-26 15:21   ` [RFC PATCH v2 3/5] sticon: " Alexey Gladkov
2024-02-27  5:52     ` Greg Kroah-Hartman
2024-02-27 14:06       ` Alexey Gladkov
2024-02-26 15:21   ` [RFC PATCH v2 4/5] vgacon: " Alexey Gladkov
2024-02-26 15:21   ` [RFC PATCH v2 5/5] fbcon: " Alexey Gladkov
2024-03-12 14:23   ` [PATCH v3 0/2] VT: Add ability to get font requirements legion
2024-03-12 14:23     ` [PATCH v3 1/2] VT: Add KDFONTINFO ioctl legion
2024-03-15  9:15       ` Helge Deller
2024-03-12 14:23     ` [PATCH v3 2/2] VT: Allow to get max font width and height legion
2024-03-13 17:40       ` Oleg Bulatov
2024-04-02 11:09         ` Jiri Slaby
2024-03-15  9:16       ` Helge Deller
2024-04-02 10:32     ` [RESEND PATCH v3 0/2] VT: Add ability to get font requirements Alexey Gladkov
2024-04-02 10:32       ` [RESEND PATCH v3 1/2] VT: Add KDFONTINFO ioctl Alexey Gladkov
2024-04-02 11:02         ` Jiri Slaby
2024-04-02 13:19           ` Alexey Gladkov
2024-04-03  5:27             ` Jiri Slaby
2024-04-10 16:29               ` Alexey Gladkov
2024-04-10 17:11                 ` Greg Kroah-Hartman
2024-04-02 17:50           ` [PATCH v4 0/3] VT: Add ability to get font requirements Alexey Gladkov
2024-04-02 17:50             ` [PATCH v4 1/3] VT: Use macros to define ioctls Alexey Gladkov
2024-04-02 17:50             ` [PATCH v4 2/3] VT: Add KDFONTINFO ioctl Alexey Gladkov
2024-04-03  4:55               ` Greg Kroah-Hartman
2024-04-03  5:05               ` Jiri Slaby
2024-04-10 16:36                 ` Alexey Gladkov
2024-04-11  3:53                   ` Jiri Slaby
2024-04-02 17:50             ` [PATCH v4 3/3] VT: Allow to get max font width and height Alexey Gladkov
2024-04-17 17:37             ` [PATCH v5 0/3] VT: Add ability to get font requirements Alexey Gladkov
2024-04-17 17:37               ` [PATCH v5 1/3] VT: Use macros to define ioctls Alexey Gladkov
2024-04-18  6:18                 ` Greg Kroah-Hartman
2024-04-17 17:37               ` [PATCH v5 2/3] VT: Add KDFONTINFO ioctl Alexey Gladkov
2024-04-17 19:31                 ` Helge Deller
2024-04-18 10:45                   ` Alexey Gladkov
2024-04-25 10:33                     ` Helge Deller
2024-04-25 11:06                       ` Alexey Gladkov
2024-04-25 11:35                         ` Helge Deller
2024-04-18  6:18                 ` Greg Kroah-Hartman
2024-04-18 10:27                   ` Alexey Gladkov
2024-04-17 17:37               ` [PATCH v5 3/3] VT: Allow to get max font width and height Alexey Gladkov
2024-04-02 10:32       ` [RESEND PATCH v3 2/2] " Alexey Gladkov

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=Zc9dIRLbna585cGM@example.org \
    --to=legion@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jirislaby@kernel.org \
    --cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).