diff options
author | emaste <emaste@FreeBSD.org> | 2014-09-02 19:57:33 +0000 |
---|---|---|
committer | emaste <emaste@FreeBSD.org> | 2014-09-02 19:57:33 +0000 |
commit | 2903976d7cad88e1e77227d43621b90e495bf154 (patch) | |
tree | beaf92d4a742ea72a57d0defbf8db527a4e0d2e9 | |
parent | 4dbb542d9923f0c98d1625bcdd2470d5bc6b0149 (diff) | |
download | FreeBSD-src-2903976d7cad88e1e77227d43621b90e495bf154.zip FreeBSD-src-2903976d7cad88e1e77227d43621b90e495bf154.tar.gz |
MFC r268772 by nwhitehorn:
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.
Sponsored by: The FreeBSD Foundation
-rw-r--r-- | sys/dev/vt/hw/efifb/efifb.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/dev/vt/hw/efifb/efifb.c b/sys/dev/vt/hw/efifb/efifb.c index b3347f7..b6ea1db 100644 --- a/sys/dev/vt/hw/efifb/efifb.c +++ b/sys/dev/vt/hw/efifb/efifb.c @@ -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; |