[Sound-open-firmware] [PATCH] Fix pointer of struct dma_trace_data.

Liam Girdwood liam.r.girdwood at linux.intel.com
Thu Mar 1 13:46:51 CET 2018


On Thu, 2018-03-01 at 11:59 +0800, yan.wang at linux.intel.com wrote:
> From: Yan Wang <yan.wang at linux.intel.com>
> 
> Liam's previous patch modify the structure variable from instance to
> pointer. So it is unnecessary to use "&".
> This parameter of parse_page_descriptors() is "void*", so complier
> doesn't find this error.
> 
> Signed-off-by: Yan Wang <yan.wang at linux.intel.com>
> ---
>  src/ipc/intel-ipc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> 
Thanks Yan applied, but I think we need to revisit this API and remove
the void *.

We also need to clean this part :-

if (is_trace)
	err = dma_trace_host_buffer(d, &elem, ring->size);
else
	err = comp_host_buffer(cd, &elem, ring->size);

So that it is only call after the ring parsing is complete. i.e. we
know ring size at the start, so we can allocate an array of elems. This
array can then be filled one by one and we only call the above code at
the end (and pass the elem array).

This above change would help remove the void * and also help deep
buffer (as we are not allocating one elem per page, but allocating one
array instead).

Thanks

Liam


More information about the Sound-open-firmware mailing list