Merge branch 'xen/fbdev' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 10 Dec 2009 17:34:40 +0000 (09:34 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 10 Dec 2009 17:34:40 +0000 (09:34 -0800)
* '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.

1  2 
drivers/input/Kconfig
drivers/video/Kconfig
drivers/video/fb_defio.c
include/linux/fb.h

diff --combined drivers/input/Kconfig
@@@ -8,7 -8,7 +8,7 @@@ menu "Input device support
  config INPUT
        tristate "Generic input layer (needed for keyboard, mouse, ...)" if EMBEDDED
        default y
 -      ---help---
 +      help
          Say Y here if you have any input device (mouse, keyboard, tablet,
          joystick, steering wheel ...) connected to your system and want
          it to be available to applications. This includes standard PS/2
@@@ -27,7 -27,8 +27,7 @@@ if INPU
  
  config INPUT_FF_MEMLESS
        tristate "Support for memoryless force-feedback devices"
 -      default n
 -      ---help---
 +      help
          Say Y here if you have memoryless force-feedback input device
          such as Logitech WingMan Force 3D, ThrustMaster FireStorm Dual
          Power 2, or similar. You will also need to enable hardware-specific
@@@ -51,25 -52,12 +51,25 @@@ config INPUT_POLLDE
          To compile this driver as a module, choose M here: the
          module will be called input-polldev.
  
 +config INPUT_SPARSEKMAP
 +      tristate "Sparse keymap support library"
 +      help
 +        Say Y here if you are using a driver for an input
 +        device that uses sparse keymap. This option is only
 +        useful for out-of-tree drivers since in-tree drivers
 +        select it automatically.
 +
 +        If unsure, say N.
 +
 +        To compile this driver as a module, choose M here: the
 +        module will be called sparse-keymap.
 +
  comment "Userland interfaces"
  
  config INPUT_MOUSEDEV
        tristate "Mouse interface" if EMBEDDED
        default y
 -      ---help---
 +      help
          Say Y here if you want your mouse to be accessible as char devices
          13:32+ - /dev/input/mouseX and 13:63 - /dev/input/mice as an
          emulated IntelliMouse Explorer PS/2 mouse. That way, all user space
@@@ -85,7 -73,7 +85,7 @@@ config INPUT_MOUSEDEV_PSAU
        bool "Provide legacy /dev/psaux device"
        default y
        depends on INPUT_MOUSEDEV
 -      ---help---
 +      help
          Say Y here if you want your mouse also be accessible as char device
          10:1 - /dev/psaux. The data available through /dev/psaux is exactly
          the same as the data from /dev/input/mice.
@@@ -115,7 -103,7 +115,7 @@@ config INPUT_MOUSEDEV_SCREEN_
  
  config INPUT_JOYDEV
        tristate "Joystick interface"
 -      ---help---
 +      help
          Say Y here if you want your joystick or gamepad to be
          accessible as char device 13:0+ - /dev/input/jsX device.
  
@@@ -137,7 -125,7 +137,7 @@@ config INPUT_EVDE
  
  config INPUT_EVBUG
        tristate "Event debugging"
 -      ---help---
 +      help
          Say Y here if you have a problem with the input subsystem and
          want all events (keypresses, mouse movements), to be output to
          the system log. While this is useful for debugging, it's also
  config INPUT_APMPOWER
        tristate "Input Power Event -> APM Bridge" if EMBEDDED
        depends on INPUT && APM_EMULATION
 -      ---help---
 +      help
          Say Y here if you want suspend key events to trigger a user
          requested suspend through APM. This is useful on embedded
          systems where such behaviour is desired without userspace
@@@ -165,6 -153,7 +165,7 @@@ config XEN_KBDDEV_FRONTEN
        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 --combined drivers/video/Kconfig
@@@ -5,13 -5,8 +5,13 @@@
  menu "Graphics support"
        depends on HAS_IOMEM
  
 +config HAVE_FB_ATMEL
 +      bool
 +
  source "drivers/char/agp/Kconfig"
  
 +source "drivers/gpu/vga/Kconfig"
 +
  source "drivers/gpu/drm/Kconfig"
  
  config VGASTATE
@@@ -940,7 -935,7 +940,7 @@@ config FB_S1D13XX
  
  config FB_ATMEL
        tristate "AT91/AT32 LCD Controller support"
 -      depends on FB && (ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91CAP9 || AVR32)
 +      depends on FB && HAVE_FB_ATMEL
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
@@@ -956,7 -951,7 +956,7 @@@ config FB_INTSRA
  
  config FB_ATMEL_STN
        bool "Use a STN display with AT91/AT32 LCD Controller"
 -      depends on FB_ATMEL && MACH_AT91SAM9261EK
 +      depends on FB_ATMEL && (MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK)
        default n
        help
          Say Y if you want to connect a STN LCD display to the AT91/AT32 LCD
@@@ -1278,6 -1273,26 +1278,6 @@@ config FB_MATROX_MAVE
          painting procedures (the secondary head does not use acceleration
          engine).
  
 -config FB_MATROX_MULTIHEAD
 -      bool "Multihead support"
 -      depends on FB_MATROX
 -      ---help---
 -        Say Y here if you have more than one (supported) Matrox device in
 -        your computer and you want to use all of them for different monitors
 -        ("multihead"). If you have only one device, you should say N because
 -        the driver compiled with Y is larger and a bit slower, especially on
 -        ia32 (ix86).
 -
 -        If you said M to "Matrox unified accelerated driver" and N here, you
 -        will still be able to use several Matrox devices simultaneously:
 -        insert several instances of the module matroxfb into the kernel
 -        with insmod, supplying the parameter "dev=N" where N is 0, 1, etc.
 -        for the different Matrox devices. This method is slightly faster but
 -        uses 40 KB of kernel memory per Matrox card.
 -
 -        There is no need for enabling 'Matrox multihead support' if you have
 -        only one Matrox card in the box.
 -
  config FB_RADEON
        tristate "ATI Radeon display support"
        depends on FB && PCI
@@@ -1852,7 -1867,7 +1852,7 @@@ config FB_W10
  
  config FB_SH_MOBILE_LCDC
        tristate "SuperH Mobile LCDC framebuffer support"
 -      depends on FB && SUPERH
 +      depends on FB && SUPERH && HAVE_CLK
        select FB_SYS_FILLRECT
        select FB_SYS_COPYAREA
        select FB_SYS_IMAGEBLIT
@@@ -2024,17 -2039,6 +2024,17 @@@ config FB_SH776
          and 8, 15 or 16 bpp color; 90 degrees clockwise display rotation for
          panels <= 320 pixel horizontal resolution.
  
 +config FB_DA8XX
 +      tristate "DA8xx/OMAP-L1xx Framebuffer support"
 +      depends on FB && ARCH_DAVINCI_DA8XX
 +      select FB_CFB_FILLRECT
 +      select FB_CFB_COPYAREA
 +      select FB_CFB_IMAGEBLIT
 +      ---help---
 +        This is the frame buffer device driver for the TI LCD controller
 +        found on DA8xx/OMAP-L1xx SoCs.
 +        If unsure, say N.
 +
  config FB_VIRTUAL
        tristate "Virtual Frame Buffer support (ONLY FOR TESTING!)"
        depends on FB
@@@ -2066,6 -2070,7 +2066,7 @@@ config XEN_FBDEV_FRONTEN
        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
@@@ -2111,32 -2116,13 +2112,32 @@@ config FB_MB862XX_LIM
        ---help---
          Framebuffer support for Fujitsu Lime GDC on host CPU bus.
  
 +config FB_EP93XX
 +      tristate "EP93XX frame buffer support"
 +      depends on FB && ARCH_EP93XX
 +      select FB_CFB_FILLRECT
 +      select FB_CFB_COPYAREA
 +      select FB_CFB_IMAGEBLIT
 +      ---help---
 +        Framebuffer driver for the Cirrus Logic EP93XX series of processors.
 +        This driver is also available as a module. The module will be called
 +        ep93xx-fb.
 +
  config FB_PRE_INIT_FB
        bool "Don't reinitialize, use bootloader's GDC/Display configuration"
 -      depends on FB_MB862XX_LIME
 +      depends on FB && FB_MB862XX_LIME
        ---help---
          Select this option if display contents should be inherited as set by
          the bootloader.
  
 +config FB_MSM
 +      tristate
 +      depends on FB && ARCH_MSM
 +      select FB_CFB_FILLRECT
 +      select FB_CFB_COPYAREA
 +      select FB_CFB_IMAGEBLIT
 +      default y
 +
  config FB_MX3
        tristate "MX3 Framebuffer support"
        depends on FB && MX3_IPU
diff --combined drivers/video/fb_defio.c
@@@ -71,7 -71,7 +71,7 @@@ int fb_deferred_io_fsync(struct file *f
  {
        struct fb_info *info = file->private_data;
  
 -      /* Skip if deferred io is complied-in but disabled on this fbdev */
 +      /* Skip if deferred io is compiled-in but disabled on this fbdev */
        if (!info->fbdefio)
                return 0;
  
@@@ -125,7 -125,7 +125,7 @@@ page_already_added
        return 0;
  }
  
 -static struct vm_operations_struct fb_deferred_io_vm_ops = {
 +static const struct vm_operations_struct fb_deferred_io_vm_ops = {
        .fault          = fb_deferred_io_fault,
        .page_mkwrite   = fb_deferred_io_mkwrite,
  };
@@@ -144,7 -144,9 +144,9 @@@ static const struct address_space_opera
  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 --combined include/linux/fb.h
@@@ -133,7 -133,6 +133,7 @@@ struct dentry
  #define FB_ACCEL_NEOMAGIC_NM2230 96   /* NeoMagic NM2230              */
  #define FB_ACCEL_NEOMAGIC_NM2360 97   /* NeoMagic NM2360              */
  #define FB_ACCEL_NEOMAGIC_NM2380 98   /* NeoMagic NM2380              */
 +#define FB_ACCEL_PXA3XX                99     /* PXA3xx                       */
  
  #define FB_ACCEL_SAVAGE4        0x80  /* S3 Savage4                   */
  #define FB_ACCEL_SAVAGE3D       0x81  /* S3 Savage3D                  */
@@@ -669,6 -668,12 +669,6 @@@ struct fb_ops 
        /* perform fb specific mmap */
        int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma);
  
 -      /* save current hardware state */
 -      void (*fb_save_state)(struct fb_info *info);
 -
 -      /* restore saved state */
 -      void (*fb_restore_state)(struct fb_info *info);
 -
        /* get capability given var */
        void (*fb_get_caps)(struct fb_info *info, struct fb_blit_caps *caps,
                            struct fb_var_screeninfo *var);
@@@ -763,6 -768,7 +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 */