1. 22 8月, 2008 11 次提交
    • A
      husb: remove disconnect detection timer (Max Krasnyansky) · 24772c1e
      aliguori 提交于
      On top of my previous USB patchset.
      
      Async completion handler can detect device disconnects without polling.
      We do not need the timer anymore.
      Signed-off-by: NMax Krasnyansky <maxk@kernel.org>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5052 c046a42c-6fe2-441c-8c8c-71466251a162
      24772c1e
    • A
      husb: rewrite Linux host USB layer, fully async operation (Max Krasnyansky) · 64838171
      aliguori 提交于
      This is a follow up to the async UHCI patch. Both BULK and ISOC transactions
      are now fully asynchrounous. I left CONTROL synchronous for now, ideally
      we want it to be async too and it should not be that hard to do now.
      
      This patch obviously requires UHCI patch. The combo has been tested with
      various devices. See the UHCI patch description for list of the devices.
      Most of the testing was done with the KVM flavor of QEMU.
      Signed-off-by: NMax Krasnyansky <maxk@kernel.org>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5051 c046a42c-6fe2-441c-8c8c-71466251a162
      64838171
    • A
      uhci: rewrite UHCI emulator, fully async operation with multiple outstanding... · 54f254f9
      aliguori 提交于
      uhci: rewrite UHCI emulator, fully async operation with multiple outstanding transactions (Max Krasnyansky)
      
      This is esentially a re-write of the QEMU UHCI layer. My initial goal
      was to support fully async operation with multiple outstanding async
      transactions. Along the way I realized that I can greatly simplify
      and cleanup the overall logic. There was a lot of duplicate and confusing
      code in the UHCI data structure parsing and other places.
      We were actually violating UHCI spec in handling async ISOC transaction
      (host controller is not supposed to write into the frame pointer).
      
      The reason I wanted to support fully async operation is because current
      synchronous version is unusable with most devices exported from host
      (via usb-linux.c). Transactions take a long time and the whole VM becomes
      slow as hell.
      
      Current async support is very rudimentory and for the most part
      non-functional. Single transaction at a time is simply not enough. I have
      a device for which XP driver submits both IN and OUT packets at the same
      time. IN packet always times out unless OUT packet makes it to the device.
      Hence we must be able to process both in order for that device to work.
      
      The new code is backwards compatible and was first tested agains original
      synchronous usb-linux.c and builtin usb devices like tablet which is also
      synchronous. Rewrite of the usb-linux.c is coming up next.
      
      Async support was tested against various XP versions (ie XP, SP2, SP3) and
      a bunch of different USB devices: serial port controllers, mice, keyboard,
      JTAG dongles (from Xilinx and Altera).
      
      ISOC support was only lighly tested and needs more work. It's not any worse
      than current code though.
      
      UHCI parser changes are probably somewhat hard to review without the
      understanding of the UHCI spec.
      The async design should be fairly easy to follow. Basically we have a list
      of async objects for each pending transfer. Async objects are tagged with
      the original TD (transfer descriptor) address and token. We now support
      unlimited number of outstanding isoc and one outstanding bulk/intr/ctrl
      transfer per QH (queue head). UHCI spec does not have a clear protocol for
      the cancelation of the trasfer requests. Driver can yank out TDs on any
      frame boundary. In oder to handle that I added somewhat fancy TD validation
      logic logic to avoid unnecessary cancelations.
      Signed-off-by: NMax Krasnyansky <maxk@kernel.org>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5050 c046a42c-6fe2-441c-8c8c-71466251a162
      54f254f9
    • A
      usb: generic packet handler cleanup and documentation (Max Krasnyansky) · 89b9b79f
      aliguori 提交于
      A bit better documentation of the USB device API, namely
      return codes.
      Rewrite of usb_generic_handle_packet() to make it more
      reable and easier to follow.
      Signed-off-by: NMax Krasnyansky <maxk@kernel.org>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5049 c046a42c-6fe2-441c-8c8c-71466251a162
      89b9b79f
    • A
      husb: support for USB host device auto connect (Max Krasnyansky) · 4b096fc9
      aliguori 提交于
      QEMU can now automatically grab host USB devices that match the filter.
      For now I just extended 'host:X.Y' and 'host:VID:PID' syntax to handle
      wildcards. So for example if you do something like
         usb_add host:5.*
      QEMU will automatically grab any non-hub device with host address 5.*.
      
      Same with the 'host:PID:*', we grab any device that matches PID.
      
      Filtering itself is very generic so we can probably add more elaborate
      syntax like 'host:BUS.ADDR:VID:PID'. So that we can do 'host:5.*:6000:*'.
      
      Anyway, it's implemented using a periodic timer that scans host devices
      and grabs those that match the filter. Timer is started when the first
      filter is added.
      
      We now keep the list of all host devices that we grabbed to make sure that
      we do not grab the same device twice.
      
      btw It's currently possible to grab the same host device more than once.
      ie You can just do "usb_add host:1.1" more than once, which of course does
      not work. So this patch fixes that issue too.
      
      Along with auto disconnect patch that I send a minute ago the setup is very
      seamless now. You can just allocate some usb ports to the VMs and plug/unplug
      devices at any time.
      Signed-off-by: NMax Krasnyansky <maxk@kernel.org>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5048 c046a42c-6fe2-441c-8c8c-71466251a162
      4b096fc9
    • A
      husb: support for USB host device auto disconnect (Max Krasnyansky) · 1f3870ab
      aliguori 提交于
      I got really annoyed by the fact that you have to manually do
      usb_del in the monitor when host device is unplugged and decided
      to fix it :)
      
      Basically we now automatically remove guest USB device
      when the actual host device is disconnected.
      
      At first I've extended set_fd_handlerX() stuff to support checking
      for exceptions on fds. But unfortunately usbfs code does not wake up
      user-space process when device is removed, which means we need a
      timer to periodically check if device is still there. So I removed
      fd exception stuff and implemented it with the timer.
      Signed-off-by: NMax Krasnyansky <maxk@kernel.org>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5047 c046a42c-6fe2-441c-8c8c-71466251a162
      1f3870ab
    • A
      Fix windows build · cd01b4a3
      aliguori 提交于
      Right now, the Windows build is broken because of NBD.  Using a mingw32 cross
      compiler is also badly broken.
      
      This patch fixes the Windows build by stubbing out NBD support until someone
      fixes it for Windows.  It also santizing the mingw32 cross compiler support
      by replacing the --enable-mingw32 option with a compiler check to determine
      if we're on windows or not.
      
      Also remove the weird SDL pseudo-detection for mingw32 using a cross compiler.
      The hardcoded sdl-config name is seemly arbitrary.  If you cross compiler SDL
      correctly and modify your PATH variable appropriately, it will Just Work when
      cross compiling.
      
      The audio driver detection is also broken for cross compiling so you have to
      specify the audio drivers explicitly for now.
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      
      
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5046 c046a42c-6fe2-441c-8c8c-71466251a162
      cd01b4a3
    • B
      Fix OSS on OpenBSD · 2f6a1ab0
      blueswir1 提交于
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5045 c046a42c-6fe2-441c-8c8c-71466251a162
      2f6a1ab0
    • B
      Fix OpenBSD linker warnings · 363a37d5
      blueswir1 提交于
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5044 c046a42c-6fe2-441c-8c8c-71466251a162
      363a37d5
    • B
      Fix wrwim masking (Luis Pureza) · c93e7817
      blueswir1 提交于
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5043 c046a42c-6fe2-441c-8c8c-71466251a162
      c93e7817
    • B
      Use initial CPU definition structure for some CPU fields instead of copying · 5578ceab
      blueswir1 提交于
      them around, based on patch by Luis Pureza.
      
      
      git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5042 c046a42c-6fe2-441c-8c8c-71466251a162
      5578ceab
  2. 21 8月, 2008 11 次提交
  3. 20 8月, 2008 2 次提交
  4. 19 8月, 2008 4 次提交
  5. 18 8月, 2008 6 次提交
  6. 17 8月, 2008 5 次提交
  7. 16 8月, 2008 1 次提交