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);