When testing the row and column increase for efifb on a 1920x1080
display I noticed the top part of the screen continues to contain part
of a white on blue line from earlier in the dmesg even after the machine
has finished booting.

RI_CENTER changes the ri_bits offset, doing RI_CLEARMARGINS in cnremap
clears the fragment of a line caused by using RI_CENTER.

Index: efifb.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/efifb.c,v
retrieving revision 1.31
diff -u -p -r1.31 efifb.c
--- efifb.c     27 May 2020 07:48:02 -0000      1.31
+++ efifb.c     27 May 2020 09:27:50 -0000
@@ -219,7 +219,7 @@ efifb_attach(struct device *parent, stru
                crow = ri->ri_crow;
 
                efifb_rasops_preinit(fb);
-               ri->ri_flg &= ~RI_CLEAR;
+               ri->ri_flg &= ~(RI_CLEAR | RI_CLEARMARGINS);
                ri->ri_flg |= RI_VCONS | RI_WRONLY;
 
                rasops_init(ri, efifb_std_descr.nrows, efifb_std_descr.ncols);
@@ -478,7 +478,7 @@ efifb_cnremap(void)
 
        efifb_rasops_preinit(fb);
        ri->ri_flg &= ~RI_CLEAR;
-       ri->ri_flg |= RI_CENTER | RI_WRONLY;
+       ri->ri_flg |= RI_CENTER | RI_WRONLY | RI_CLEARMARGINS;
 
        rasops_init(ri, efifb_std_descr.nrows, efifb_std_descr.ncols);
 

Reply via email to