123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // 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");
|