All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3] fbcon: add fbcon=margin:<color> command line option
@ 2017-08-01 16:35   ` David Lechner
  0 siblings, 0 replies; 12+ messages in thread
From: David Lechner @ 2017-08-01 16:35 UTC (permalink / raw)
  To: linux-fbdev; +Cc: David Lechner, Bartlomiej Zolnierkiewicz, linux-kernel

This adds a new command line option to select the fbcon margin color.

The motivation for this is screens where black does not blend into the
physical surroundings of the screen. For example, using an LCD (not the
backlit kind), white text on a black background is hard to read, so
inverting the colors is preferred. However, when you do this, most of the
screen is filled with white but the margins are still filled with black.
This makes a big, black, backwards 'L' on the screen. By setting
fbcon=margin:7, the margins will be filled with white and the LCD looks as
expected.

Signed-off-by: David Lechner <david@lechnology.com>
---

This is a replacement for my previous patches that attempted to invert the
the fbcon margins when the VT was inverted[1].

This time, I am taking the approach suggested by Alan Cox and just making
the margin color configurable.

[1]: https://lkml.org/lkml/2017/7/31/696

 Documentation/fb/fbcon.txt        |  7 +++++++
 drivers/video/console/bitblit.c   |  4 ++--
 drivers/video/console/fbcon.c     | 12 +++++++++++-
 drivers/video/console/fbcon.h     |  2 +-
 drivers/video/console/fbcon_ccw.c |  4 ++--
 drivers/video/console/fbcon_cw.c  |  4 ++--
 drivers/video/console/fbcon_ud.c  |  4 ++--
 drivers/video/console/tileblit.c  |  2 +-
 8 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/Documentation/fb/fbcon.txt b/Documentation/fb/fbcon.txt
index 4a9739a..1822b19 100644
--- a/Documentation/fb/fbcon.txt
+++ b/Documentation/fb/fbcon.txt
@@ -148,6 +148,13 @@ C. Boot options
 	Actually, the underlying fb driver is totally ignorant of console
 	rotation.
 
+5. fbcon=margin:<color>
+
+	This option specifies the color of the margins. The margins are the
+	leftover area at the right and the bottom of the screen that are not
+	used by text. By default, this area will be black. The 'color' value
+	is 0 to 7 where 0 is black and 7 is white.
+
 C. Attaching, Detaching and Unloading
 
 Before going on how to attach, detach and unload the framebuffer console, an
diff --git a/drivers/video/console/bitblit.c b/drivers/video/console/bitblit.c
index dbfe4ee..c8adc24 100644
--- a/drivers/video/console/bitblit.c
+++ b/drivers/video/console/bitblit.c
@@ -203,7 +203,7 @@ static void bit_putcs(struct vc_data *vc, struct fb_info *info,
 }
 
 static void bit_clear_margins(struct vc_data *vc, struct fb_info *info,
-			      int bottom_only)
+			      int color, int bottom_only)
 {
 	unsigned int cw = vc->vc_font.width;
 	unsigned int ch = vc->vc_font.height;
@@ -213,7 +213,7 @@ static void bit_clear_margins(struct vc_data *vc, struct fb_info *info,
 	unsigned int bs = info->var.yres - bh;
 	struct fb_fillrect region;
 
-	region.color = 0;
+	region.color = color;
 	region.rop = ROP_COPY;
 
 	if (rw && !bottom_only) {
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index 12ded23..b59cdf7 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -137,6 +137,7 @@ static int info_idx = -1;
 /* console rotation */
 static int initial_rotation;
 static int fbcon_has_sysfs;
+static int margin_color;
 
 static const struct consw fb_con;
 
@@ -491,6 +492,15 @@ static int __init fb_console_setup(char *this_opt)
 				initial_rotation = 0;
 			continue;
 		}
+
+		if (!strncmp(options, "margin:", 7)) {
+			options += 7;
+			if (*options)
+				margin_color = simple_strtoul(options, &options, 0);
+			if (margin_color > 7)
+				margin_color = 0;
+			continue;
+		}
 	}
 	return 1;
 }
@@ -1299,7 +1309,7 @@ static void fbcon_clear_margins(struct vc_data *vc, int bottom_only)
 	struct fbcon_ops *ops = info->fbcon_par;
 
 	if (!fbcon_is_inactive(vc, info))
-		ops->clear_margins(vc, info, bottom_only);
+		ops->clear_margins(vc, info, margin_color, bottom_only);
 }
 
 static void fbcon_cursor(struct vc_data *vc, int mode)
diff --git a/drivers/video/console/fbcon.h b/drivers/video/console/fbcon.h
index 7aaa4ea..ef797bf 100644
--- a/drivers/video/console/fbcon.h
+++ b/drivers/video/console/fbcon.h
@@ -60,7 +60,7 @@ struct fbcon_ops {
 		      const unsigned short *s, int count, int yy, int xx,
 		      int fg, int bg);
 	void (*clear_margins)(struct vc_data *vc, struct fb_info *info,
-			      int bottom_only);
+			      int color, int bottom_only);
 	void (*cursor)(struct vc_data *vc, struct fb_info *info, int mode,
 		       int softback_lines, int fg, int bg);
 	int  (*update_start)(struct fb_info *info);
diff --git a/drivers/video/console/fbcon_ccw.c b/drivers/video/console/fbcon_ccw.c
index 5a3cbf6..e19d675 100644
--- a/drivers/video/console/fbcon_ccw.c
+++ b/drivers/video/console/fbcon_ccw.c
@@ -189,7 +189,7 @@ static void ccw_putcs(struct vc_data *vc, struct fb_info *info,
 }
 
 static void ccw_clear_margins(struct vc_data *vc, struct fb_info *info,
-			     int bottom_only)
+			      int color, int bottom_only)
 {
 	unsigned int cw = vc->vc_font.width;
 	unsigned int ch = vc->vc_font.height;
@@ -198,7 +198,7 @@ static void ccw_clear_margins(struct vc_data *vc, struct fb_info *info,
 	unsigned int bs = vc->vc_rows*ch;
 	struct fb_fillrect region;
 
-	region.color = 0;
+	region.color = color;
 	region.rop = ROP_COPY;
 
 	if (rw && !bottom_only) {
diff --git a/drivers/video/console/fbcon_cw.c b/drivers/video/console/fbcon_cw.c
index e7ee44d..54dd4aa 100644
--- a/drivers/video/console/fbcon_cw.c
+++ b/drivers/video/console/fbcon_cw.c
@@ -172,7 +172,7 @@ static void cw_putcs(struct vc_data *vc, struct fb_info *info,
 }
 
 static void cw_clear_margins(struct vc_data *vc, struct fb_info *info,
-			     int bottom_only)
+			     int color, int bottom_only)
 {
 	unsigned int cw = vc->vc_font.width;
 	unsigned int ch = vc->vc_font.height;
@@ -181,7 +181,7 @@ static void cw_clear_margins(struct vc_data *vc, struct fb_info *info,
 	unsigned int rs = info->var.yres - rw;
 	struct fb_fillrect region;
 
-	region.color = 0;
+	region.color = color;
 	region.rop = ROP_COPY;
 
 	if (rw && !bottom_only) {
diff --git a/drivers/video/console/fbcon_ud.c b/drivers/video/console/fbcon_ud.c
index 19e3714..0c34b92 100644
--- a/drivers/video/console/fbcon_ud.c
+++ b/drivers/video/console/fbcon_ud.c
@@ -220,7 +220,7 @@ static void ud_putcs(struct vc_data *vc, struct fb_info *info,
 }
 
 static void ud_clear_margins(struct vc_data *vc, struct fb_info *info,
-			     int bottom_only)
+			     int color, int bottom_only)
 {
 	unsigned int cw = vc->vc_font.width;
 	unsigned int ch = vc->vc_font.height;
@@ -228,7 +228,7 @@ static void ud_clear_margins(struct vc_data *vc, struct fb_info *info,
 	unsigned int bh = info->var.yres - (vc->vc_rows*ch);
 	struct fb_fillrect region;
 
-	region.color = 0;
+	region.color = color;
 	region.rop = ROP_COPY;
 
 	if (rw && !bottom_only) {
diff --git a/drivers/video/console/tileblit.c b/drivers/video/console/tileblit.c
index 15e8e1a..ec7265b 100644
--- a/drivers/video/console/tileblit.c
+++ b/drivers/video/console/tileblit.c
@@ -74,7 +74,7 @@ static void tile_putcs(struct vc_data *vc, struct fb_info *info,
 }
 
 static void tile_clear_margins(struct vc_data *vc, struct fb_info *info,
-			       int bottom_only)
+			       int color, int bottom_only)
 {
 	return;
 }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v3] fbcon: add fbcon=margin:<color> command line option
@ 2017-08-01 16:35   ` David Lechner
  0 siblings, 0 replies; 12+ messages in thread
From: David Lechner @ 2017-08-01 16:35 UTC (permalink / raw)
  To: linux-fbdev; +Cc: David Lechner, Bartlomiej Zolnierkiewicz, linux-kernel

This adds a new command line option to select the fbcon margin color.

The motivation for this is screens where black does not blend into the
physical surroundings of the screen. For example, using an LCD (not the
backlit kind), white text on a black background is hard to read, so
inverting the colors is preferred. However, when you do this, most of the
screen is filled with white but the margins are still filled with black.
This makes a big, black, backwards 'L' on the screen. By setting
fbcon=margin:7, the margins will be filled with white and the LCD looks as
expected.

Signed-off-by: David Lechner <david@lechnology.com>
---

This is a replacement for my previous patches that attempted to invert the
the fbcon margins when the VT was inverted[1].

This time, I am taking the approach suggested by Alan Cox and just making
the margin color configurable.

[1]: https://lkml.org/lkml/2017/7/31/696

 Documentation/fb/fbcon.txt        |  7 +++++++
 drivers/video/console/bitblit.c   |  4 ++--
 drivers/video/console/fbcon.c     | 12 +++++++++++-
 drivers/video/console/fbcon.h     |  2 +-
 drivers/video/console/fbcon_ccw.c |  4 ++--
 drivers/video/console/fbcon_cw.c  |  4 ++--
 drivers/video/console/fbcon_ud.c  |  4 ++--
 drivers/video/console/tileblit.c  |  2 +-
 8 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/Documentation/fb/fbcon.txt b/Documentation/fb/fbcon.txt
