2008-07-01 15:37:56

by Stefano Stabellini

[permalink] [raw]
Subject: [PATCH 1 of 2] fbcon: bgcolor fix

The forth bit of the background color is the blink property bit, not the
intensity bit, as for the foreground color.
Therefore it shouldn't be included in the background color.

Signed-off-by: [email protected]

---
drivers/video/console/fbcon.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/video/console/fbcon.h b/drivers/video/console/fbcon.h
index 0135e03..beb6a74 100644
--- a/drivers/video/console/fbcon.h
+++ b/drivers/video/console/fbcon.h
@@ -92,7 +92,7 @@ struct fbcon_ops {
#define attr_fgcol(fgshift,s) \
(((s) >> (fgshift)) & 0x0f)
#define attr_bgcol(bgshift,s) \
- (((s) >> (bgshift)) & 0x0f)
+ (((s) >> (bgshift)) & 0x07)

/* Monochrome */
#define attr_bold(s) \
--
1.5.4.3


2008-07-01 15:52:04

by Jan Engelhardt

[permalink] [raw]
Subject: Re: [PATCH 1 of 2] fbcon: bgcolor fix


On Tuesday 2008-07-01 17:38, Stefano Stabellini wrote:

>The forth bit of the background color is the blink property bit, not the
>intensity bit, as for the foreground color.
>Therefore it shouldn't be included in the background color.

I'm a bit skeptical, though I have not tried this.
ISTR fb has the power to render full 8 bits background
in addition to blinking.

>--- a/drivers/video/console/fbcon.h
>+++ b/drivers/video/console/fbcon.h
>@@ -92,7 +92,7 @@ struct fbcon_ops {
> #define attr_fgcol(fgshift,s) \
> (((s) >> (fgshift)) & 0x0f)
> #define attr_bgcol(bgshift,s) \
>- (((s) >> (bgshift)) & 0x0f)
>+ (((s) >> (bgshift)) & 0x07)
>
> /* Monochrome */
> #define attr_bold(s) \

2008-07-01 16:27:45

by Stefano Stabellini

[permalink] [raw]
Subject: Re: [PATCH 1 of 2] fbcon: bgcolor fix

Jan Engelhardt wrote:

> On Tuesday 2008-07-01 17:38, Stefano Stabellini wrote:
>
>> The forth bit of the background color is the blink property bit, not the
>> intensity bit, as for the foreground color.
>> Therefore it shouldn't be included in the background color.
>
> I'm a bit skeptical, though I have not tried this.


If you look at the build_attr function in drivers/char/vt.c you can see
that the blink attribute is stored as the forth bit of the background color.

I tried the patches with both an ncurses application and manually using:

echo -en '\E[5m'

and they seems to work fine.