[Sound-open-firmware] [PATCH v2] volume: support 8-channel feature
zhigangw
zhigang.wu at linux.intel.com
Tue Jun 19 09:56:49 CEST 2018
On 2018年06月19日 15:44, Seppo Ingalsuo wrote:
>
>
> On 19.06.2018 09:10, Wu Zhigang wrote:
>> const struct comp_func_map func_map[] = {
>> {SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S16_LE, 2,
>> vol_s16_to_s16_2ch},
>> {SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S32_LE, 2,
>> vol_s16_to_s32_2ch},
>> @@ -485,6 +837,17 @@ const struct comp_func_map func_map[] = {
>> {SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S24_4LE, 4,
>> vol_s32_to_s24_4ch},
>> {SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S32_LE, 4,
>> vol_s24_to_s32_4ch},
>> {SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S24_4LE, 4,
>> vol_s24_to_s24_4ch},
>> +#ifdef CONFIG_APOLLOLAKE
>> + {SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S16_LE, 8,
>> vol_s16_to_s16_8ch},
>> + {SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S32_LE, 8,
>> vol_s16_to_s32_8ch},
>> + {SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S16_LE, 8,
>> vol_s32_to_s16_8ch},
>> + {SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S32_LE, 8,
>> vol_s32_to_s32_8ch},
>> + {SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S24_4LE, 8,
>> vol_s16_to_s24_8ch},
>> + {SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S16_LE, 8,
>> vol_s24_to_s16_8ch},
>> + {SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S24_4LE, 8,
>> vol_s32_to_s24_8ch},
>> + {SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S32_LE, 8,
>> vol_s24_to_s32_8ch},
>> + {SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S24_4LE, 8,
>> vol_s24_to_s24_8ch},
> The code size gets quite big with all the channel count versions of
> generic C volume control. This is probably OK for now since it's for
> larger APL DSP but all volume variants should be possible to handle
> efficiently with 1/2/4 dividable channels count volume handlers
> versions and with Intrinsics code maybe just 1/2. There will be in
> future also float data so this approach is suffering from combinatory
> explosion.
>
> Thanks,
> Seppo
>
I definitely agree with you.
Intrinsic instruction is good for the performance, but it is bad for the
portable.
If we do not care about the portable, we also could try the compiler
option. it is also another choice.
we have to do some experiments in future to balance the code size and
performance.
thanks
~zhigang
> _______________________________________________
> Sound-open-firmware mailing list
> Sound-open-firmware at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/sound-open-firmware
More information about the Sound-open-firmware
mailing list