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

Reply via email to