Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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