26 Jul, 2011

1 commit

  • * 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (115 commits)
    EHCI: fix direction handling for interrupt data toggles
    USB: serial: add IDs for WinChipHead USB->RS232 adapter
    USB: OHCI: fix another regression for NVIDIA controllers
    usb: gadget: m66592-udc: add pullup function
    usb: gadget: m66592-udc: add function for external controller
    usb: gadget: r8a66597-udc: add pullup function
    usb: renesas_usbhs: support multi driver
    usb: renesas_usbhs: inaccessible pipe is not an error
    usb: renesas_usbhs: care buff alignment when dma handler
    USB: PL2303: correctly handle baudrates above 115200
    usb: r8a66597-hcd: fixup USB_PORT_STAT_C_SUSPEND shift
    usb: renesas_usbhs: compile/config are rescued
    usb: renesas_usbhs: fixup comment-out
    usb: update email address in ohci-sh and r8a66597-hcd
    usb: r8a66597-hcd: add function for external controller
    EHCI: only power off port if over-current is active
    USB: mon: Allow to use usbmon without debugfs
    USB: EHCI: go back to using the system clock for QH unlinks
    ehci: add pci quirk for Ordissimo and RM Slate 100 too
    ehci: refactor pci quirk to use standard dmi_check_system method
    ...

    Fix up trivial conflicts in Documentation/feature-removal-schedule.txt

    Linus Torvalds
     

09 Jul, 2011

1 commit

  • There are cases, when 80% max isochronous bandwidth is too limiting.

    For example I have two USB video capture cards which stream uncompressed
    video, and to stream full NTSC + PAL videos we'd need

    NTSC 640x480 YUV422 @30fps ~17.6 MB/s
    PAL 720x576 YUV422 @25fps ~19.7 MB/s

    isoc bandwidth.

    Now, due to limited alt settings in capture devices NTSC one ends up
    streaming with max_pkt_size=2688 and PAL with max_pkt_size=2892, both
    with interval=1. In terms of microframe time allocation this gives

    NTSC ~53us
    PAL ~57us

    and together

    ~110us > 100us == 80% of 125us uframe time.

    So those two devices can't work together simultaneously because the'd
    over allocate isochronous bandwidth.

    80% seemed a bit arbitrary to me, and I've tried to raise it to 90% and
    both devices started to work together, so I though sometimes it would be
    a good idea for users to override hardcoded default of max 80% isoc
    bandwidth.

    After all, isn't it a user who should decide how to load the bus? If I
    can live with 10% or even 5% bulk bandwidth that should be ok. I'm a USB
    newcomer, but that 80% set in stone by USB 2.0 specification seems to be
    chosen pretty arbitrary to me, just to serve as a reasonable default.

    NOTE 1
    ~~~~~~

    for two streams with max_pkt_size=3072 (worst case) both time
    allocation would be 60us+60us=120us which is 96% periodic bandwidth
    leaving 4% for bulk and control. Alan Stern suggested that bulk then
    would be problematic (less than 300*8 bittimes left per microframe), but
    I think that is still enough for control traffic.

    NOTE 2
    ~~~~~~

    Sarah Sharp expressed concern that maxing out periodic bandwidth
    could lead to vendor-specific hardware bugs on host controllers, because

    > It's entirely possible that you'll run into
    > vendor-specific bugs if you try to pack the schedule with isochronous
    > transfers. I don't think any hardware designer would seriously test or
    > validate their hardware with a schedule that is basically a violation of
    > the USB bus spec (more than 80% for periodic transfers).

    So far I've only tested this patch on my HP Mini 5103 with N10 chipset

    kirr@mini:~$ lspci
    00:00.0 Host bridge: Intel Corporation N10 Family DMI Bridge
    00:02.0 VGA compatible controller: Intel Corporation N10 Family Integrated Graphics Controller
    00:02.1 Display controller: Intel Corporation N10 Family Integrated Graphics Controller
    00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
    00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 02)
    00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 4 (rev 02)
    00:1d.0 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 02)
    00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 02)
    00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 02)
    00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 02)
    00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 02)
    00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
    00:1f.0 ISA bridge: Intel Corporation NM10 Family LPC Controller (rev 02)
    00:1f.2 SATA controller: Intel Corporation N10/ICH7 Family SATA AHCI Controller (rev 02)
    01:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)
    02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8059 PCI-E Gigabit Ethernet Controller (rev 11)

    and the system works stable with 110us/uframe (~88%) isoc bandwith allocated for
    above-mentioned isochronous transfers.

    NOTE 3
    ~~~~~~

    This feature is off by default. I mean max periodic bandwidth is set to
    100us/uframe by default exactly as it was before the patch. So only those of us
    who need the extreme settings are taking the risk - normal users who do not
    alter uframe_periodic_max sysfs attribute should not see any change at all.

    NOTE 4
    ~~~~~~

    I've tried to update documentation in Documentation/ABI/ thoroughly, but
    only "TBD" was put into Documentation/usb/ehci.txt -- the text there seems
    to be outdated and much needing refreshing, before it could be amended.

    Cc: Sarah Sharp
    Signed-off-by: Kirill Smelkov
    Acked-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Kirill Smelkov
     

02 Jul, 2011

1 commit


18 Jun, 2011

1 commit

  • Documentation/usb/error-codes.txt mentions that urb->status can be set to
    -EXDEV, if the isochronous transfer was not fully completed. However, in
    practice, EHCI, UHCI, and OHCI all only set -EXDEV in the individual frame
    status, never in the URB status. Those host controller actually always
    pass in a zero status to usb_hcd_giveback_urb, and rely on the core to set
    the appropriate status value.

    The xHCI driver ran into issues with the uvcvideo driver when it tried to
    set -EXDEV in urb->status, because the driver refused to submit URBs, and
    the userspace camera application's video froze.

    Clean up the documentation to reflect the actual implementation.

    Signed-off-by: Sarah Sharp
    Acked-by: Alan Stern

    Sarah Sharp
     

24 May, 2011

1 commit

  • * 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (205 commits)
    USB: EHCI: Remove SPARC_LEON {read,write}_be definitions from ehci.h
    USB: UHCI: Support big endian GRUSBHC HC
    sparc: add {read,write}*_be routines
    USB: UHCI: Add support for big endian descriptors
    USB: UHCI: Use ACCESS_ONCE rather than using a full compiler barrier
    USB: UHCI: Add support for big endian mmio
    usb-storage: Correct adjust_quirks to include latest flags
    usb/isp1760: Fix possible unlink problems
    usb/isp1760: Move function isp1760_endpoint_disable() within file.
    USB: remove remaining usages of hcd->state from usbcore and fix regression
    usb: musb: ux500: add configuration and build options for ux500 dma
    usb: musb: ux500: add dma glue layer for ux500
    usb: musb: ux500: add dma name for ux500
    usb: musb: ux500: add ux500 specific code for gadget side
    usb: musb: fix compile error
    usb-storage: fix up the unusual_realtek device list
    USB: gadget: f_audio: Fix invalid dereference of initdata
    EHCI: don't rescan interrupt QHs needlessly
    OHCI: fix regression caused by nVidia shutdown workaround
    USB: OTG: msm: Free VCCCX regulator even if we can't set the voltage
    ...

    Linus Torvalds
     

30 Apr, 2011

2 commits

  • This patch (as1459) updates the documentation for the pre_reset method
    in struct usb_driver. When a driver is notified of an impending
    reset, it must cancel all outstanding I/O and not start any new I/O
    until it has been notified that the reset is complete.

    As far as I know, most existing drivers that implement pre_reset do
    this now. The major exceptions appear to be the SpeedTouch and
    CDC-WDM drivers.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • Commit 1c6529e92b "USB: gadget: g_multi: fixed vendor and
    product ID" replaced g_multi's vendor and product ID with
    proper ID's from Linux Foundation. This commit now updates
    INF files in the Documentation/usb directory which were
    omitted in the original commit.

    Signed-off-by: Michal Nazarewicz
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Michal Nazarewicz
     

22 Mar, 2011

1 commit


05 Feb, 2011

1 commit

  • This is based on a patch that Alan Stern wrote. It did the same simple
    thing in both text and binary cases. In the same time, Marton and I
    fixed the binary side properly, but this leaves the text to be fixed.
    It is not very important due to low maxium data size of text, but
    let's add it just for extra correctness.

    The pseudocode is too much to keep fixed up, and we have real code
    to be used as examples now, so let's drop it too.

    Signed-off-by: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     

17 Nov, 2010

1 commit

  • This patch (as1428) converts USB over to the new runtime-PM core
    autosuspend framework. One slightly awkward aspect of the conversion
    is that USB devices will now have two suspend-delay attributes: the
    old power/autosuspend file and the new power/autosuspend_delay_ms
    file. One expresses the delay time in seconds and the other in
    milliseconds, but otherwise they do the same thing. The old attribute
    can be deprecated and then removed eventually.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

23 Oct, 2010

1 commit


11 Aug, 2010

6 commits

  • A short documentation of the g_multi driver along with INF
    files for Windows XP SP3 are provided.

    Signed-off-by: Michal Nazarewicz
    Signed-off-by: Kyungmin Park
    Signed-off-by: Greg Kroah-Hartman

    Michal Nazarewicz
     
  • Updated the INF file for g_serial gadget. It should work with
    most recent Windows systems now.

    Signed-off-by: Michal Nazarewicz
    Signed-off-by: Kyungmin Park
    Signed-off-by: Greg Kroah-Hartman

    Michal Nazarewicz
     
  • Updated the INF file for the g_ether gadget. It should work with most
    recent Windows systems now.

    Signed-off-by: Michal Nazarewicz
    Signed-off-by: Kyungmin Park
    Signed-off-by: Greg Kroah-Hartman

    Michal Nazarewicz
     
  • Documentation/usb/linux.inf:66: ERROR: trailing whitespace
    Documentation/usb/linux.inf:67: ERROR: trailing whitespace
    Documentation/usb/linux.inf:98: ERROR: trailing whitespace
    Documentation/usb/linux.inf:99: ERROR: trailing whitespace
    Documentation/usb/linux.inf:115: ERROR: trailing whitespace
    Documentation/usb/linux.inf:116: ERROR: trailing whitespace
    Documentation/usb/linux.inf:120: ERROR: trailing whitespace
    Documentation/usb/linux.inf:121: ERROR: trailing whitespace
    Documentation/usb/linux.inf:122: ERROR: trailing whitespace
    Documentation/usb/linux.inf:123: ERROR: trailing whitespace
    Documentation/usb/linux.inf:144: ERROR: trailing whitespace
    Documentation/usb/linux.inf:145: ERROR: trailing whitespace
    Documentation/usb/linux.inf:146: ERROR: trailing whitespace
    Documentation/usb/linux.inf:147: ERROR: trailing whitespace
    Documentation/usb/linux.inf:158: ERROR: trailing whitespace

    Signed-off-by: Andrea Gelmini
    Signed-off-by: Greg Kroah-Hartman

    Andrea Gelmini
     
  • Documentation/usb/hotplug.txt:13: ERROR: trailing whitespace
    Documentation/usb/hotplug.txt:87: ERROR: trailing whitespace

    Signed-off-by: Andrea Gelmini
    Signed-off-by: Greg Kroah-Hartman

    Andrea Gelmini
     
  • Documentation/usb/ehci.txt:12: ERROR: trailing whitespace

    Signed-off-by: Andrea Gelmini
    Signed-off-by: Greg Kroah-Hartman

    Andrea Gelmini
     

04 Aug, 2010

1 commit

  • Below you will find an updated version from the original series bunching all patches into one big patch
    updating broken web addresses that are located in Documentation/*
    Some of the addresses date as far far back as 1995 etc... so searching became a bit difficult,
    the best way to deal with these is to use web.archive.org to locate these addresses that are outdated.
    Now there are also some addresses pointing to .spec files some are located, but some(after searching
    on the companies site)where still no where to be found. In this case I just changed the address
    to the company site this way the users can contact the company and they can locate them for the users.

    Signed-off-by: Justin P. Mattock
    Signed-off-by: Thomas Weber
    Signed-off-by: Mike Frysinger
    Cc: Paulo Marques
    Cc: Randy Dunlap
    Cc: Michael Neuling
    Signed-off-by: Jiri Kosina

    Justin P. Mattock
     

21 May, 2010

8 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (229 commits)
    USB: remove unused usb_buffer_alloc and usb_buffer_free macros
    usb: musb: update gfp/slab.h includes
    USB: ftdi_sio: fix legacy SIO-device header
    USB: kl5usb105: reimplement using generic framework
    USB: kl5usb105: minor clean ups
    USB: kl5usb105: fix memory leak
    USB: io_ti: use kfifo to implement write buffering
    USB: io_ti: remove unsused private counter
    USB: ti_usb: use kfifo to implement write buffering
    USB: ir-usb: fix incorrect write-buffer length
    USB: aircable: fix incorrect write-buffer length
    USB: safe_serial: straighten out read processing
    USB: safe_serial: reimplement read using generic framework
    USB: safe_serial: reimplement write using generic framework
    usb-storage: always print quirks
    USB: usb-storage: trivial debug improvements
    USB: oti6858: use port write fifo
    USB: oti6858: use kfifo to implement write buffering
    USB: cypress_m8: use kfifo to implement write buffering
    USB: cypress_m8: remove unused drain define
    ...

    Fix up conflicts (due to usb_buffer_alloc/free renaming) in
    drivers/input/tablet/acecad.c
    drivers/input/tablet/kbtab.c
    drivers/input/tablet/wacom_sys.c
    drivers/media/video/gspca/gspca.c
    sound/usb/usbaudio.c

    Linus Torvalds
     
  • Now that URB_NO_SETUP_DMA_MAP is no longer in use, this patch (as1376)
    removes all references to it.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • Add support for the parallel port on the moschip MCS7715 device. The port
    registers itself with the parport subsystem as a low-level driver. A separate
    entry to the kernel configuration is added beneath that for the mos7720, to
    avoid the need to link with the parport subsystem code for users who don't have
    or don't want the parallel port. Only compatibility mode is currently supported
    (no ECP/EPP). Tested with both moschip devices (7720 and 7715) on UP and SMP
    hosts, including regression testing of serial port, concurrent operation of
    serial and parallel ports, and various connect / disconnect scenarios.

    Signed-off-by: Mike Dunn
    Signed-off-by: Greg Kroah-Hartman

    Mike Dunn
     
  • For more clearance what the functions actually do,

    usb_buffer_alloc() is renamed to usb_alloc_coherent()
    usb_buffer_free() is renamed to usb_free_coherent()

    They should only be used in code which really needs DMA coherency.

    All call sites have been changed accordingly, except for staging
    drivers.

    Signed-off-by: Daniel Mack
    Cc: Alan Stern
    Cc: Pedro Ribeiro
    Signed-off-by: Greg Kroah-Hartman

    Daniel Mack
     
  • Documentation update

    Signed-off-by: Greg Kroah-Hartman

    Eric Raymond
     
  • Bulk endpoint streams were added in the USB 3.0 specification. Streams
    allow a device driver to overload a bulk endpoint so that multiple
    transfers can be queued at once.

    The device then decides which transfer it wants to work on first, and can
    queue part of a transfer before it switches to a new stream. All this
    switching is invisible to the device driver, which just gets a completion
    for the URB. Drivers that use streams must be able to handle URBs
    completing in a different order than they were submitted to the endpoint.

    This requires adding new API to set up xHCI data structures to support
    multiple queues ("stream rings") per endpoint. Drivers will allocate a
    number of stream IDs before enqueueing URBs to the bulk endpoints of the
    device, and free the stream IDs in their disconnect function. See
    Documentation/usb/bulk-streams.txt for details.

    The new mass storage device class, USB Attached SCSI Protocol (UASP), uses
    these streams API.

    Signed-off-by: Sarah Sharp
    Signed-off-by: Greg Kroah-Hartman

    Sarah Sharp
     
  • This patch (as1367) deprecates USB's power/level sysfs attribute in
    favor of the power/control attribute provided by the runtime PM core.
    The two attributes do the same thing.

    It would be nice to replace power/level with a symlink to
    power/control, but at the moment sysfs doesn't offer any way to do so.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • g_hid is a USB gadget driver implementing the Human Interface Device class
    specification. The driver handles basic HID protocol handling in the
    kernel, and allows userspace to read/write HID reports trough /dev/hidgX
    character devices.

    Signed-off-by: Fabien Chouteau
    Signed-off-by: Peter Korsgaard
    Signed-off-by: Greg Kroah-Hartman

    Fabien Chouteau
     

23 Apr, 2010

1 commit


03 Mar, 2010

3 commits

  • This patch (as1329) converts the USB stack over to the PM core's
    runtime PM framework. This involves numerous changes throughout
    usbcore, especially to hub.c and driver.c. Perhaps the most notable
    change is that CONFIG_USB_SUSPEND now depends on CONFIG_PM_RUNTIME
    instead of CONFIG_PM.

    Several fields in the usb_device and usb_interface structures are no
    longer needed. Some code which used to depend on CONFIG_USB_PM now
    depends on CONFIG_USB_SUSPEND (requiring some rearrangement of header
    files).

    The only visible change in behavior should be that following a system
    sleep (resume from RAM or resume from hibernation), autosuspended USB
    devices will be resumed just like everything else. They won't remain
    suspended. But if they aren't in use then they will naturally
    autosuspend again in a few seconds.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as1326) adds usb_enable_autosuspend() and
    usb_disable_autosuspend() routines for use by drivers. If a driver
    knows that its device can handle suspends and resumes correctly, it
    can enable autosuspend all by itself. This is equivalent to the user
    writing "auto" to the device's power/level attribute.

    The implementation differs slightly from what it used to be. Now
    autosuspend is disabled simply by doing usb_autoresume_device() (to
    increment the usage counter) and enabled by doing
    usb_autosuspend_device() (to decrement the usage counter).

    The set_level() attribute method is updated to use the new routines,
    and the USB Power-Management documentation is updated.

    The patch adds a usb_enable_autosuspend() call to the hub driver's
    probe routine, allowing the special-case code for hubs in quirks.c to
    be removed.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as1316) adds some error checking to usb_submit_urb().
    It's conditional on CONFIG_USB_DEBUG, so it won't affect normal users.
    The new check makes sure that the actual type of the endpoint
    described by urb->pipe agrees with the type encoded in the pipe value.

    The USB error code documentation is updated to include the code
    returned by the new check, and the usbfs SUBMITURB handler is updated
    to use the correct pipe type when legacy user code tries to submit a
    bulk transfer to an interrupt endpoint.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

24 Dec, 2009

1 commit


12 Dec, 2009

2 commits

  • This patch (as1303) revises the USB Power Management infrastructure to
    make it compatible with the new driver-model Runtime PM framework:

    Drivers are no longer allowed to access intf->pm_usage_cnt
    directly; the PM framework manages its own usage counters.

    usb_autopm_set_interface() is eliminated, because it directly
    sets intf->pm_usage_cnt.

    usb_autopm_enable() and usb_autopm_disable() are eliminated,
    because they call usb_autopm_set_interface().

    usb_autopm_get_interface_no_resume() and
    usb_autopm_put_interface_no_suspend() are added. They
    correspond to pm_runtime_get_noresume() and
    pm_runtime_put_noidle() in the PM framework.

    The power/level attribute no longer accepts "suspend", only
    "on" and "auto". The PM framework doesn't allow devices to be
    forced into a suspended mode.

    The hub driver contains the only code that violates the new
    guidelines. It is updated to use the new interface routines instead.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as1302) removes the auto_pm flag from struct usb_device.
    The flag's only purpose was to distinguish between autosuspends and
    external suspends, but that information is now available in the
    pm_message_t argument passed to suspend methods.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

23 Sep, 2009

3 commits

  • Neither /sys/usb/devices nor /sys/bus/devices exist. The correct path
    is /sys/bus/usb/devices.

    Signed-off-by: Jean Delvare
    Signed-off-by: Greg Kroah-Hartman

    Jean Delvare
     
  • Hi there.

    On Aug 21 2009, Alan Stern wrote:
    > On Thu, 20 Aug 2009, Rogério Brito wrote:
    > > Again, just reiterating, what I said before, even though I am not sure
    > > if I can reproduce it, I will try to.
    >
    > A usbmon trace showing what happens when you plug in the drive and
    > when you run smartctl would help.

    The documentation for usbmon in the kernel 2.6.31-rc7 kernel doesn't
    match what the kernel exposes in the debug fs tree. This patch fixes it.

    Signed-off-by: Rogério Brito
    Signed-off-by: Greg Kroah-Hartman

    Rogério Brito
     
  • I think this sentence was confusing regarding the possible size
    of the data area.

    Signed-off-by: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     

13 Jun, 2009

2 commits


25 Mar, 2009

1 commit

  • This patch adds an extension to the binary API so it reaches parity with
    existing text API (so-called "1u"). The extension delivers additional data,
    such as ISO descriptors and the interrupt interval.

    Signed-Off-By: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Pete Zaitcev
     

30 Jan, 2009

1 commit

  • Move DMA-mapping.txt to Documentation/PCI/.

    DMA-mapping.txt was supposed to be moved from Documentation/ to
    Documentation/PCI/. The 00-INDEX files in those two directories
    were updated, along with a few other text files, but the file
    itself somehow escaped being moved, so move it and update more
    text files and source files with its new location.

    Signed-off-by: Randy Dunlap
    Acked-by: Greg Kroah-Hartman
    cc: Jesse Barnes
    Signed-off-by: Linus Torvalds

    Randy Dunlap