18 Mar, 2016

1 commit

  • Pull USB updates from Greg KH:
    "Here is the big USB patchset for 4.6-rc1.

    The normal mess is here, gadget and xhci fixes and updates, and lots
    of other driver updates and cleanups as well. Full details are in the
    shortlog.

    All have been in linux-next for a while with no reported issues"

    * tag 'usb-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (266 commits)
    USB: core: let USB device know device node
    usb: devio: Add ioctl to disallow detaching kernel USB drivers.
    usb: gadget: f_acm: Fix configfs attr name
    usb: udc: lpc32xx: remove USB PLL and USB OTG clock management
    usb: udc: lpc32xx: remove direct access to clock controller registers
    usb: udc: lpc32xx: switch to clock prepare/unprepare model
    usb: renesas_usbhs: gadget: fix giveback status code in usbhsg_pipe_disable()
    usb: gadget: renesas_usb3: Use ARCH_RENESAS
    usb: dwc2: Fix issues in dwc2_complete_non_isoc_xfer_ddma()
    usb: dwc2: Add support for Lantiq ARX and XRX SoCs
    usb: phy: generic: Handle late registration of gadget
    usb: gadget: bdc_udc: fix race condition in bdc_udc_exit()
    usb: musb: core: added missing const qualifier to musb_hdrc_platform_data::config
    usb: dwc2: Move host-specific core functions into hcd.c
    usb: dwc2: Move register save and restore functions
    usb: dwc2: Use kmem_cache_free()
    usb: dwc2: host: If using uframe scheduler, end splits better
    usb: dwc2: host: Totally redo the microframe scheduler
    usb: dwc2: host: Properly set even/odd frame
    usb: dwc2: host: Add dwc2_hcd_get_future_frame_number() call
    ...

    Linus Torvalds
     

27 Jan, 2016

1 commit


25 Jan, 2016

1 commit


04 Apr, 2015

1 commit


16 Feb, 2015

1 commit

  • Pull USB patches from Greg KH:
    "Here's the big pull request for the USB driver tree for 3.20-rc1.

    Nothing major happening here, just lots of gadget driver updates, new
    device ids, and a bunch of cleanups.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'usb-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (299 commits)
    usb: musb: fix device hotplug behind hub
    usb: dwc2: Fix a bug in reading the endpoint directions from reg.
    staging: emxx_udc: fix the build error
    usb: Retry port status check on resume to work around RH bugs
    Revert "usb: Reset USB-3 devices on USB-3 link bounce"
    uhci-hub: use HUB_CHAR_*
    usb: kconfig: replace PPC_OF with PPC
    ehci-pci: disable for Intel MID platforms (update)
    usb: gadget: Kconfig: use bool instead of boolean
    usb: musb: blackfin: remove incorrect __exit_p()
    USB: fix use-after-free bug in usb_hcd_unlink_urb()
    ehci-pci: disable for Intel MID platforms
    usb: host: pci_quirks: joing string literals
    USB: add flag for HCDs that can't receive wakeup requests (isp1760-hcd)
    USB: usbfs: allow URBs to be reaped after disconnection
    cdc-acm: kill unnecessary messages
    cdc-acm: add sanity checks
    usb: phy: phy-generic: Fix USB PHY gpio reset
    usb: dwc2: fix USB core dependencies
    usb: renesas_usbhs: fix NULL pointer dereference in dma_release_channel()
    ...

    Linus Torvalds
     

14 Feb, 2015

1 commit

  • printk and friends can now format bitmaps using '%*pb[l]'. cpumask
    and nodemask also provide cpumask_pr_args() and nodemask_pr_args()
    respectively which can be used to generate the two printf arguments
    necessary to format the specified cpu/nodemask.

    * drivers/uwb/drp.c::uwb_drp_handle_alien_drp() was formatting mas.bm
    into a buffer but never used it. Removed.

    Signed-off-by: Tejun Heo
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tejun Heo
     

25 Jan, 2015

1 commit


03 Dec, 2014

1 commit

  • Memset on a local variable may be removed when it is called just before the
    variable goes out of scope. Using memzero_explicit defeats this
    optimization. A simplified version of the semantic patch that makes this
    change is as follows: (http://coccinelle.lip6.fr/)

    //
    @@
    identifier x;
    type T;
    @@

    {
    ... when any
    T x[...];
    ... when any
    when exists
    - memset
    + memzero_explicit
    (x,
    -0,
    ...)
    ... when != x
    when strict
    }
    //

    This change was suggested by Daniel Borkmann

    Signed-off-by: Julia Lawall
    Signed-off-by: Greg Kroah-Hartman

    Julia Lawall
     

24 Sep, 2014

6 commits

  • USB hub has started to use a workqueue instead of kthread. Let's update
    the documentation and comments here and there.

    This patch mostly just replaces "khubd" with "hub_wq". There are only few
    exceptions where the whole sentence was updated. These more complicated
    changes can be found in the following files:

    Documentation/usb/hotplug.txt
    drivers/net/usb/usbnet.c
    drivers/usb/core/hcd.c
    drivers/usb/host/ohci-hcd.c
    drivers/usb/host/xhci.c

    Signed-off-by: Petr Mladek
    Acked-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Petr Mladek
     
  • If three or more wireless devices are connected and two of them
    disconnect between 1-3 seconds apart, it can cause the HWA to disconnect
    the remaining devices due to failing to see a DN_Alive message from
    them. This happens because when the HWA detects that the first device
    is gone, it will attempt to rekey the remaining devices. If one of the
    devices is not responding because it has also been disconnected but not
    yet timed out, the synchronous rekey operation running on the wusbd
    workqueue can block for up to 5 seconds. This will prevent the
    KEEPALIVE timer from running and DN_Alive messages from being processed
    because they are processed by the same workqueue. This patch moves the
    rekey operation to a separate workqueue since it is the only wusb work
    item that needs to communicate directly with wireless devices. The rest
    of the WUSB work items either perform no device IO or communicate
    directly with the host controller and should not be blocked out by a
    non-responding wireless device.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • When completing an aborted transfer, skip done segs before calling
    wa_complete_remaining_xfer_segs to avoid a runtime warning. The warning
    is harmless in this case but avoiding it prevents false error reports.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • Add USB build dependency for USB_WUSB_CBAF.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • Wireless USB does not require PCI so remove USB_WUSB build dependency on
    PCI.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • Delete successive assignments to the same location.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @@
    expression i;
    @@

    *i = ...;
    i = ...;
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Greg Kroah-Hartman

    Julia Lawall
     

20 Aug, 2014

1 commit

  • linux-2.6/drivers/usb/wusbcore/wa-xfer.c: In function 'wa_buf_in_cb':
    linux-2.6/drivers/usb/wusbcore/wa-xfer.c:2590: warning: 'rpipe' may be used uninitialized in this function

    Signed-off-by: Peter Chen
    Suggested-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Peter Chen
     

28 May, 2014

1 commit


25 Apr, 2014

2 commits


09 Mar, 2014

2 commits

  • Submit multiple concurrent urbs for HWA isochronous transfer result data
    frame reads. This keeps the read pipeline full and significantly
    improves performance in cases where the frame reads cannot be combined
    because they are not contiguous or multiples of the max packet size.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • When reading the transfer result data for an isochronous in request, if
    the current frame actual_length is contiguous with the next frame and
    actual_length is a multiple of the DTI endpoint max packet size, combine
    the current frame with the next frame in a single URB. This reduces the
    number of URBs that must be submitted in that case which increases
    performance and reduces CPU interrupt overhead.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     

08 Mar, 2014

3 commits

  • The HWA driver does not do anything with transfer notifications after
    receiving the first one and the Alereon HWA allows them to be disabled
    as a performance optimization. This patch sends a vendor specific
    command to the Alereon HWA on startup to disable transfer notifications.
    If the command is successful, the DTI system is started immediately
    since that would normally be started upon the first reception of a
    transfer notification which will no longer be sent.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • Data for transfer segments in the WA_SEG_DTI_PENDING state is actively
    being read by the driver. Let the buffer read callback handle the
    transfer cleanup since cleaning it up in wa_urb_dequeue will cause the
    read callback to access invalid memory if the transfer is completed.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • This patch locks rpipe->seg_lock around the entire transfer segment
    cleanup loop in wa_urb_dequeue instead of just one case of the switch
    statement. This fixes a race between __wa_xfer_delayed_run and
    wa_urb_dequeue where a transfer segment in the WA_SEG_DELAYED state
    could be removed from the rpipe seg_list twice leading to memory
    corruption. It also switches the spin_lock call to use the non-irqsave
    version since the xfer->lock is already held and irqs already disabled.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     

01 Mar, 2014

8 commits

  • Fix "pointer targets differ in signedness" and "variable set but not
    used" warnings

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • This patch adds a debug print in the transfer dequeue case where a
    transfer result arrives for a transfer that has already been cleaned up.
    It also adds the transfer ID to some debug prints and prints error codes
    as signed integers in a couple of others.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • Use the iso_frame_desc.actual_length field instead of length when
    reading isoc in data segments from the HWA. This fixes a case where the
    isoc in read URB would never complete because it expected the HWA to
    send more data than it actually did. When this happened the URB would
    be stuck in the driver preventing module unload and clean shutdown.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • If the endpoint companion descriptor is not the first descriptor in the
    extra descriptor buffer of a usb_host_endpoint, the loop in
    rpipe_epc_find will get its buffer pointer and remaining size values out
    of sync. The buffer ptr 'itr' is advanced by the descriptor's bLength
    field but the remaining size value 'itr_size' is decremented by the
    bDescriptorType field which is incorrect. This patch fixes the loop to
    decrement itr_size by bLength as it should.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • This patch adds a convenience function for the commonly performed task
    of marking a transfer segment as done. It combines the 3 steps of
    setting the segment status, incrementing the segs_done field of the
    transfer and checking if the completed segment results in the transfer
    also being done.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • This patch takes a reference to the wa_xfer object in wa_urb_dequeue to
    prevent the urb giveback code from completing the xfer and freeing it
    while wa_urb_dequeue is executing. It also checks for done at the start
    to avoid a double completion scenario. Adding the check for done in
    urb_dequeue means that any other place where a submitted transfer
    segment is marked as done must complete the transfer if it is done.
    __wa_xfer_delayed_run was not checking this case so that check was added
    as well.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • This patch adds error checking to the abort request callback to forcibly
    clean up the dequeued transfers if the abort request failed. The
    wa_complete_remaining_xfer_segs was modified so that it could be used in
    this situation as well. This fixes a stranded URB/PNP hang when the HWA
    is unplugged while playing audio to a wireless audio device.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     
  • This patch adds ref counting to sections of code that operate on struct
    wa_xfer objects that were missing it. Specifically, error handling
    cases need to be protected from freeing the xfer while it is still in
    use elsewhere. This fixes a kernel panic that can occur when pulling
    the HWA dongle while data is being transferred to a wireless device.

    Signed-off-by: Thomas Pugliese
    Signed-off-by: Greg Kroah-Hartman

    Thomas Pugliese
     

09 Jan, 2014

1 commit


08 Jan, 2014

8 commits