On 14/04/14 14:50, jorge.araujo.vent...@gmail.com wrote:
> I am using spi-omap2-mcspi to drive a network card based on enc28j60 and
> everything works perfect if I define
> DMA_MIN_BYTES = 0 (force to use DMA only) or DMA_MIN_BYTES = 99999
> (force to use PIO only).
> But if I use the original value of 160, the board can send out 10 to 20
> pings approximately
> and if any time the drive switch from PIO to DMA what will be decided by
> the size of data,
> some workqueue tasks hung and the card stops.
> 
> I am using the kernel 3.13.6 patched to beaglebone and did test also
> with the mainline 3.14.0 and the problem is exactly the same.
> 
> I am running with "lockdep" and "detect hung tasks" and I can see that
> four tasks are stopped,
> three from enc28j60 and one from spi-omap2-mcspi.
> 
> The mcspi is stopped in spi-omap2.mcspi.c:480 to wait the completion of
> omap2_mcspi_rx_callback
> that it never happens.
> 
> |468                 ||if| |(tx) { |
> |469                         tx->callback = omap2_mcspi_rx_callback; |
> |470                         tx->callback_param = spi; |
> |471                         dmaengine_submit(tx); |
> |472                 } ||else| |{ |
> |473                                 ||/* FIXME: fall back to PIO? */|||
> |474                 } |
> |475         } |
> |476 |
> |477         dma_async_issue_pending(mcspi_dma->dma_rx); |
> |478         omap2_mcspi_set_dma_req(spi, 1, 1); |
> |479 |
> |480         wait_for_completion(&mcspi_dma->dma_rx_completion); |
> |481         dma_unmap_single(mcspi->dev, xfer->rx_dma, count, |
> |482                          DMA_FROM_DEVICE);|
> 
> 
> Any help/suggestion is welcome. Need more information, please let me
> know, I have more details.
> 
> Thank you.
> 

You might want to also try sending this to the linux-omap list as it's a
bug in mainline too. I know TI are shouting from the rooftops about
using the mainline kernel at the moment so you might be able to leverage
that to get some help.

Good luck!

Cheers,


-- 
  Jack Mitchell (j...@embed.me.uk)
  Embedded Systems Engineer
  Cambridgeshire, UK
  http://www.embed.me.uk
-- 

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to