SPIDEV Throughput

I have been using SPIDEV with the beaglebone for some time now without issue. I have only been doing 2 byte reads until yesterday when I wanted to start increasing my throughput so I started experimenting. What I found is that if I ask for more than 158 bytes through the ioctl interface my application blocks and nothing is received.

Has anyone managed to successfully transfer more than 158 bytes over spidev in one transaction, or have I hit a kernel bug?


I can duplicate this problem. Beaglebone with kernel 3.2.18r12. Angstrom / OE build.

SPIDEV, communicating with a PIC microcontroller, 159 byte packets and smaller no problem, at 160 bytes the communications between the two processors begins to fail. I only need 128 bytes so I'm fine, but I thought I would test with larger packets to confirm your issues. Yup, something is broken..


Thank you Ross. I raised an issue on the TI bug tracker[1] which contains code which shows the issue and hopefully brings it to their attention.

[1] http://e2e.ti.com/support/embedded/linux/f/354/t/200372.aspx

* When I say bug tracker I mean community forum.