Skip to content
  1. Aug 09, 2012
  2. Aug 07, 2012
    • Roger Quadros's avatar
      usb: musb: use DMA mode 1 whenever possible · 4f3e8d26
      Roger Quadros authored
      
      
      Do not rely on any hints from gadget drivers and use DMA mode 1
      whenever we expect data of at least the endpoint's packet size and
      have not yet received a short packet.
      
      The last packet if short is always transferred using DMA mode 0.
      
      This patch fixes USB throughput issues in mass storage mode for
      host to device transfers.
      
      Signed-off-by: default avatarRoger Quadros <rogerq@ti.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      4f3e8d26
    • Virupax Sadashivpetimath's avatar
      usb: musb: host: Handle highmem in PIO mode · 8e8a5516
      Virupax Sadashivpetimath authored
      
      
      In case of USB bulk transfer, when himem page
      is received, the usb_sg_init function sets the
      urb transfer buffer to NULL. When such URB
      transfer is handled, kernel crashes in PIO mode.
      Handle this by mapping the highmem buffer in PIO mode.
      
      Signed-off-by: default avatarVirupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com>
      Signed-off-by: default avatarPraveena NADAHALLY <praveen.nadahally@stericsson.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      8e8a5516
    • Brian Downing's avatar
      usb: musb: Fix bad call to kfree() in musb_free · decadacb
      Brian Downing authored
      
      
      Commit 62285963 (usb: musb: drop a
      gigantic amount of ifdeferry) included this change:
      
          @@ -1901,11 +1844,7 @@ static void musb_free(struct musb *musb)
                          dma_controller_destroy(c);
                  }
      
          -#ifdef CONFIG_USB_MUSB_HDRC_HCD
          -       usb_put_hcd(musb_to_hcd(musb));
          -#else
                  kfree(musb);
          -#endif
           }
      
           /*
      
      Since musb comes from struct usb_hcd's hcd_priv, which is allocated on
      the end of that struct, kfree'ing it is not going to work.  Replace
      kfree(musb) with usb_put_hcd(musb_to_hcd(musb)), which appears to be
      the right thing to do here.
      
      Signed-off-by: default avatarBrian Downing <bdowning@lavos.net>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      decadacb
    • Felipe Balbi's avatar
      usb: musb: fix sparse warnings · a156544b
      Felipe Balbi authored
      
      
      The following warnings are fixed:
      
      drivers/usb/musb/musb_core.c:357:6: warning: symbol 'musb_otg_timer_func' was not declared. Should it be static?
      drivers/usb/musb/musb_core.c:1339:27: warning: incorrect type in initializer (different address spaces)
      drivers/usb/musb/musb_core.c:1339:27:    expected void *mbase
      drivers/usb/musb/musb_core.c:1339:27:    got void [noderef] <asn:2>*mregs
      drivers/usb/musb/musb_core.c:1347:17: warning: incorrect type in argument 1 (different address spaces)
      drivers/usb/musb/musb_core.c:1347:17:    expected void [noderef] <asn:2>*addr
      drivers/usb/musb/musb_core.c:1347:17:    got void *mbase
      drivers/usb/musb/musb_core.h:487:27: warning: incorrect type in initializer (different address spaces)
      drivers/usb/musb/musb_core.h:487:27:    expected void *mbase
      drivers/usb/musb/musb_core.h:487:27:    got void [noderef] <asn:2>*mregs
      drivers/usb/musb/musb_core.h:491:26: warning: incorrect type in argument 1 (different address spaces)
      drivers/usb/musb/musb_core.h:491:26:    expected void const [noderef] <asn:2>*addr
      drivers/usb/musb/musb_core.h:491:26:    got void *mbase
      drivers/usb/musb/tusb6010.c:270:48: warning: incorrect type in argument 2 (different address spaces)
      drivers/usb/musb/tusb6010.c:270:48:    expected void [noderef] <asn:2>*buf
      drivers/usb/musb/tusb6010.c:270:48:    got unsigned char [usertype] *[assigned] buf
      drivers/usb/musb/tusb6010.c:164:32: warning: incorrect type in argument 1 (different address spaces)
      drivers/usb/musb/tusb6010.c:164:32:    expected void *to
      drivers/usb/musb/tusb6010.c:164:32:    got void [noderef] <asn:2>*buf
      drivers/usb/musb/tusb6010.c:172:24: warning: incorrect type in argument 1 (different address spaces)
      drivers/usb/musb/tusb6010.c:172:24:    expected void *to
      drivers/usb/musb/tusb6010.c:172:24:    got void [noderef] <asn:2>*[assigned] buf
      
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      a156544b
  3. Aug 03, 2012
  4. Aug 01, 2012
  5. Jul 31, 2012
    • Mauro Carvalho Chehab's avatar
      [media] radio-tea5777: use library for 64bits div · adfe1560
      Mauro Carvalho Chehab authored
      
      
      drivers/built-in.o: In function `radio_tea5777_set_freq':
      radio-tea5777.c:(.text+0x4d8704): undefined reference to `__udivdi3'
      
      Reported-by: default avatarRandy Dunlap <rdunlap@xenotime.net>
      Cc: Hans de Goede <hdegoede@redhat.com>
      Acked-by: default avatarRandy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      adfe1560
    • Alex Williamson's avatar
      vfio: Add PCI device driver · 89e1f7d4
      Alex Williamson authored
      
      
      Add PCI device support for VFIO.  PCI devices expose regions
      for accessing config space, I/O port space, and MMIO areas
      of the device.  PCI config access is virtualized in the kernel,
      allowing us to ensure the integrity of the system, by preventing
      various accesses while reducing duplicate support across various
      userspace drivers.  I/O port supports read/write access while
      MMIO also supports mmap of sufficiently sized regions.  Support
      for INTx, MSI, and MSI-X interrupts are provided using eventfds to
      userspace.
      
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      89e1f7d4
    • Alex Williamson's avatar
      vfio: Type1 IOMMU implementation · 73fa0d10
      Alex Williamson authored
      
      
      This VFIO IOMMU backend is designed primarily for AMD-Vi and Intel
      VT-d hardware, but is potentially usable by anything supporting
      similar mapping functionality.  We arbitrarily call this a Type1
      backend for lack of a better name.  This backend has no IOVA
      or host memory mapping restrictions for the user and is optimized
      for relatively static mappings.  Mapped areas are pinned into system
      memory.
      
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      73fa0d10
    • Alex Williamson's avatar
      vfio: VFIO core · cba3345c
      Alex Williamson authored
      
      
      VFIO is a secure user level driver for use with both virtual machines
      and user level drivers.  VFIO makes use of IOMMU groups to ensure the
      isolation of devices in use, allowing unprivileged user access.  It's
      intended that VFIO will replace KVM device assignment and UIO drivers
      (in cases where the target platform includes a sufficiently capable
      IOMMU).
      
      New in this version of VFIO is support for IOMMU groups managed
      through the IOMMU core as well as a rework of the API, removing the
      group merge interface.  We now go back to a model more similar to
      original VFIO with UIOMMU support where the file descriptor obtained
      from /dev/vfio/vfio allows access to the IOMMU, but only after a
      group is added, avoiding the previous privilege issues with this type
      of model.  IOMMU support is also now fully modular as IOMMUs have
      vastly different interface requirements on different platforms.  VFIO
      users are able to query and initialize the IOMMU model of their
      choice.
      
      Please see the follow-on Documentation commit for further description
      and usage example.
      
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      cba3345c
Loading