Commit eae6fa9b authored by Linus Torvalds's avatar Linus Torvalds

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.
parents 02412f49 df11303c
...@@ -165,6 +165,7 @@ config XEN_KBDDEV_FRONTEND ...@@ -165,6 +165,7 @@ config XEN_KBDDEV_FRONTEND
tristate "Xen virtual keyboard and mouse support" tristate "Xen virtual keyboard and mouse support"
depends on XEN_FBDEV_FRONTEND depends on XEN_FBDEV_FRONTEND
default y default y
select XEN_XENBUS_FRONTEND
help help
This driver implements the front-end of the Xen virtual This driver implements the front-end of the Xen virtual
keyboard and mouse device driver. It communicates with a back-end keyboard and mouse device driver. It communicates with a back-end
......
...@@ -2066,6 +2066,7 @@ config XEN_FBDEV_FRONTEND ...@@ -2066,6 +2066,7 @@ config XEN_FBDEV_FRONTEND
select FB_SYS_IMAGEBLIT select FB_SYS_IMAGEBLIT
select FB_SYS_FOPS select FB_SYS_FOPS
select FB_DEFERRED_IO select FB_DEFERRED_IO
select XEN_XENBUS_FRONTEND
default y default y
help help
This driver implements the front-end of the Xen virtual This driver implements the front-end of the Xen virtual
......
...@@ -470,7 +470,7 @@ static int __devinit broadsheetfb_probe(struct platform_device *dev) ...@@ -470,7 +470,7 @@ static int __devinit broadsheetfb_probe(struct platform_device *dev)
par->read_reg = broadsheet_read_reg; par->read_reg = broadsheet_read_reg;
init_waitqueue_head(&par->waitq); init_waitqueue_head(&par->waitq);
info->flags = FBINFO_FLAG_DEFAULT; info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB;
info->fbdefio = &broadsheetfb_defio; info->fbdefio = &broadsheetfb_defio;
fb_deferred_io_init(info); fb_deferred_io_init(info);
......
...@@ -144,7 +144,9 @@ static const struct address_space_operations fb_deferred_io_aops = { ...@@ -144,7 +144,9 @@ static const struct address_space_operations fb_deferred_io_aops = {
static int fb_deferred_io_mmap(struct fb_info *info, struct vm_area_struct *vma) static int fb_deferred_io_mmap(struct fb_info *info, struct vm_area_struct *vma)
{ {
vma->vm_ops = &fb_deferred_io_vm_ops; vma->vm_ops = &fb_deferred_io_vm_ops;
vma->vm_flags |= ( VM_IO | VM_RESERVED | VM_DONTEXPAND ); vma->vm_flags |= ( VM_RESERVED | VM_DONTEXPAND );
if (!(info->flags & FBINFO_VIRTFB))
vma->vm_flags |= VM_IO;
vma->vm_private_data = info; vma->vm_private_data = info;
return 0; return 0;
} }
......
...@@ -253,7 +253,7 @@ static int __devinit hecubafb_probe(struct platform_device *dev) ...@@ -253,7 +253,7 @@ static int __devinit hecubafb_probe(struct platform_device *dev)
par->send_command = apollo_send_command; par->send_command = apollo_send_command;
par->send_data = apollo_send_data; par->send_data = apollo_send_data;
info->flags = FBINFO_FLAG_DEFAULT; info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB;
info->fbdefio = &hecubafb_defio; info->fbdefio = &hecubafb_defio;
fb_deferred_io_init(info); fb_deferred_io_init(info);
......
...@@ -700,7 +700,7 @@ static int __devinit metronomefb_probe(struct platform_device *dev) ...@@ -700,7 +700,7 @@ static int __devinit metronomefb_probe(struct platform_device *dev)
if (retval < 0) if (retval < 0)
goto err_free_irq; goto err_free_irq;
info->flags = FBINFO_FLAG_DEFAULT; info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB;
info->fbdefio = &metronomefb_defio; info->fbdefio = &metronomefb_defio;
fb_deferred_io_init(info); fb_deferred_io_init(info);
......
...@@ -440,7 +440,7 @@ static int __devinit xenfb_probe(struct xenbus_device *dev, ...@@ -440,7 +440,7 @@ static int __devinit xenfb_probe(struct xenbus_device *dev,
fb_info->fix.type = FB_TYPE_PACKED_PIXELS; fb_info->fix.type = FB_TYPE_PACKED_PIXELS;
fb_info->fix.accel = FB_ACCEL_NONE; fb_info->fix.accel = FB_ACCEL_NONE;
fb_info->flags = FBINFO_FLAG_DEFAULT; fb_info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB;
ret = fb_alloc_cmap(&fb_info->cmap, 256, 0); ret = fb_alloc_cmap(&fb_info->cmap, 256, 0);
if (ret < 0) { if (ret < 0) {
......
...@@ -763,6 +763,7 @@ struct fb_tile_ops { ...@@ -763,6 +763,7 @@ struct fb_tile_ops {
* takes over; acceleration engine should be in a quiescent state */ * takes over; acceleration engine should be in a quiescent state */
/* hints */ /* hints */
#define FBINFO_VIRTFB 0x0004 /* FB is System RAM, not device. */
#define FBINFO_PARTIAL_PAN_OK 0x0040 /* otw use pan only for double-buffering */ #define FBINFO_PARTIAL_PAN_OK 0x0040 /* otw use pan only for double-buffering */
#define FBINFO_READS_FAST 0x0080 /* soft-copy faster than rendering */ #define FBINFO_READS_FAST 0x0080 /* soft-copy faster than rendering */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment