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