index 4a9739a..1822b19 100644
--- a/Documentation/fb/fbcon.txt
+++ b/Documentation/fb/fbcon.txt
@@ -148,6 +148,13 @@ C. Boot options
 	Actually, the underlying fb driver is totally ignorant of console
 	rotation.
 
+5. fbcon=margin:<color>
+
+	This option specifies the color of the margins. The margins are the
+	leftover area at the right and the bottom of the screen that are not
+	used by text. By default, this area will be black. The 'color' value
+	is 0 to 7 where 0 is black and 7 is white.
+
 C. Attaching, Detaching and Unloading
 
 Before going on how to attach, detach and unload the framebuffer console, an
diff --git a/drivers/video/console/bitblit.c b/drivers/video/console/bitblit.c
index dbfe4ee..c8adc24 100644
--- a/drivers/video/console/bitblit.c
+++ b/drivers/video/console/bitblit.c
@@ -203,7 +203,7 @@ static void bit_putcs(struct vc_data *vc, struct fb_info *info,
 }
 
 static void bit_clear_margins(struct vc_data *vc, struct fb_info *info,
-			      int bottom_only)
+			      int color, int bottom_only)
 {
 	unsigned int cw = vc->vc_font.width;
 	unsigned int ch = vc->vc_font.height;
@@ -213,7 +213,7 @@ static void bit_clear_margins(struct vc_data *vc, struct fb_info *info,
 	unsigned int bs = info->var.yres - bh;
 	struct fb_fillrect region;
 
-	region.color = 0;
+	region.color = color;
 	region.rop = ROP_COPY;
 
 	if (rw && !bottom_only) {
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index 12ded23..b59cdf7 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -137,6 +137,7 @@ static int info_idx = -1;
 /* console rotation */
 static int initial_rotation;
 static int fbcon_has_sysfs;
+static int margin_color;
 
 static const struct consw fb_con;
 
@@ -491,6 +492,15 @@ static int __init fb_console_setup(char *this_opt)
 				initial_rotation = 0;
 			continue;
 		}
+
+		if (!strncmp(options, "margin:", 7)) {
+			options += 7;
+			if (*options)
+				margin_color = simple_strtoul(options, &options, 0);
+			if (margin_color > 7)
+				margin_color = 0;
+			continue;
+		}
 	}
 	return 1;
 }
@@ -1299,7 +1309,7 @@ static void fbcon_clear_margins(struct vc_data *vc, int bottom_only)
 	struct fbcon_ops *ops = info->fbcon_par;
 
 	if (!fbcon_is_inactive(vc, info))
-		ops->clear_margins(vc, info, bottom_only);
+		ops->clear_margins(vc, info, margin_color, bottom_only);
 }
 
 static void fbcon_cursor(struct vc_data *vc, int mode)
