Merge branch 'xen/fbdev' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen

* 'xen/fbdev' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen:
xen pvfb: Inhibit VM_IO flag to be set on vmalloc-ed framebuffers.
fb-defio: Inhibit VM_IO flag to be set on vmalloc-ed framebuffers.
fb-defio: If FBINFO_VIRTFB is defined, do not set VM_IO flag.
Fix toogle whether xenbus driver should be built as module or part of kernel.

+10 -5
+1
drivers/input/Kconfig
··· 165 165 tristate "Xen virtual keyboard and mouse support" 166 166 depends on XEN_FBDEV_FRONTEND 167 167 default y 168 + select XEN_XENBUS_FRONTEND 168 169 help 169 170 This driver implements the front-end of the Xen virtual 170 171 keyboard and mouse device driver. It communicates with a back-end
+1
drivers/video/Kconfig
··· 2066 2066 select FB_SYS_IMAGEBLIT 2067 2067 select FB_SYS_FOPS 2068 2068 select FB_DEFERRED_IO 2069 + select XEN_XENBUS_FRONTEND 2069 2070 default y 2070 2071 help 2071 2072 This driver implements the front-end of the Xen virtual
+1 -1
drivers/video/broadsheetfb.c
··· 470 470 par->read_reg = broadsheet_read_reg; 471 471 init_waitqueue_head(&par->waitq); 472 472 473 - info->flags = FBINFO_FLAG_DEFAULT; 473 + info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB; 474 474 475 475 info->fbdefio = &broadsheetfb_defio; 476 476 fb_deferred_io_init(info);
+3 -1
drivers/video/fb_defio.c
··· 144 144 static int fb_deferred_io_mmap(struct fb_info *info, struct vm_area_struct *vma) 145 145 { 146 146 vma->vm_ops = &fb_deferred_io_vm_ops; 147 - vma->vm_flags |= ( VM_IO | VM_RESERVED | VM_DONTEXPAND ); 147 + vma->vm_flags |= ( VM_RESERVED | VM_DONTEXPAND ); 148 + if (!(info->flags & FBINFO_VIRTFB)) 149 + vma->vm_flags |= VM_IO; 148 150 vma->vm_private_data = info; 149 151 return 0; 150 152 }
+1 -1
drivers/video/hecubafb.c
··· 253 253 par->send_command = apollo_send_command; 254 254 par->send_data = apollo_send_data; 255 255 256 - info->flags = FBINFO_FLAG_DEFAULT; 256 + info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB; 257 257 258 258 info->fbdefio = &hecubafb_defio; 259 259 fb_deferred_io_init(info);
+1 -1
drivers/video/metronomefb.c
··· 700 700 if (retval < 0) 701 701 goto err_free_irq; 702 702 703 - info->flags = FBINFO_FLAG_DEFAULT; 703 + info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB; 704 704 705 705 info->fbdefio = &metronomefb_defio; 706 706 fb_deferred_io_init(info);
+1 -1
drivers/video/xen-fbfront.c
··· 440 440 fb_info->fix.type = FB_TYPE_PACKED_PIXELS; 441 441 fb_info->fix.accel = FB_ACCEL_NONE; 442 442 443 - fb_info->flags = FBINFO_FLAG_DEFAULT; 443 + fb_info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB; 444 444 445 445 ret = fb_alloc_cmap(&fb_info->cmap, 256, 0); 446 446 if (ret < 0) {
+1
include/linux/fb.h
··· 763 763 * takes over; acceleration engine should be in a quiescent state */ 764 764 765 765 /* hints */ 766 + #define FBINFO_VIRTFB 0x0004 /* FB is System RAM, not device. */ 766 767 #define FBINFO_PARTIAL_PAN_OK 0x0040 /* otw use pan only for double-buffering */ 767 768 #define FBINFO_READS_FAST 0x0080 /* soft-copy faster than rendering */ 768 769