Hi
when I used spidev to operate spi on DM6467, I encountered a seriou problem. the linux kernel is 2.6.32-rc2-davinci1, and the spi was configured to use EDMA.
here is code in application:
xfer[0].tx_buf = (__u64) buf;
xfer[0].rx_buf = (__u64) rcv;
xfer[0].len = len;
xfer[0].delay_usecs = 0;
status = ioctl(fd, SPI_IOC_MESSAGE(1), xfer);
if (status < 0) {
perror("SPI_IOC_MESSAGE");
return;
}
when the application executed to "status = ioctl(fd, SPI_IOC_MESSAGE(1), xfer);", it was blocked on
"static ssize_t spidev_sync(struct spidev_data *spidev, struct spi_message *message)" in driver/spi/spidev.c
I used chip scope to analyse and found that the data could be sended correctly.the problem is that we can not
get the receive data.
in addition the kernel printed such msg: "EMR0 00030000", it indicated that EDMA ecounted a missed error
any one can help me? thanks very much!