diff --git a/drivers/video/console/fbcon.h b/drivers/video/console/fbcon.h
index 7aaa4ea..ef797bf 100644
--- a/drivers/video/console/fbcon.h
+++ b/drivers/video/console/fbcon.h
@@ -60,7 +60,7 @@ struct fbcon_ops {
 		      const unsigned short *s, int count, int yy, int xx,
 		      int fg, int bg);
 	void (*clear_margins)(struct vc_data *vc, struct fb_info *info,
-			      int bottom_only);
+			      int color, int bottom_only);
 	void (*cursor)(struct vc_data *vc, struct fb_info *info, int mode,
 		       int softback_lines, int fg, int bg);
 	int  (*update_start)(struct fb_info *info);
diff --git a/drivers/video/console/fbcon_ccw.c b/drivers/video/console/fbcon_ccw.c
index 5a3cbf6..e19d675 100644
--- a/drivers/video/console/fbcon_ccw.c
+++ b/drivers/video/console/fbcon_ccw.c
@@ -189,7 +189,7 @@ static void ccw_putcs(struct vc_data *vc, struct fb_info *info,
 }
 
 static void ccw_clear_margins(struct vc_data *vc, struct fb_info *info,
-			     int bottom_only)
+			      int color, int bottom_only)
 {
 	unsigned int cw = vc->vc_font.width;
 	unsigned int ch = vc->vc_font.height;
@@ -198,7 +198,7 @@ static void ccw_clear_margins(struct vc_data *vc, struct fb_info *info,
 	unsigned int bs = vc->vc_rows*ch;
 	struct fb_fillrect region;
 
-	region.color = 0;
+	region.color = color;
 	region.rop = ROP_COPY;
 
 	if (rw && !bottom_only) {
diff --git a/drivers/video/console/fbcon_cw.c b/drivers/video/console/fbcon_cw.c
index e7ee44d..54dd4aa 100644
--- a/drivers/video/console/fbcon_cw.c
+++ b/drivers/video/console/fbcon_cw.c
@@ -172,7 +172,7 @@ static void cw_putcs(struct vc_data *vc, struct fb_info *info,
 }
 
 static void cw_clear_margins(struct vc_data *vc, struct fb_info *info,
-			     int bottom_only)
+			     int color, int bottom_only)
 {
 	unsigned int cw = vc->vc_font.width;
 	unsigned int ch = vc->vc_font.height;
@@ -181,7 +181,7 @@ static void cw_clear_margins(struct vc_data *vc, struct fb_info *info,
 	unsigned int rs = info->var.yres - rw;
 	struct fb_fillrect region;
 
-	region.color = 0;
+	region.color = color;
 	region.rop = ROP_COPY;
 
 	if (rw && !bottom_only) {
diff --git a/drivers/video/console/fbcon_ud.c b/drivers/video/console/fbcon_ud.c
index 19e3714..0c34b92 100644
--- a/drivers/video/console/fbcon_ud.c
+++ b/drivers/video/console/fbcon_ud.c
@@ -220,7 +220,7 @@ static void ud_putcs(struct vc_data *vc, struct fb_info *info,
 }
 
 static void ud_clear_margins(struct vc_data *vc, struct fb_info *info,
-			     int bottom_only)
+			     int color, int bottom_only)
 {
 	unsigned int cw = vc->vc_font.width;
 	unsigned int ch = vc->vc_font.height;
@@ -228,7 +228,7 @@ static void ud_clear_margins(struct vc_data *vc, struct fb_info *info,
 	unsigned int bh = info->var.yres - (vc->vc_rows*ch);
 	struct fb_fillrect region;
 
-	region.color = 0;
+	region.color = color;
 	region.rop = ROP_COPY;
 
 	if (rw && !bottom_only) {
diff --git a/drivers/video/console/tileblit.c b/drivers/video/console/tileblit.c
index 15e8e1a..ec7265b 100644
--- a/drivers/video/console/tileblit.c
+++ b/drivers/video/console/tileblit.c
@@ -74,7 +74,7 @@ static void tile_putcs(struct vc_data *vc, struct fb_info *info,
 }
 
 static void tile_clear_margins(struct vc_data *vc, struct fb_info *info,
-			       int bottom_only)
+			       int color, int bottom_only)
 {
 	return;
 }
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH v3] fbcon: add fbcon=margin:<color> command line option
  2017-08-01 16:35   ` David Lechner
@ 2017-08-18 17:29     ` Bartlomiej Zolnierkiewicz
  -1 siblings, 0 replies; 12+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2017-08-18 17:29 UTC (permalink / raw)
  To: David Lechner; +Cc: linux-fbdev, linux-kernel

On Tuesday, August 01, 2017 11:35:57 AM David Lechner wrote:
> This adds a new command line option to select the fbcon margin color.
> 
> The motivation for this is screens where black does not blend into the
> physical surroundings of the screen. For example, using an LCD (not the
> backlit kind), white text on a black background is hard to read, so
> inverting the colors is preferred. However, when you do this, most of the
> screen is filled with white but the margins are still filled with black.
> This makes a big, black, backwards 'L' on the screen. By setting
> fbcon=margin:7, the margins will be filled with white and the LCD looks as
> expected.
> 
> Signed-off-by: David Lechner <david@lechnology.com>

Patch queued for 4.14, thanks.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v3] fbcon: add fbcon=margin:<color> command line option
@ 2017-08-18 17:29     ` Bartlomiej Zolnierkiewicz
  0 siblings, 0 replies; 12+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2017-08-18 17:29 UTC (permalink / raw)
  To: David Lechner; +Cc: linux-fbdev, linux-kernel

On Tuesday, August 01, 2017 11:35:57 AM David Lechner wrote:
> This adds a new command line option to select the fbcon margin color.
> 
> The motivation for this is screens where black does not blend into the
> physical surroundings of the screen. For example, using an LCD (not the
> backlit kind), white text on a black background is hard to read, so
> inverting the colors is preferred. However, when you do this, most of the
> screen is filled with white but the margins are still filled with black.
> This makes a big, black, backwards 'L' on the screen. By setting
> fbcon=margin:7, the margins will be filled with white and the LCD looks as
> expected.
> 
> Signed-off-by: David Lechner <david@lechnology.com>

Patch queued for 4.14, thanks.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v3] fbcon: add fbcon=margin:<color> command line option
  2017-08-01 16:35   ` David Lechner
@ 2017-08-18 18:21     ` Geert Uytterhoeven
  -1 siblings, 0 replies; 12+ messages in thread
From: Geert Uytterhoeven @ 2017-08-18 18:21 UTC (permalink / raw)
  To: David Lechner
  Cc: Linux Fbdev development list, Bartlomiej Zolnierkiewicz, linux-kernel

Hi David,

On Tue, Aug 1, 2017 at 6:35 PM, David Lechner <david@lechnology.com> wrote:
> This adds a new command line option to select the fbcon margin color.
>
> The motivation for this is screens where black does not blend into the
> physical surroundings of the screen. For example, using an LCD (not the
> backlit kind), white text on a black background is hard to read, so
> inverting the colors is preferred. However, when you do this, most of the
> screen is filled with white but the margins are still filled with black.
> This makes a big, black, backwards 'L' on the screen. By setting
> fbcon=margin:7, the margins will be filled with white and the LCD looks as
> expected.
>
> Signed-off-by: David Lechner <david@lechnology.com>

> --- a/Documentation/fb/fbcon.txt
> +++ b/Documentation/fb/fbcon.txt
> @@ -148,6 +148,13 @@ C. Boot options
>         Actually, the underlying fb driver is totally ignorant of console
>         rotation.
>
> +5. fbcon=margin:<color>
> +
> +       This option specifies the color of the margins. The margins are the
> +       leftover area at the right and the bottom of the screen that are not
> +       used by text. By default, this area will be black. The 'color' value
> +       is 0 to 7 where 0 is black and 7 is white.
> +

Given the standard console palette contains 16 colors, why limit this to
the first 8 colors, and not 0 to 15?

> --- a/drivers/video/console/fbcon.c
> +++ b/drivers/video/console/fbcon.c
> @@ -137,6 +137,7 @@ static int info_idx = -1;
>  /* console rotation */
>  static int initial_rotation;
>  static int fbcon_has_sysfs;
> +static int margin_color;
>
>  static const struct consw fb_con;
>
> @@ -491,6 +492,15 @@ static int __init fb_console_setup(char *this_opt)
>                                 initial_rotation = 0;
>                         continue;
>                 }
> +
> +               if (!strncmp(options, "margin:", 7)) {
> +                       options += 7;
> +                       if (*options)
> +                               margin_color = simple_strtoul(options, &options, 0);
> +                       if (margin_color > 7)
> +                               margin_color = 0;
> +                       continue;
> +               }

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v3] fbcon: add fbcon=margin:<color> command line option
@ 2017-08-18 18:21     ` Geert Uytterhoeven
  0 siblings, 0 replies; 12+ messages in thread
From: Geert Uytterhoeven @ 2017-08-18 18:21 UTC (permalink / raw)
  To: David Lechner
  Cc: Linux Fbdev development list, Bartlomiej Zolnierkiewicz, linux-kernel

Hi David,

On Tue, Aug 1, 2017 at 6:35 PM, David Lechner <david@lechnology.com> wrote:
> This adds a new command line option to select the fbcon margin color.
>
> The motivation for this is screens where black does not blend into the
> physical surroundings of the screen. For example, using an LCD (not the
> backlit kind), white text on a black background is hard to read, so
> inverting the colors is preferred. However, when you do this, most of the
> screen is filled with white but the margins are still filled with black.
> This makes a big, black, backwards 'L' on the screen. By setting
> fbcon=margin:7, the margins will be filled with white and the LCD looks as
> expected.
>
> Signed-off-by: David Lechner <david@lechnology.com>

> --- a/Documentation/fb/fbcon.txt
> +++ b/Documentation/fb/fbcon.txt
> @@ -148,6 +148,13 @@ C. Boot options
>         Actually, the underlying fb driver is totally ignorant of console
>         rotation.
>
> +5. fbcon=margin:<color>
> +
> +       This option specifies the color of the margins. The margins are the
> +       leftover area at the right and the bottom of the screen that are not
> +       used by text. By default, this area will be black. The 'color' value
> +       is 0 to 7 where 0 is black and 7 is white.
> +

Given the standard console palette contains 16 colors, why limit this to
the first 8 colors, and not 0 to 15?

> --- a/drivers/video/console/fbcon.c
> +++ b/drivers/video/console/fbcon.c
> @@ -137,6 +137,7 @@ static int info_idx = -1;
>  /* console rotation */
>  static int initial_rotation;
>  static int fbcon_has_sysfs;
> +static int margin_color;
>
>  static const struct consw fb_con;
>
> @@ -491,6 +492,15 @@ static int __init fb_console_setup(char *this_opt)
>                                 initial_rotation = 0;
>                         continue;
>                 }
> +
> +               if (!strncmp(options, "margin:", 7)) {
> +                       options += 7;
> +                       if (*options)
> +                               margin_color = simple_strtoul(options, &options, 0);
> +                       if (margin_color > 7)
> +                               margin_color = 0;
> +                       continue;
> +               }

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v3] fbcon: add fbcon=margin:<color> command line option
  2017-08-18 18:21     ` Geert Uytterhoeven
@ 2017-08-18 19:19       ` David Lechner
  -1 siblings, 0 replies; 12+ messages in thread
From: David Lechner @ 2017-08-18 19:19 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Linux Fbdev development list, Bartlomiej Zolnierkiewicz, linux-kernel

On 08/18/2017 01:21 PM, Geert Uytterhoeven wrote:
> Hi David,
> 
> On Tue, Aug 1, 2017 at 6:35 PM, David Lechner <david@lechnology.com> wrote:
>> This adds a new command line option to select the fbcon margin color.
>>
>> The motivation for this is screens where black does not blend into the
>> physical surroundings of the screen. For example, using an LCD (not the
>> backlit kind), white text on a black background is hard to read, so
>> inverting the colors is preferred. However, when you do this, most of the
>> screen is filled with white but the margins are still filled with black.
>> This makes a big, black, backwards 'L' on the screen. By setting
>> fbcon=margin:7, the margins will be filled with white and the LCD looks as
>> expected.
>>
>> Signed-off-by: David Lechner <david@lechnology.com>
> 
>> --- a/Documentation/fb/fbcon.txt
>> +++ b/Documentation/fb/fbcon.txt
>> @@ -148,6 +148,13 @@ C. Boot options
>>          Actually, the underlying fb driver is totally ignorant of console
>>          rotation.
>>
>> +5. fbcon=margin:<color>
>> +
>> +       This option specifies the color of the margins. The margins are the
>> +       leftover area at the right and the bottom of the screen that are not
>> +       used by text. By default, this area will be black. The 'color' value
>> +       is 0 to 7 where 0 is black and 7 is white.
>> +
> 
> Given the standard console palette contains 16 colors, why limit this to
> the first 8 colors, and not 0 to 15?

Good question. I think in some of my previous attempts there was a 0x7 
mask involved somewhere and this is a carryover from that. But, after 
having looked at this again, I don't see a reason for limiting to 7.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v3] fbcon: add fbcon=margin:<color> command line option
@ 2017-08-18 19:19       ` David Lechner
  0 siblings, 0 replies; 12+ messages in thread
From: David Lechner @ 2017-08-18 19:19 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Linux Fbdev development list, Bartlomiej Zolnierkiewicz, linux-kernel

On 08/18/2017 01:21 PM, Geert Uytterhoeven wrote:
> Hi David,
> 
> On Tue, Aug 1, 2017 at 6:35 PM, David Lechner <david@lechnology.com> wrote:
>> This adds a new command line option to select the fbcon margin color.
>>
>> The motivation for this is screens where black does not blend into the
>> physical surroundings of the screen. For example, using an LCD (not the
>> backlit kind), white text on a black background is hard to read, so
>> inverting the colors is preferred. However, when you do this, most of the
>> screen is filled with white but the margins are still filled with black.
>> This makes a big, black, backwards 'L' on the screen. By setting
>> fbcon=margin:7, the margins will be filled with white and the LCD looks as
>> expected.
>>
>> Signed-off-by: David Lechner <david@lechnology.com>
> 
>> --- a/Documentation/fb/fbcon.txt
>> +++ b/Documentation/fb/fbcon.txt
>> @@ -148,6 +148,13 @@ C. Boot options
>>          Actually, the underlying fb driver is totally ignorant of console
>>          rotation.
>>
>> +5. fbcon=margin:<color>
>> +
>> +       This option specifies the color of the margins. The margins are the
>> +       leftover area at the right and the bottom of the screen that are not
>> +       used by text. By default, this area will be black. The 'color' value
>> +       is 0 to 7 where 0 is black and 7 is white.
>> +
> 
> Given the standard console palette contains 16 colors, why limit this to
> the first 8 colors, and not 0 to 15?

Good question. I think in some of my previous attempts there was a 0x7 
mask involved somewhere and this is a carryover from that. But, after 
having looked at this again, I don't see a reason for limiting to 7.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v3] fbcon: add fbcon=margin:<color> command line option
  2017-08-18 19:19       ` David Lechner
@ 2017-08-23 15:56         ` Bartlomiej Zolnierkiewicz
  -1 siblings, 0 replies; 12+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2017-08-23 15:56 UTC (permalink / raw)
  To: David Lechner
  Cc: Geert Uytterhoeven, Linux Fbdev development list, linux-kernel


Hi,

On Friday, August 18, 2017 02:19:28 PM David Lechner wrote:
> On 08/18/2017 01:21 PM, Geert Uytterhoeven wrote:
> > Hi David,
> > 
> > On Tue, Aug 1, 2017 at 6:35 PM, David Lechner <david@lechnology.com> wrote:
> >> This adds a new command line option to select the fbcon margin color.
> >>
> >> The motivation for this is screens where black does not blend into the
> >> physical surroundings of the screen. For example, using an LCD (not the
> >> backlit kind), white text on a black background is hard to read, so
> >> inverting the colors is preferred. However, when you do this, most of the
> >> screen is filled with white but the margins are still filled with black.
> >> This makes a big, black, backwards 'L' on the screen. By setting
> >> fbcon=margin:7, the margins will be filled with white and the LCD looks as
> >> expected.
> >>
> >> Signed-off-by: David Lechner <david@lechnology.com>
> > 
> >> --- a/Documentation/fb/fbcon.txt
> >> +++ b/Documentation/fb/fbcon.txt
> >> @@ -148,6 +148,13 @@ C. Boot options
> >>          Actually, the underlying fb driver is totally ignorant of console
> >>          rotation.
> >>
> >> +5. fbcon=margin:<color>
> >> +
> >> +       This option specifies the color of the margins. The margins are the
> >> +       leftover area at the right and the bottom of the screen that are not
> >> +       used by text. By default, this area will be black. The 'color' value
> >> +       is 0 to 7 where 0 is black and 7 is white.
> >> +
> > 
> > Given the standard console palette contains 16 colors, why limit this to
> > the first 8 colors, and not 0 to 15?
> 
> Good question. I think in some of my previous attempts there was a 0x7 
> mask involved somewhere and this is a carryover from that. But, after 
> having looked at this again, I don't see a reason for limiting to 7.

Could you please prepare the incremental patch raising the number of colors
possible to use?

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v3] fbcon: add fbcon=margin:<color> command line option
@ 2017-08-23 15:56         ` Bartlomiej Zolnierkiewicz
  0 siblings, 0 replies; 12+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2017-08-23 15:56 UTC (permalink / raw)
  To: David Lechner
  Cc: Geert Uytterhoeven, Linux Fbdev development list, linux-kernel


Hi,

On Friday, August 18, 2017 02:19:28 PM David Lechner wrote:
> On 08/18/2017 01:21 PM, Geert Uytterhoeven wrote:
> > Hi David,
> > 
> > On Tue, Aug 1, 2017 at 6:35 PM, David Lechner <david@lechnology.com> wrote:
> >> This adds a new command line option to select the fbcon margin color.
> >>
> >> The motivation for this is screens where black does not blend into the
> >> physical surroundings of the screen. For example, using an LCD (not the
> >> backlit kind), white text on a black background is hard to read, so
> >> inverting the colors is preferred. However, when you do this, most of the
> >> screen is filled with white but the margins are still filled with black.
> >> This makes a big, black, backwards 'L' on the screen. By setting
> >> fbcon=margin:7, the margins will be filled with white and the LCD looks as
> >> expected.
> >>
> >> Signed-off-by: David Lechner <david@lechnology.com>
> > 
> >> --- a/Documentation/fb/fbcon.txt
> >> +++ b/Documentation/fb/fbcon.txt
> >> @@ -148,6 +148,13 @@ C. Boot options
> >>          Actually, the underlying fb driver is totally ignorant of console
> >>          rotation.
> >>
> >> +5. fbcon=margin:<color>
> >> +
> >> +       This option specifies the color of the margins. The margins are the
> >> +       leftover area at the right and the bottom of the screen that are not
> >> +       used by text. By default, this area will be black. The 'color' value
> >> +       is 0 to 7 where 0 is black and 7 is white.
> >> +
> > 
> > Given the standard console palette contains 16 colors, why limit this to
> > the first 8 colors, and not 0 to 15?
> 
> Good question. I think in some of my previous attempts there was a 0x7 
> mask involved somewhere and this is a carryover from that. But, after 
> having looked at this again, I don't see a reason for limiting to 7.

Could you please prepare the incremental patch raising the number of colors
possible to use?

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v3] fbcon: add fbcon=margin:<color> command line option
  2017-08-23 15:56         ` Bartlomiej Zolnierkiewicz
@ 2017-08-23 15:58           ` David Lechner
  -1 siblings, 0 replies; 12+ messages in thread
From: David Lechner @ 2017-08-23 15:58 UTC (permalink / raw)
  To: Bartlomiej Zolnierkiewicz
  Cc: Geert Uytterhoeven, Linux Fbdev development list, linux-kernel

On 08/23/2017 10:56 AM, Bartlomiej Zolnierkiewicz wrote:
> 

>>>
>>> Given the standard console palette contains 16 colors, why limit this to
>>> the first 8 colors, and not 0 to 15?
>>
>> Good question. I think in some of my previous attempts there was a 0x7
>> mask involved somewhere and this is a carryover from that. But, after
>> having looked at this again, I don't see a reason for limiting to 7.
> 
> Could you please prepare the incremental patch raising the number of colors
> possible to use?

Yes, I will do this.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v3] fbcon: add fbcon=margin:<color> command line option
@ 2017-08-23 15:58           ` David Lechner
  0 siblings, 0 replies; 12+ messages in thread
From: David Lechner @ 2017-08-23 15:58 UTC (permalink / raw)
  To: Bartlomiej Zolnierkiewicz
  Cc: Geert Uytterhoeven, Linux Fbdev development list, linux-kernel

On 08/23/2017 10:56 AM, Bartlomiej Zolnierkiewicz wrote:
> 

>>>
>>> Given the standard console palette contains 16 colors, why limit this to
>>> the first 8 colors, and not 0 to 15?
>>
>> Good question. I think in some of my previous attempts there was a 0x7
>> mask involved somewhere and this is a carryover from that. But, after
>> having looked at this again, I don't see a reason for limiting to 7.
> 
> Could you please prepare the incremental patch raising the number of colors
> possible to use?

Yes, I will do this.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2017-08-23 15:58 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20170801163629epcas2p49f5f4b204a3ce907b8a7f8239987022e@epcas2p4.samsung.com>
2017-08-01 16:35 ` [PATCH v3] fbcon: add fbcon=margin:<color> command line option David Lechner
2017-08-01 16:35   ` David Lechner
2017-08-18 17:29   ` Bartlomiej Zolnierkiewicz
2017-08-18 17:29     ` Bartlomiej Zolnierkiewicz
2017-08-18 18:21   ` Geert Uytterhoeven
2017-08-18 18:21     ` Geert Uytterhoeven
2017-08-18 19:19     ` David Lechner
2017-08-18 19:19       ` David Lechner
2017-08-23 15:56       ` Bartlomiej Zolnierkiewicz
2017-08-23 15:56         ` Bartlomiej Zolnierkiewicz
2017-08-23 15:58         ` David Lechner
2017-08-23 15:58           ` David Lechner

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.