Hello, I'm using Grant's platform SCLPC/BestComm driver to transfer data from an FPGA (to disk). Very often I get a negative result from bcom_buffer_done because BCOM_BD_READY is not set.
When searching for a solution I found this mail from Rob Broersen talking about a similar promlem in the MPC5200's FEC interrupt handler: http://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg16324.html When I now do something ugly like if (!bcom_buffer_done(lpbfifo->bcom_cur_task)) mdelay(1); /* retry */ if (!bcom_buffer_done(lpbfifo->bcom_cur_task)) { ERROR!!! return IRQ_HANDLED; } HANDLE BD in the ISR I always succeed, even in the cases where the first check fails and I call the mdelay. Before that I very often ran into the ERROR!!! case and my transfer "failed". Is there a better solution? Does the FEC interrupt handler really work fine as it is right now? I ask, because when I assume that there would be just one active DB (as it always is with the SCLPC platform driver) this one would evt. stall if there wasn't a second interrupt causing the loop to handle it in this second interrupt. Roman -- Roman Fietze Telemotive AG Büro Mühlhausen Breitwiesen 73347 Mühlhausen Tel.: +49(0)7335/18493-45 http://www.telemotive.de _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev