Re: [PATCH] fbcon: Fix vc attr at deinit

From: Tomi Valkeinen
Date: Thu Jan 05 2017 - 07:26:32 EST


On 04/01/17 15:50, Takashi Iwai wrote:
> On Tue, 03 Jan 2017 16:03:22 +0100,
> Takashi Iwai wrote:
>>
>> fbcon can deal with vc_hi_font_mask (the upper 256 chars) and adjust
>> the vc attrs dynamically when vc_hi_font_mask is changed at
>> fbcon_init(). When the vc_hi_font_mask is set, it remaps the attrs in
>> the existing console buffer with one bit shift up (for 9 bits), while
>> it remaps with one bit shift down (for 8 bits) when the value is
>> cleared. It works fine as long as the font gets updated after fbcon
>> was initialized.
>>
>> However, we hit a bizarre problem when the console is switched to
>> another fb driver (typically from vesafb or efifb to drmfb). At
>> switching to the new fb driver, we temporarily rebind the console to
>> the dummy console, then rebind to the new driver. During the
>> switching, we leave the modified attrs as is. Thus, the new fbcon
>> takes over the old buffer as if it were to contain 8 bits chars
>> (although the attrs are still shifted for 9 bits), and effectively
>> this results in the yellow color texts instead of the original white
>> color, as found in the bugzilla entry below.
>>
>> An easy fix for this is to re-adjust the attrs before leaving the
>> fbcon at con_deinit callback. Since the code to adjust the attrs is
>> already present in the current fbcon code, in this patch, we simply
>> factor out the relevant code, and call it from fbcon_deinit().
>>
>> Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1000619
>> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
>
> Actually not only checkpatch but also I can't find the proper
> maintainer for this...
>
> Tomi, could you check and take if it's OK?
>
> Ideally, this kind of stuff should have been in rather vt side, I
> suppose. But since the code is already present in fbcon, it's easier
> to reuse it as a fix for now.

I'm not fbdev maintainer anymore. Added Bartlomiej (and Andrew).

Tomi

Attachment: signature.asc
Description: OpenPGP digital signature