All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nikita Kiryanov <nikita@compulab.co.il>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 4/4] common/lcd_console: introduce display/framebuffer rotation
Date: Thu, 26 Mar 2015 18:32:51 +0200	[thread overview]
Message-ID: <551434B3.7040208@compulab.co.il> (raw)
In-Reply-To: <55132789.2020609@petermaier.org>

Hi Hannes,

On 03/25/2015 11:24 PM, Hannes Petermaier wrote:
>>> +static void console_calc_rowcol(struct console_t *pcons)
>>> +{
>>> +    pcons->cols = pcons->lcdsizex / VIDEO_FONT_WIDTH;
>>> +#if defined(CONFIG_LCD_LOGO) && !defined(CONFIG_LCD_INFO_BELOW_LOGO)
>>> +    pcons->rows = (pcons->lcdsizey - BMP_LOGO_HEIGHT);
>>> +    pcons->rows /= VIDEO_FONT_HEIGHT;
>>> +#else
>>> +    pcons->rows = pcons->lcdsizey / VIDEO_FONT_HEIGHT;
>>> +#endif
>>> +}
> Okay, i will fixup the description in v4 ... maybe these troubles are coming from, lets say, sub-optimal english-language practise :-)
> In original i speak german.

That's perfectly understandable, don't worry about it :)

>>> +static void console_calc_rowcol_rot(struct console_t *pcons)
>>> +{
>>> +    u32 cols, rows;
>>> +
>>> +    if (pcons->lcdrot == 1 || pcons->lcdrot == 3) {
>>> +        cols = pcons->lcdsizey;
>>> +        rows = pcons->lcdsizex;
>>> +    } else {
>>> +        cols = pcons->lcdsizex;
>>> +        rows = pcons->lcdsizey;
>>> +    }
>>> +
>>> +    pcons->cols = cols / VIDEO_FONT_WIDTH;
>>> +#if defined(CONFIG_LCD_LOGO) && !defined(CONFIG_LCD_INFO_BELOW_LOGO)
>>> +    pcons->rows = (rows - BMP_LOGO_HEIGHT);
>>> +    pcons->rows /= VIDEO_FONT_HEIGHT;
>>> +#else
>>> +    pcons->rows = rows / VIDEO_FONT_HEIGHT;
>>> +#endif
>>
>> This duplication with console_calc_rowcol() exists because the lcdsizey and
>> lcdsizex data is expected by the functions to be already in pcons. If you
>> change console_calc_rowcol() to accept both variables as additional
>> arguments, then console_calc_rowcol() could be reused in
>> console_calc_rowcol_rot() and we'll get rid of the code duplication.
> I'm not sure about what is more uggly or better.
> To avoid this duplication and use one function i have to make this function non-static and make a mix of rotation-code into lcd_console.c - i wouldn't prefer this.
> Maybe the actual way of this (little) duplication is the beautiful one and gives most readability of the code.
>
> what do you mean about?
>

Actually I was thinking about keeping the two functions, but have console_calc_rowcol_rot() use console_calc_rowcol(), like so:

void console_calc_rowcol(struct console_t *pcons, u32 lcdsizex, lcdsizey)
{
	pcons->cols = lcdsizex / VIDEO_FONT_WIDTH;
#if defined(CONFIG_LCD_LOGO) && !defined(CONFIG_LCD_INFO_BELOW_LOGO)
	pcons->rows = (lcdsizey - BMP_LOGO_HEIGHT);
	pcons->rows /= VIDEO_FONT_HEIGHT;
#else
	pcons->rows = lcdsizey / VIDEO_FONT_HEIGHT;
#endif
}

static void console_calc_rowcol_rot(struct console_t *pcons)
{
	u32 cols, rows;

	if (pcons->lcdrot == 1 || pcons->lcdrot == 3) {
		cols = pcons->lcdsizey;
		rows = pcons->lcdsizex;
	} else {
		cols = pcons->lcdsizex;
		rows = pcons->lcdsizey;
	}

	console_calc_rowcol(&cons, cols, rows);
}

-- 
Regards,
Nikita Kiryanov

  reply	other threads:[~2015-03-26 16:32 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-18  7:37 [U-Boot] [PATCH v2 0/4] common/lcd_console: introduce display/framebuffer rotation Hannes Petermaier
2015-03-18  7:37 ` [U-Boot] [PATCH v2 1/4] common/lcd_console: cleanup lcd_drawchars/lcd_putc_xy Hannes Petermaier
2015-03-19  8:37   ` [U-Boot] [PATCH v3 0/4] common/lcd_console: introduce display/framebuffer rotation Hannes Petermaier
2015-03-19  8:37     ` [U-Boot] [PATCH v3 1/4] common/lcd_console: cleanup lcd_drawchars/lcd_putc_xy Hannes Petermaier
2015-03-19  8:37     ` [U-Boot] [PATCH v3 2/4] common/lcd_console: ask only one-time for bg/fg-color per call Hannes Petermaier
2015-03-19  8:37     ` [U-Boot] [PATCH v3 3/4] common/lcd_console: move single static variables into common (static) structure Hannes Petermaier
2015-03-19  8:37     ` [U-Boot] [PATCH v3 4/4] common/lcd_console: introduce display/framebuffer rotation Hannes Petermaier
2015-03-25 16:24       ` Nikita Kiryanov
2015-03-25 21:24         ` Hannes Petermaier
2015-03-26 16:32           ` Nikita Kiryanov [this message]
2015-03-18  7:37 ` [U-Boot] [PATCH v2 2/4] common/lcd_console: ask only one-time for bg/fg-color per call Hannes Petermaier
2015-03-18  7:37 ` [U-Boot] [PATCH v2 3/4] common/lcd_console: move single static variables into common (static) structure Hannes Petermaier
2015-03-18 12:11   ` Igor Grinberg
2015-03-18 12:14     ` Hannes Petermaier
2015-03-18 12:47       ` Igor Grinberg
2015-03-18 15:07         ` Hannes Petermaier
2015-03-18 15:23           ` Igor Grinberg
2015-03-18  7:37 ` [U-Boot] [PATCH v2 4/4] common/lcd_console: introduce display/framebuffer rotation Hannes Petermaier
2015-03-18 12:56   ` Igor Grinberg
2015-03-18 14:59     ` Hannes Petermaier
2015-03-18 15:27       ` Igor Grinberg

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=551434B3.7040208@compulab.co.il \
    --to=nikita@compulab.co.il \
    --cc=u-boot@lists.denx.de \
    /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.