Training courses
Kernel and Embedded Linux
Bootlin training courses
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
// SPDX-License-Identifier: GPL-2.0 // Copyright (c) 2011-2017, The Linux Foundation. All rights reserved. // Copyright (c) 2018, Linaro Limited #include "q6dsp-common.h" #include <linux/kernel.h> #include <linux/module.h> #include <linux/string.h> #include <linux/errno.h> int q6dsp_map_channels(u8 ch_map[PCM_MAX_NUM_CHANNEL], int ch) { memset(ch_map, 0, PCM_MAX_NUM_CHANNEL); switch (ch) { case 1: ch_map[0] = PCM_CHANNEL_FC; break; case 2: ch_map[0] = PCM_CHANNEL_FL; ch_map[1] = PCM_CHANNEL_FR; break; case 3: ch_map[0] = PCM_CHANNEL_FL; ch_map[1] = PCM_CHANNEL_FR; ch_map[2] = PCM_CHANNEL_FC; break; case 4: ch_map[0] = PCM_CHANNEL_FL; ch_map[1] = PCM_CHANNEL_FR; ch_map[2] = PCM_CHANNEL_LS; ch_map[3] = PCM_CHANNEL_RS; break; case 5: ch_map[0] = PCM_CHANNEL_FL; ch_map[1] = PCM_CHANNEL_FR; ch_map[2] = PCM_CHANNEL_FC; ch_map[3] = PCM_CHANNEL_LS; ch_map[4] = PCM_CHANNEL_RS; break; case 6: ch_map[0] = PCM_CHANNEL_FL; ch_map[1] = PCM_CHANNEL_FR; ch_map[2] = PCM_CHANNEL_LFE; ch_map[3] = PCM_CHANNEL_FC; ch_map[4] = PCM_CHANNEL_LS; ch_map[5] = PCM_CHANNEL_RS; break; case 8: ch_map[0] = PCM_CHANNEL_FL; ch_map[1] = PCM_CHANNEL_FR; ch_map[2] = PCM_CHANNEL_LFE; ch_map[3] = PCM_CHANNEL_FC; ch_map[4] = PCM_CHANNEL_LS; ch_map[5] = PCM_CHANNEL_RS; ch_map[6] = PCM_CHANNEL_LB; ch_map[7] = PCM_CHANNEL_RB; break; default: return -EINVAL; } return 0; } EXPORT_SYMBOL_GPL(q6dsp_map_channels); MODULE_LICENSE("GPL v2");