Commit d2190517 authored by David Brownell's avatar David Brownell Committed by Greg Kroah-Hartman

[PATCH] ohci on sparc64

DaveM noticed he needed a pci_dma_sync_single() after the
DMA conversion late in 32 ; here's the patch.

FYI this driver was previously having to unmap/remap in
that location, this is an improvement!  :)
parent 9a160cff
...@@ -79,6 +79,12 @@ static inline void intr_resub (struct ohci_hcd *hc, struct urb *urb) ...@@ -79,6 +79,12 @@ static inline void intr_resub (struct ohci_hcd *hc, struct urb *urb)
urb->status = 0; urb->status = 0;
spin_unlock_irqrestore (&urb->lock, flags); spin_unlock_irqrestore (&urb->lock, flags);
if (!(urb->transfer_flags & URB_NO_DMA_MAP)
&& usb_pipein (urb->pipe))
pci_dma_sync_single (hc->hcd.pdev, urb->transfer_dma,
urb->transfer_buffer_length,
PCI_DMA_FROMDEVICE);
#ifdef OHCI_VERBOSE_DEBUG #ifdef OHCI_VERBOSE_DEBUG
urb_print (urb, "INTR", usb_pipeout (urb->pipe)); urb_print (urb, "INTR", usb_pipeout (urb->pipe));
#endif #endif
...@@ -93,6 +99,8 @@ static inline void intr_resub (struct ohci_hcd *hc, struct urb *urb) ...@@ -93,6 +99,8 @@ static inline void intr_resub (struct ohci_hcd *hc, struct urb *urb)
urb->status = -EINPROGRESS; urb->status = -EINPROGRESS;
spin_unlock (&urb->lock); spin_unlock (&urb->lock);
/* syncing with PCI_DMA_TODEVICE is evidently trouble... */
spin_lock (&hc->lock); spin_lock (&hc->lock);
td_submit_urb (hc, urb); td_submit_urb (hc, urb);
spin_unlock_irqrestore (&hc->lock, flags); spin_unlock_irqrestore (&hc->lock, flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment