Dear Wolfram Sang, > > You can get a large list of i2c messages. In the current implementation, > > yes, they're iterated in mxs_i2c_xfer_msg. Correct. > > > > If you want to do DMA transfer do/from the i2c controller, you have to > > take all these messages and create the chain of DMA transfers according > > to these messages, correct? > > This is what I wonder. I'd think one could work on a per message basis. But then you don't have the DMA chain linked. Which I wonder if the controller has any problem with or not. I tried yesterday, got wrotes working perfectly, but still had issues with reads, which is exactly what needs to be chained. I'll poke further eventually. > Regarding Figure 27-10, the first I2C write command could be sent > seperately (probably even via PIOQUEUE). I wonder if we want to combine pioqueue and DMA, that might create quite some franken-driver. > The only thing to be chained is > the I2C read command and the actual reading of the data. > > Just checked, the FSL driver does it basically this way, too. Which doesn't mean FSL driver does it correctly, but it probably worked for them and there was some bug in my DMA tinkering. Best regards, Marek Vasut -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html