1. 19 Jul, 2007 1 commit
  2. 18 Jul, 2007 2 commits
    • Hans J. Koch's avatar
      UIO: Add the User IO core code · beafc54c
      Hans J. Koch authored
      
      This interface allows the ability to write the majority of a driver in
      userspace with only a very small shell of a driver in the kernel itself.
      It uses a char device and sysfs to interact with a userspace process to
      process interrupts and control memory accesses.
      
      See the docbook documentation for more details on how to use this
      interface.
      
      From: Hans J. Koch <hjk@linutronix.de>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Benedikt Spranger <b.spranger@linutronix.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      beafc54c
    • Jeremy Fitzhardinge's avatar
      xen: Add grant table support · ad9a8612
      Jeremy Fitzhardinge authored
      
      Add Xen 'grant table' driver which allows granting of access to
      selected local memory pages by other virtual machines and,
      symmetrically, the mapping of remote memory pages which other virtual
      machines have granted access to.
      
      This driver is a prerequisite for many of the Xen virtual device
      drivers, which grant the 'device driver domain' restricted and
      temporary access to only those memory pages that are currently
      involved in I/O operations.
      Signed-off-by: default avatarJeremy Fitzhardinge <jeremy@xensource.com>
      Signed-off-by: default avatarIan Pratt <ian.pratt@xensource.com>
      Signed-off-by: default avatarChristian Limpach <Christian.Limpach@cl.cam.ac.uk>
      Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
      ad9a8612
  3. 10 Jul, 2007 1 commit
    • Anton Vorontsov's avatar
      [BATTERY] Universal power supply class (was: battery class) · 4a11b59d
      Anton Vorontsov authored
      
      This class is result of "external power" and "battery" classes merge,
      as suggested by David Woodhouse. He also implemented uevent support.
      
      Here how userspace seeing it now:
      
          	# ls /sys/class/power\ supply/
          	ac  main-battery  usb
      
          	# cat /sys/class/power\ supply/ac/type
          	AC
      
          	# cat /sys/class/power\ supply/usb/type
          	USB
      
          	# cat /sys/class/power\ supply/main-battery/type
          	Battery
      
          	# cat /sys/class/power\ supply/ac/online
          	1
      
          	# cat /sys/class/power\ supply/usb/online
          	0
      
          	# cat /sys/class/power\ supply/main-battery/status
          	Charging
      
          	# cat /sys/class/leds/h5400\:red-left/trigger
          	none h5400-radio timer hwtimer ac-online usb-online
          	main-battery-charging-or-full [main-battery-charging]
          	main-battery-full
      Signed-off-by: default avatarAnton Vorontsov <cbou@mail.ru>
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      4a11b59d
  4. 01 May, 2007 1 commit
    • David Brownell's avatar
      i2c: Add i2c_board_info and i2c_new_device() · 9c1600ed
      David Brownell authored
      
      This provides partial support for new-style I2C driver binding.  It builds
      on "struct i2c_board_info" declarations that identify I2C devices on a given
      board.  This is needed on systems with I2C devices that can't be fully probed
      and/or autoconfigured, such as many embedded Linux configurations where the
      way a given I2C device is wired may affect how it must be used.
      
      There are two models for declaring such devices:
      
       * LATE -- using a public function i2c_new_device().  This lets modules
         declare I2C devices found *AFTER* a given I2C adapter becomes available.
         
         For example, a PCI card could create adapters giving access to utility
         chips on that card, and this would be used to associate those chips with
         those adapters.
      
       * EARLY -- from arch_initcall() level code, using a non-exported function
         i2c_register_board_info().  This copies the declarations *BEFORE* such
         an i2c_adapter becomes available, arranging that i2c_new_device() will
         be called later when i2c-core registers the relevant i2c_adapter.
      
         For example, arch/.../.../board-*.c files would declare the I2C devices
         along with their platform data, and I2C devices would behave much like
         PNPACPI devices.  (That is, both enumerate from board-specific tables.)
      
      To match the exported i2c_new_device(), the previously-private function
      i2c_unregister_device() is now exported.
      
      Pending later patches using these new APIs, this is effectively a NOP.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
      9c1600ed
  5. 18 Apr, 2007 1 commit
  6. 20 Mar, 2007 1 commit
  7. 09 Mar, 2007 1 commit
  8. 11 Feb, 2007 1 commit
    • Miguel Ojeda Sandonis's avatar
      [PATCH] drivers: add LCD support · 70e84049
      Miguel Ojeda Sandonis authored
      
      Add support for auxiliary displays, the ks0108 LCD controller, the
      cfag12864b LCD and adds a framebuffer device: cfag12864bfb.
      
      - Add a "auxdisplay/" folder in "drivers/" for auxiliary display
        drivers.
      
      - Add support for the ks0108 LCD Controller as a device driver.  (uses
        parport interface)
      
      - Add support for the cfag12864b LCD as a device driver.  (uses ks0108
        LCD Controller driver)
      
      - Add a framebuffer device called cfag12864bfb.  (uses cfag12864b LCD
        driver)
      
      - Add the usual Documentation, includes, Makefiles, Kconfigs,
        MAINTAINERS, CREDITS...
      
      - Miguel Ojeda will maintain all the stuff above.
      
      [rdunlap@xenotime.net: workqueue fixups]
      [akpm@osdl.org: kconfig fix]
      Signed-off-by: default avatarMiguel Ojeda Sandonis <maxextreme@gmail.com>
      Cc: Greg KH <greg@kroah.com>
      Acked-by: default avatarPaulo Marques <pmarques@grupopie.com>
      Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      70e84049
  9. 09 Feb, 2007 1 commit
  10. 10 Dec, 2006 1 commit
    • Avi Kivity's avatar
      [PATCH] kvm: userspace interface · 6aa8b732
      Avi Kivity authored
      web site: http://kvm.sourceforge.net
      
      mailing list: kvm-devel@lists.sourceforge.net
        (http://lists.sourceforge.net/lists/listinfo/kvm-devel
      
      )
      
      The following patchset adds a driver for Intel's hardware virtualization
      extensions to the x86 architecture.  The driver adds a character device
      (/dev/kvm) that exposes the virtualization capabilities to userspace.  Using
      this driver, a process can run a virtual machine (a "guest") in a fully
      virtualized PC containing its own virtual hard disks, network adapters, and
      display.
      
      Using this driver, one can start multiple virtual machines on a host.
      
      Each virtual machine is a process on the host; a virtual cpu is a thread in
      that process.  kill(1), nice(1), top(1) work as expected.  In effect, the
      driver adds a third execution mode to the existing two: we now have kernel
      mode, user mode, and guest mode.  Guest mode has its own address space mapping
      guest physical memory (which is accessible to user mode by mmap()ing
      /dev/kvm).  Guest mode has no access to any I/O devices; any such access is
      intercepted and directed to user mode for emulation.
      
      The driver supports i386 and x86_64 hosts and guests.  All combinations are
      allowed except x86_64 guest on i386 host.  For i386 guests and hosts, both pae
      and non-pae paging modes are supported.
      
      SMP hosts and UP guests are supported.  At the moment only Intel
      hardware is supported, but AMD virtualization support is being worked on.
      
      Performance currently is non-stellar due to the naive implementation of the
      mmu virtualization, which throws away most of the shadow page table entries
      every context switch.  We plan to address this in two ways:
      
      - cache shadow page tables across tlb flushes
      - wait until AMD and Intel release processors with nested page tables
      
      Currently a virtual desktop is responsive but consumes a lot of CPU.  Under
      Windows I tried playing pinball and watching a few flash movies; with a recent
      CPU one can hardly feel the virtualization.  Linux/X is slower, probably due
      to X being in a separate process.
      
      In addition to the driver, you need a slightly modified qemu to provide I/O
      device emulation and the BIOS.
      
      Caveats (akpm: might no longer be true):
      
      - The Windows install currently bluescreens due to a problem with the
        virtual APIC.  We are working on a fix.  A temporary workaround is to
        use an existing image or install through qemu
      - Windows 64-bit does not work.  That's also true for qemu, so it's
        probably a problem with the device model.
      
      [bero@arklinux.org: build fix]
      [simon.kagstrom@bth.se: build fix, other fixes]
      [uril@qumranet.com: KVM: Expose interrupt bitmap]
      [akpm@osdl.org: i386 build fix]
      [mingo@elte.hu: i386 fixes]
      [rdreier@cisco.com: add log levels to all printks]
      [randy.dunlap@oracle.com: Fix sparse NULL and C99 struct init warnings]
      [anthony@codemonkey.ws: KVM: AMD SVM: 32-bit host support]
      Signed-off-by: default avatarYaniv Kamay <yaniv@qumranet.com>
      Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
      Cc: Simon Kagstrom <simon.kagstrom@bth.se>
      Cc: Bernhard Rosenkraenzer <bero@arklinux.org>
      Signed-off-by: default avatarUri Lublin <uril@qumranet.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Roland Dreier <rolandd@cisco.com>
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarAnthony Liguori <anthony@codemonkey.ws>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      6aa8b732
  11. 08 Dec, 2006 1 commit
  12. 04 Dec, 2006 2 commits
  13. 10 Aug, 2006 1 commit
  14. 26 Jun, 2006 1 commit
  15. 18 Jun, 2006 1 commit
  16. 31 Mar, 2006 2 commits
  17. 27 Mar, 2006 1 commit
  18. 19 Feb, 2006 1 commit
  19. 26 Jan, 2006 1 commit
  20. 18 Jan, 2006 1 commit
  21. 13 Jan, 2006 1 commit
    • David Brownell's avatar
      [PATCH] spi: simple SPI framework · 8ae12a0d
      David Brownell authored
      
      This is the core of a small SPI framework, implementing the model of a
      queue of messages which complete asynchronously (with thin synchronous
      wrappers on top).
      
        - It's still less than 2KB of ".text" (ARM).  If there's got to be a
          mid-layer for something so simple, that's the right size budget.  :)
      
        - The guts use board-specific SPI device tables to build the driver
          model tree.  (Hardware probing is rarely an option.)
      
        - This version of Kconfig includes no drivers.  At this writing there
          are two known master controller drivers (PXA/SSP, OMAP MicroWire)
          and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
          mentions of other drivers in development.
      
        - No userspace API.  There are several implementations to compare.
          Implement them like any other driver, and bind them with sysfs.
      
      The changes from last version posted to LKML (on 11-Nov-2005) are minor,
      and include:
      
        - One bugfix (removes a FIXME), with the visible effect of making device
          names be "spiB.C" where B is the bus number and C is the chipselect.
      
        - The "caller provides DMA mappings" mechanism now has kerneldoc, for
          DMA drivers that want to be fancy.
      
        - Hey, the framework init can be subsys_init.  Even though board init
          logic fires earlier, at arch_init ... since the framework init is
          for driver support, and the board init support uses static init.
      
        - Various additional spec/doc clarifications based on discussions
          with other folk.  It adds a brief "thank you" at the end, for folk
          who've helped nudge this framework into existence.
      
      As I've said before, I think that "protocol tweaking" is the main support
      that this driver framework will need to evolve.
      
      From: Mark Underwood <basicmark@yahoo.com>
      
        Update the SPI framework to remove a potential priority inversion case by
        reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      8ae12a0d
  22. 07 Jan, 2006 1 commit
  23. 03 Dec, 2005 1 commit
    • Linus Torvalds's avatar
      Link USB drivers later in the kernel · 6015d2c4
      Linus Torvalds authored
      We want to link the "regular" SCSI drivers before the USB storage
      driver, since historically we've always detected internal SCSI disks
      before the external USB storage modules.
      
      The link order matters for initcall ordering, and this got broken by
      mistake by commit 7586269c
      
       which moved
      the USB host controller PCI quirk handling around.
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      6015d2c4
  24. 07 Nov, 2005 2 commits
  25. 28 Oct, 2005 1 commit
    • David Brownell's avatar
      [PATCH] USB: move handoff code · 7586269c
      David Brownell authored
      
      This moves the PCI quirk handling for USB host controllers from the
      PCI directory to the USB directory.  Follow-on patches will need to:
      
      (a) merge these copies with the originals in the HCD reset methods.
      they don't wholly agree, despite doing the very same thing; and
      
      (b) eventually change it so "usb-handoff" is the default, to help
      get more robust USB/BIOS/input/... interactions.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/Makefile              |    2
       drivers/pci/quirks.c          |  253 ---------------------------------------
       drivers/usb/Makefile          |    1
       drivers/usb/host/Makefile     |    5
       drivers/usb/host/pci-quirks.c |  272 ++++++++++++++++++++++++++++++++++++++++++
       5 files changed, 280 insertions(+), 253 deletions(-)
      7586269c
  26. 11 Sep, 2005 1 commit
    • Evgeniy Polyakov's avatar
      [NET]: Add netlink connector. · 7672d0b5
      Evgeniy Polyakov authored
      
      Kernel connector - new userspace <-> kernel space easy to use
      communication module which implements easy to use bidirectional
      message bus using netlink as it's backend.  Connector was created to
      eliminate complex skb handling both in send and receive message bus
      direction.
      
      Connector driver adds possibility to connect various agents using as
      one of it's backends netlink based network.  One must register
      callback and identifier. When driver receives special netlink message
      with appropriate identifier, appropriate callback will be called.
      
      From the userspace point of view it's quite straightforward:
      
      	socket();
      	bind();
      	send();
      	recv();
      
      But if kernelspace want to use full power of such connections, driver
      writer must create special sockets, must know about struct sk_buff
      handling...  Connector allows any kernelspace agents to use netlink
      based networking for inter-process communication in a significantly
      easier way:
      
      int cn_add_callback(struct cb_id *id, char *name, void (*callback) (void *));
      void cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask);
      
      struct cb_id
      {
      	__u32			idx;
      	__u32			val;
      };
      
      idx and val are unique identifiers which must be registered in
      connector.h for in-kernel usage.  void (*callback) (void *) - is a
      callback function which will be called when message with above idx.val
      will be received by connector core.
      
      Using connector completely hides low-level transport layer from it's
      users.
      
      Connector uses new netlink ability to have many groups in one socket.
      
      [ Incorporating many cleanups and fixes by myself and
        Andrew Morton -DaveM ]
      Signed-off-by: default avatarEvgeniy Polyakov <johnpol@2ka.mipt.ru>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7672d0b5
  27. 24 Aug, 2005 1 commit
  28. 18 Aug, 2005 1 commit
  29. 11 Jul, 2005 1 commit
  30. 21 Jun, 2005 1 commit
  31. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4