1. 18 11月, 2016 25 次提交
  2. 03 11月, 2016 1 次提交
  3. 18 10月, 2016 2 次提交
  4. 08 9月, 2016 1 次提交
  5. 31 8月, 2016 6 次提交
  6. 29 8月, 2016 1 次提交
  7. 21 6月, 2016 4 次提交
    • V
      usb: dwc2: gadget: Final fixes for BDMA ISOC · 837e9f00
      Vardan Mikayelyan 提交于
      Done fixes and tested hsotg gadget's BDMA mode. Tested Control,
      Bulk, Isoc, Inter transfers. Added code for isoc transfers,
      removed unusable code, done minor fixes. Affected functions
      and IRQ handlers:
      - dwc2_hsotg_start_req(),
      - dwc2_hsotg_ep_enable(),
      - dwc2_hsotg_ep_queue(),
      - dwc2_hsotg_handle_outdone(),
      - GINTSTS_GOUTNAKEFF handler,
      
      Removed 'has_correct_parity' flag from 'dwc2_hsotg_ep' struct.
      Before this patch series, to set the data pid the DWC2 gadget
      driver was toggling the even/odd until it match, then were
      leaving it set. But now I have added mechanism to set pid and
      excluded all code where this flag was set.
      Tested-by: NJohn Keeping <john@metanate.com>
      Signed-off-by: NVardan Mikayelyan <mvardan@synopsys.com>
      Signed-off-by: NJohn Youn <johnyoun@synopsys.com>
      Signed-off-by: NFelipe Balbi <felipe.balbi@linux.intel.com>
      837e9f00
    • V
      usb: dwc2: gadget: Add EP disabled interrupt handler · bd9971f0
      Vardan Mikayelyan 提交于
      Reimplemented EP disabled interrupt handler and moved to
      corresponding function.
      
      This interrupt indicates that the endpoint has been disabled per
      the application's request.
      
      For IN endpoints flushes txfifo, in case of BULK clears DCTL_CGNPINNAK,
      in case of ISOC completes current request.
      
      For ISOC-OUT endpoints completes expired requests. If there is
      remaining request starts it. This is the part of ISOC-OUT transfer
      drop flow. When ISOC-OUT transfer expired we must disable ep to drop
      ongoing transfer.
      Tested-by: NJohn Keeping <john@metanate.com>
      Reviewed-by: NVahram Aharonyan <vahrama@synopsys.com>
      Signed-off-by: NVardan Mikayelyan <mvardan@synopsys.com>
      Signed-off-by: NJohn Youn <johnyoun@synopsys.com>
      Signed-off-by: NFelipe Balbi <felipe.balbi@linux.intel.com>
      bd9971f0
    • V
      usb: dwc2: gadget: Add Incomplete ISO IN/OUT Interrupt handlers · 381fc8f8
      Vardan Mikayelyan 提交于
      Incomplete ISO IN interrupt indicates one of the following conditions
      occurred while transmitting an ISOC transaction.
      - Corrupted IN Token for ISOC EP.
      - Packet not complete in FIFO.
      
      Incomplete ISO OUT indicates that there is at least one isochronous OUT
      endpoint on which the transfer is not completed in the current
      microframe.
      
      The following actions will be taken:
      
      In case of EP-IN
      - Determine the EP
      - Disable EP directly from this handler; when "Endpoint Disabled"
        interrupt is received flush FIFO
      
      In case of EP-OUT
      - Determine the EP
      - If target frame elapsed set DCTL_SGOUTNAK, unmask GOUTNAKEFF and
        proceed as described in section 7.5.1 of DWC-HSOTG Programming Guide
      
      Also added dwc2_gadget_target_frame_elapsed() helper function which
      will be used in Incomplete ISO IN/OUT Interrupt handlers.
      Tested-by: NJohn Keeping <john@metanate.com>
      Signed-off-by: NVardan Mikayelyan <mvardan@synopsys.com>
      Signed-off-by: NJohn Youn <johnyoun@synopsys.com>
      Signed-off-by: NFelipe Balbi <felipe.balbi@linux.intel.com>
      381fc8f8
    • V
      usb: dwc2: gadget: Add OUTTKNEPDIS and NAKINTRPT handlers · 5321922c
      Vardan Mikayelyan 提交于
      NAKINTRPT interrupt is starting point for isoc-in transfer,
      synchronization done with first in token received from host,
      core asserts this interrupt when responds with 0 length data
      to in token, received from host.
      
      The first IN token is asynchronous for device - device does not
      know when first one token will arrive from host. On first token
      arrival HW generates 2 interrupts: 'in token received while FIFO
      empty' and 'NAK'. NAK interrupt for ISOC in means that token has
      arrived and ZLP was sent in response to that as there was no data
      in FIFO. SW is basing on this interrupt to obtain frame in which
      token has come and then based on the interval calculates next
      frame for transfer.
      
      OUTTKNEPDIS interrupt is starting point for isoc-out transfer,
      synchronization done with first out token received from host
      while corresponding ep is disabled.
      
      For OUTs the reason is same - device does not know initial frame
      in which out token will come. For this HW generates OUTTKNEPDIS
      - out token is received while EP is disabled. Upon getting this
      interrupt SW starts calculation for next transfer frame.
      Tested-by: NJohn Keeping <john@metanate.com>
      Signed-off-by: NVardan Mikayelyan <mvardan@synopsys.com>
      Signed-off-by: NJohn Youn <johnyoun@synopsys.com>
      Signed-off-by: NFelipe Balbi <felipe.balbi@linux.intel.com>
      5321922c