Libertas GSPI seemingly losing tx

Sebastian Andrzej Siewior liber+tas at ml.breakpoint.cc
Mon Apr 19 05:30:50 EDT 2010


* Ian Jeffray | 2010-04-14 22:21:11 [+0100]:

>I've got an 8686 connected to a Blackfin via GSPI.  Works fine
>at 1MHz, no problems.  Increasing the bus speed any higher
>(all the way to 30MHz tested) works fine for a while, but then
>eventually it seems that TX stops working somehow.
>
>I'm not sure if this is GSPI-specific, but it's the only mode of
>operation I'm able to test.  I'm using the 2.6.33.2 kernel.  The
>problem "appears" to be reduced a little by adding a .cs_chg_udelay = 1
>to the Blackfin SPI resources.  I've tested this against five
>different wifi client devices now - all the same outcome.

The SPI message has three parts:
- send the request
- send 0 bytes if use_dummy_writes else use a delay in the chip
- read the result

the "send 0 bytes" is important as it gives the 8686 time to prepare the
request. Now if you use the dummy writes and you are increasing the bus
speed then you will shorten the delay you achieve.
You could prove this by switching to constant delays at both bus speeds
(one MHz and 30 MHz) or just increase the number of dummy transfers.
I have no spec here so I don't know which bus speeds the Chips is
capable of and how long the delay has to be.

Sebastian



More information about the libertas-dev mailing list