1. 01 3月, 2014 7 次提交
  2. 09 1月, 2014 1 次提交
  3. 18 12月, 2013 1 次提交
  4. 10 12月, 2013 3 次提交
  5. 09 12月, 2013 3 次提交
  6. 30 10月, 2013 3 次提交
  7. 19 10月, 2013 1 次提交
    • T
      usb: wusbcore: serialize access to the HWA data out endpoint · 679ee475
      Thomas Pugliese 提交于
      This patch serializes access to the HWA data transfer out (DTO)
      endpoint.  This prevents a situation where two transfer requests being
      sent concurrently to separate downstream endpoints could interleave
      their transfer request and transfer data packets causing data
      corruption.  The transfer processing code will now attempt to acquire
      the DTO resource before sending a transfer to the HWA.  If it cannot
      acquire the resource, the RPIPE that the transfer is assigned to will
      be placed on a waiting list.  When the DTO resource is released, the
      actor releasing the resource will serivce the RPIPEs that are waiting.
      Signed-off-by: NThomas Pugliese <thomas.pugliese@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      679ee475
  8. 07 10月, 2013 1 次提交
  9. 06 10月, 2013 1 次提交
    • T
      usb: wusbcore: add support for isoc out transfers · 7a32d9be
      Thomas Pugliese 提交于
      This patch adds support for isochronous out transfers to the HWA.  The
      primary changes are:
      
      1.  Add a isoc_pack_desc_urb field to struct wa_seg.  This urb is used
      to send the isochronous packet info message to the HWA which describes
      the isoc data segment(s) that will be sent as the payload of the
      transfer request.
      
      2.  Use the URB iso_frame_desc field to populate the isochronous packet
      info message and data segments sent to the HWA.
      
      3.  After the data is sent and transfer result is returned from the
      HWA, read the isoc packet status message from the HWA.  The contents of
      the isoc packet status message are used to set the iso_frame_desc
      status and actual_length fields in the original isoc URB.  This feature
      required the addition of a some state tracking variables in struct wahc
      so the dti_urb knows what type of packet it expects to receive next.
      Signed-off-by: NThomas Pugliese <thomas.pugliese@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7a32d9be
  10. 04 10月, 2013 1 次提交
  11. 01 10月, 2013 4 次提交
  12. 27 9月, 2013 6 次提交
  13. 26 9月, 2013 1 次提交
  14. 16 8月, 2013 4 次提交
  15. 13 8月, 2013 2 次提交
    • T
      wusbcore: fix kernel panic when disconnecting a wireless USB->serial device · ec58fad1
      Thomas Pugliese 提交于
      This patch fixes a kernel panic that can occur when disconnecting a
      wireless USB->serial device.  When the serial device disconnects, the
      device cleanup procedure ends up calling usb_hcd_disable_endpoint on the
      serial device's endpoints.  The wusbcore uses the ABORT_RPIPE command to
      abort all transfers on the given endpoint but it does not properly give
      back the URBs when the transfer results return from the HWA.  This patch
      prevents the transfer result processing code from bailing out when it sees
      a WA_XFER_STATUS_ABORTED result code so that these urbs are flushed
      properly by usb_hcd_disable_endpoint.  It also updates wa_urb_dequeue to
      handle the case where the endpoint has already been cleaned up when
      usb_kill_urb is called which is where the panic originally occurred.
      Signed-off-by: NThomas Pugliese <thomas.pugliese@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ec58fad1
    • T
      wusbcore: clean up list locking in urb enqueue · e9a088fa
      Thomas Pugliese 提交于
      wa_urb_enqueue_run locks and unlocks its list lock as it traverses the
      list of queued transfers.  This was done to prevent deadlocking due to
      acquiring locks in reverse order in different places.  The problem is that
      releasing the lock during the list traversal could allow the dequeue
      routine to corrupt the list while it is being iterated over.  This patch
      moves all list entries to a temp list while holding the list lock, then
      traverses the temp list with no lock held.
      Signed-off-by: NThomas Pugliese <thomas.pugliese@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e9a088fa
  16. 18 6月, 2013 1 次提交