Re: [PATCH v2 4/4] media: pxa_camera: conversion to dmaengine

Robert Jarzmik
2015-07-12T17:36:01Z

Guennadi Liakhovetski <g.liakhovetski@gmx.de> 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