Re: [PATCH 2/3] MUSB : Fix for DaVinci CPPI DMA incorrect handling of actual_len field

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 02, 2009 at 05:04:22PM +0100, Sergei Shtylyov wrote:
> Hello.
> 
> Felipe Balbi wrote:
> 
> >>>  CPPI basically fails now with the bulk transfers, at least under the
> >>>high load -- the patch is coming... I don't feel sure but looking at
> >>>the Inventra DMA code it seems that it might have the same issue when
> >>>using DMA mode 1 -- I don't see where it clears TXCSR.DMAReqMode bit if
> >>>it decides to set TxPktRdy instead of calling musb_dma_completion(), so
> >>>it should never be getting another interrupt on TxPktRdy = 0...
> 
> >>   Ah, it implicitly clears DMA bits by writing only
> >>MUSB_TXCSR_TXPKTDRY... but that violates the programming guide then which
> >>says that DMAReq{Enab|Mode} can't be cleared at once -- DMAReqMode must
> >>always be cleared after DMAReqEnab.
> 
> > There's another thing I'm experimenting with... Taking musb_gadget.c as
> > example, I'm setting correct [RT}XCSR registers on musb_gadget_enable()
> > time, meaning that DMAReqEnab and DMAReqMode would be set there and
> > never touched again.
> 
> > It seems to work for gadget side.
> 
>     It won't work on the host Tx path -- you'll see why RSN.
> 
> > So I just have to play with [RT]XPKTRDY bit.
> 
> > I still have some glitches but seems that we don't have to keep
> > enabling/disabling DMA bits in [RT]XCSR registers.
> 
>     No, we'll have to.

haha, you were right ;-)

it's really needed that we only write [RT]XCSR before kicking dma and
turn off those bits otherwise

-- 
balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux