Guennadi Liakhovetski <g.liakhovetski@xxxxxx> writes: >> /* init DMA for Y channel */ > > How about taking the loop over the sg list out of pxa_init_dma_channel() > to avoid having to iterate it from the beginning each time? Then you would > be able to split it into channels inside that global loop? Would that > work? Of course you might need to rearrange functions to avoid too deep > code nesting. Ok, will try that. The more I think of it, the more it looks to me like a generic thing : take an sglist, and an array of sizes, and split the sglist into several sglists, each of the defined size in the array. Or more code-like speaking : - sglist_split(struct scatterlist *sg_int, size_t *sizes, int nb_sizes, struct scatterlist **sg_out) - and sg_out is an array of nb_sizes (struct scatterlist *sg) So I will try that out. Maybe if that works out for pxa_camera, Jens or Russell would accept that into lib/scatterlist.c. Cheers. -- Robert -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html