On 2015-03-25 17:24, Nikita Kiryanov wrote:
Hi Hannes,
Hi Nikita,
This is almost an Acked-By from me, just a few final comments:
Perfect, i think with v4 we can finish the thing :-)
On 03/19/2015 10:37 AM, Hannes Petermaier wrote:
diff --git a/README b/README
index b0124d6..c649de1 100644
--- a/README
+++ b/README
@@ -1947,6 +1947,28 @@ CBFS (Coreboot Filesystem) support
the console jump but can help speed up operation when
scrolling
is slow.
+ CONFIG_LCD_ROTATION
+
+ Sometimes, for example if the display is mounted in portrait
+ mode or even if it mounted landscape but rotated by 180degree,
s/if it/if it's/
+ we need to rotate our content of the display respectively the
s/respectively the/relative to the/
+ framebuffer, so that user can read the messages who are printed
s/who are printed/which are printed/
+ out.
+ For this we introduce the feature called "CONFIG_LCD_ROTATION",
+ this may be defined in the board-configuration if needed.
After
+ this the lcd_console will be initialized with a given rotation
"this may be defined in the board-configuration if needed"
This is true for all config options in general, no need to mention this.
Also, "For this we introduce" is good for a commit message, but
doesn't look good
once committed.
How about just "Once CONFIG_LCD_ROTATION is defined, the lcd_console
will be..."
+ from "vl_rot" out of "vidinfo_t" which is provided by the board
+ specific code.
+ The value for vl_rot is coded as following (matching to
+ fbcon=rotate:<n> linux-kernel commandline):
+ 0 = no rotation respectively 0 degree
+ 1 = 90 degree rotation
+ 2 = 180 degree rotation
+ 3 = 270 degree rotation
+
+ If CONFIG_LCD_ROTATION is not defined, the console will be
+ initialized with 0degree rotation.
+
CONFIG_LCD_BMP_RLE8
Support drawing of RLE8-compressed bitmaps on the LCD.
[...]
+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.
[...]
@@ -235,4 +253,3 @@ U_BOOT_CMD(
"print string on lcd-framebuffer",
" <string>"
);
-
Looks like part of the cleanup from the previous series slipped
through...
Okay, i will remove 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?
best regards,
Hannes
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot