svn commit: r268772 - head/sys/dev/vt/hw/efifb

Nathan Whitehorn nwhitehorn at FreeBSD.org
Wed Jul 16 18:52:22 UTC 2014


Author: nwhitehorn
Date: Wed Jul 16 18:52:21 2014
New Revision: 268772
URL: http://svnweb.freebsd.org/changeset/base/268772

Log:
  Allow efifb to be used with xf86-video-scfb. This is important for EFI
  systems without either a CSM or real graphics drivers, such as my Lenovo
  Haswell laptop.
  
  This provides working X with the small complication of a console cursor
  permanently overlaid on the upper-left corner of the screen that will be
  dealt with later.
  
  Also remove some redundant screen clearing.

Modified:
  head/sys/dev/vt/hw/efifb/efifb.c

Modified: head/sys/dev/vt/hw/efifb/efifb.c
==============================================================================
--- head/sys/dev/vt/hw/efifb/efifb.c	Wed Jul 16 18:49:46 2014	(r268771)
+++ head/sys/dev/vt/hw/efifb/efifb.c	Wed Jul 16 18:52:21 2014	(r268772)
@@ -62,6 +62,8 @@ static struct vt_driver vt_efifb_driver 
 	.vd_blank = vt_fb_blank,
 	.vd_bitbltchr = vt_fb_bitbltchr,
 	.vd_maskbitbltchr = vt_fb_maskbitbltchr,
+	.vd_fb_ioctl = vt_fb_ioctl,
+	.vd_fb_mmap = vt_fb_mmap,
 	/* Better than VGA, but still generic driver. */
 	.vd_priority = VD_PRIORITY_GENERIC + 1,
 };
@@ -97,7 +99,7 @@ vt_efifb_probe(struct vt_device *vd)
 static int
 vt_efifb_init(struct vt_device *vd)
 {
-	int		depth, d, i, len;
+	int		depth, d;
 	struct fb_info	*info;
 	struct efi_fb	*efifb;
 	caddr_t		kmdp;
@@ -142,12 +144,6 @@ vt_efifb_init(struct vt_device *vd)
 	 */
 	info->fb_vbase = PHYS_TO_DMAP(efifb->fb_addr);
 
-	/* blank full size */
-	len = info->fb_size / 4;
-	for (i = 0; i < len; i++) {
-		((uint32_t *)info->fb_vbase)[i] = 0;
-	}
-
 	/* Get pixel storage size. */
 	info->fb_bpp = info->fb_stride / info->fb_width * 8;
 


More information about the svn-src-head mailing list