diff options
author | Linus Torvalds | 2009-12-10 09:34:40 -0800 |
---|---|---|
committer | Linus Torvalds | 2009-12-10 09:34:40 -0800 |
commit | eae6fa9b0c3e2cb49cc157e906dd0ac52cfd7ca5 (patch) | |
tree | 34f7d08d5f9913c3b5c3bca152953a173ded1e05 | |
parent | 02412f49f6a7e35753d9af49d92662fb562fc9fa (diff) | |
parent | df11303c90406426847255ba498607f15a472a0a (diff) |
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.
-rw-r--r-- | drivers/input/Kconfig | 1 | ||||
-rw-r--r-- | drivers/video/Kconfig | 1 | ||||
-rw-r--r-- | drivers/video/broadsheetfb.c | 2 | ||||
-rw-r--r-- | drivers/video/fb_defio.c | 4 | ||||
-rw-r--r-- | drivers/video/hecubafb.c | 2 | ||||
-rw-r--r-- | drivers/video/metronomefb.c | 2 | ||||
-rw-r--r-- | drivers/video/xen-fbfront.c | 2 | ||||
-rw-r--r-- | include/linux/fb.h | 1 |
8 files changed, 10 insertions, 5 deletions
diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig index 50af91ebd075..07c2cd43109c 100644 --- a/drivers/input/Kconfig +++ b/drivers/input/Kconfig @@ -165,6 +165,7 @@ config XEN_KBDDEV_FRONTEND tristate "Xen virtual keyboard and mouse support" depends on XEN_FBDEV_FRONTEND default y + select XEN_XENBUS_FRONTEND help This driver implements the front-end of the Xen virtual keyboard and mouse device driver. It communicates with a back-end diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 6b89eb55ed32..e9f193e6b27e 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -2066,6 +2066,7 @@ config XEN_FBDEV_FRONTEND select FB_SYS_IMAGEBLIT select FB_SYS_FOPS select FB_DEFERRED_IO + select XEN_XENBUS_FRONTEND default y help This driver implements the front-end of the Xen virtual diff --git a/drivers/video/broadsheetfb.c b/drivers/video/broadsheetfb.c index 509cb92e8731..df9ccb901d86 100644 --- a/drivers/video/broadsheetfb.c +++ b/drivers/video/broadsheetfb.c @@ -470,7 +470,7 @@ static int __devinit broadsheetfb_probe(struct platform_device *dev) par->read_reg = broadsheet_read_reg; init_waitqueue_head(&par->waitq); - info->flags = FBINFO_FLAG_DEFAULT; + info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB; info->fbdefio = &broadsheetfb_defio; fb_deferred_io_init(info); diff --git a/drivers/video/fb_defio.c b/drivers/video/fb_defio.c index e59c08320886..44ce908a478b 100644 --- a/drivers/video/fb_defio.c +++ b/drivers/video/fb_defio.c @@ -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) { 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; return 0; } diff --git a/drivers/video/hecubafb.c b/drivers/video/hecubafb.c index 0b4bffbe67c8..f9d77adf035d 100644 --- a/drivers/video/hecubafb.c +++ b/drivers/video/hecubafb.c @@ -253,7 +253,7 @@ static int __devinit hecubafb_probe(struct platform_device *dev) par->send_command = apollo_send_command; par->send_data = apollo_send_data; - info->flags = FBINFO_FLAG_DEFAULT; + info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB; info->fbdefio = &hecubafb_defio; fb_deferred_io_init(info); diff --git a/drivers/video/metronomefb.c b/drivers/video/metronomefb.c index df1f757a6161..661bfd20d194 100644 --- a/drivers/video/metronomefb.c +++ b/drivers/video/metronomefb.c @@ -700,7 +700,7 @@ static int __devinit metronomefb_probe(struct platform_device *dev) if (retval < 0) goto err_free_irq; - info->flags = FBINFO_FLAG_DEFAULT; + info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB; info->fbdefio = &metronomefb_defio; fb_deferred_io_init(info); diff --git a/drivers/video/xen-fbfront.c b/drivers/video/xen-fbfront.c index 54cd91610174..91a68e9eb66d 100644 --- a/drivers/video/xen-fbfront.c +++ b/drivers/video/xen-fbfront.c @@ -440,7 +440,7 @@ static int __devinit xenfb_probe(struct xenbus_device *dev, fb_info->fix.type = FB_TYPE_PACKED_PIXELS; 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); if (ret < 0) { diff --git a/include/linux/fb.h b/include/linux/fb.h index de9c722e7b90..369767bd873e 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -763,6 +763,7 @@ struct fb_tile_ops { * takes over; acceleration engine should be in a quiescent state */ /* 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_READS_FAST 0x0080 /* soft-copy faster than rendering */ |