[Feature][T106_eSDK]update from T106-V2.01.01.02P56U06.AP.15.11_CAP.15.11.01 to T106-V2.01.01.02P56U06.AP.17.02_CAP.17.02.02 -- code

Only Configure: No
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No

Change-Id: Ib96b45ce27a9cc1e8e774c42334dfb86aa0da634
diff --git a/upstream/linux-5.10/include/linux/soc/sc/spinlock.h b/upstream/linux-5.10/include/linux/soc/sc/spinlock.h
index eb5e7b7..17faf8b 100755
--- a/upstream/linux-5.10/include/linux/soc/sc/spinlock.h
+++ b/upstream/linux-5.10/include/linux/soc/sc/spinlock.h
@@ -103,7 +103,7 @@
 void  reg_spin_unlock(void);

 void  soft_spin_lock_psm(emsf_lock_id sfid);

 void  soft_spin_unlock_psm(emsf_lock_id sfid);

-

+void  soft_spin_lock_nand_psm(emsf_lock_id sfid);

 void zx_spinlock_init(void __iomem *spinlock_base);

 int  soft_spin_lock_printf(emsf_lock_id sfid);

 

diff --git a/upstream/linux-5.10/include/linux/soc/zte/spinlock.h b/upstream/linux-5.10/include/linux/soc/zte/spinlock.h
index 1181933..e5edb44 100755
--- a/upstream/linux-5.10/include/linux/soc/zte/spinlock.h
+++ b/upstream/linux-5.10/include/linux/soc/zte/spinlock.h
@@ -107,7 +107,7 @@
 void  reg_spin_unlock(void);

 void  soft_spin_lock_psm(emsf_lock_id sfid);

 void  soft_spin_unlock_psm(emsf_lock_id sfid);

-

+void  soft_spin_lock_nand_psm(emsf_lock_id sfid);

 void zx_spinlock_init(void __iomem *spinlock_base);

 int  soft_spin_lock_printf(emsf_lock_id sfid);

 

diff --git a/upstream/linux-5.10/include/linux/volte_drv.h b/upstream/linux-5.10/include/linux/volte_drv.h
new file mode 100755
index 0000000..7862449
--- /dev/null
+++ b/upstream/linux-5.10/include/linux/volte_drv.h
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2013 ZTE, China
+ *
+ * It has the ioctl definitions for the volte driver that
+ * userspace needs to know about.
+ */
+
+#ifndef __LINUX_VOLTE_DRV_H
+#define __LINUX_VOLTE_DRV_H
+
+#include <linux/ioctl.h>
+#include <linux/types.h>
+
+
+
+typedef enum {
+    VOICE_GSM_MODE = 0,
+    VOICE_TD_MODE ,
+    VOICE_WCDMA_MODE,
+    VOICE_LTE_MODE,
+    VOICE_GSM_TD_MODE,//GSM TD share
+    VOICE_GSM_WCDMA_MODE,    //GSM WCDMA share
+    MAX_VOICE_MODE
+} T_ZDrvVoice_MODE;
+typedef struct {
+	uint32_t clock_rate;
+	uint32_t channel_count;
+	uint32_t samples_per_frame;
+	uint32_t bits_per_sample;
+	uint32_t mode;
+} T_ZDrvVoice_Cfg;
+
+typedef   T_ZDrvVoice_Cfg T_ZDrvVolte_Cfg;
+
+#ifdef __KERNEL__
+struct volte_dev {
+	T_ZDrvVoice_Cfg param;
+	void *readbuf;
+	void *writebuf;
+};
+#endif
+
+#define VOLTE_IOCTL_READ_START	_IO('v', 1)
+#define VOLTE_IOCTL_READ_STOP	_IO('v', 2)
+#define VOLTE_IOCTL_WRITE_START	_IO('v', 3)
+#define VOLTE_IOCTL_WRITE_STOP	_IO('v', 4)
+#define VOLTE_IOCTL_SET_CFG	_IOW('v', 5, T_ZDrvVoice_Cfg)
+#define VOLTE_IOCTL_GET_SLIC_USE_FLAG	_IOR ('v', 6, int)
+
+/**************voice  define****************/
+typedef enum {
+    AMR_NB_CODEC = 0,
+    AMR_WB_CODEC,
+
+    MAX_CODEC_TYPE
+} T_Codec_Type;
+
+typedef enum {
+    DSP_PATH = 0,
+    SOFT_PATH,
+    MAX_CODEC_PATH
+} T_Codec_Path;
+
+typedef enum {
+    NOR_VOICE_INF_MODE = 0,//normal
+    VB_VOICE_INF_MODE,//voice buffer
+    MAX_VOICE_INF_MODE
+} T_VoiceInfMode;
+
+
+typedef enum {
+    VOICE_STOP = 0,
+    VOICE_START,
+    MAX_VOICE_STATE
+} T_Voice_State;
+
+typedef struct {
+	uint32_t clock_rate;  //8000;16000
+	uint32_t mode; //// 0 gsm;1 td;2 wcdma;3 lte
+	uint32_t codec_type;//0 amr-nb;1 amr-wb
+	uint32_t codec_path;//0 hardware dsp;1 soft amr lib
+
+
+} T_Voice_Para;
+
+typedef struct {
+	uint32_t fs;  //8000;16000 
+	uint32_t enable; //// 0 disable;1 enable
+	uint32_t type;//0 single core;1 mult core
+
+
+} T_VoiceBuf_Para;
+
+
+#ifdef __KERNEL__
+struct voice_dev {
+	T_Voice_Para param;
+	uint32_t voice_state;
+};
+#endif
+
+#define VOICE_IOCTL_START	_IOW('v', 10, T_ZDrvVoice_Cfg)
+#define VOICE_IOCTL_STOP	_IOW('v', 11, T_ZDrvVoice_Cfg)
+#define VOICE_IOCTL_GET_SLIC_USE_FLAG	_IOR ('v', 12, int)
+#define VOICE_IOCTL_VPLOOP	_IOW('v', 13, int)
+
+#define VOICE_IOCTL_SET_VOL	_IOW('v', 14, int)
+#define VOICE_IOCTL_GET_VOL	_IOR('v', 15, int) 
+
+#define VOICE_IOCTL_SET_MUTE	_IOW('v', 16, bool)
+#define VOICE_IOCTL_GET_MUTE	_IOR('v', 17, bool)
+
+#define VOICE_IOCTL_SET_PATH	_IOW('v', 18, int)
+#define VOICE_IOCTL_GET_PATH	_IOR('v', 19, int) 
+
+#define VOICE_IOCTL_GET_FS	_IOR('v', 20, int)
+#define VOICE_IOCTL_SET_VOICE_NVRW	_IOW('v', 21, int)
+
+#define VOICE_IOCTL_SET_VP	_IOW('v', 22, int)
+#define VOICE_IOCTL_GET_VP	_IOR('v', 23, int) 
+
+#define VOICE_IOCTL_SET_VBUF	_IOW('v', 24, T_VoiceBuf_Para)
+#define VOICE_IOCTL_GET_VBUF	_IOR('v', 25, T_VoiceBuf_Para) 
+
+#define VOICE_IOCTL_SET_INF_MODE	_IOW('v', 26, int)
+#define VOICE_IOCTL_GET_INF_MODE	_IOR('v', 27, int) 
+
+
+
+#ifdef __KERNEL__
+#define  print_audio(fmt, ...)  \
+		printk(fmt, ##__VA_ARGS__)
+#endif
+
+/**************audiomix  define****************/
+typedef struct {
+    uint32_t sample_rate;
+    uint32_t audioType;
+    //uint32_t samples_per_frame;
+    //uint32_t bits_per_sample;
+} T_ZDrvAudioMix_Cfg;
+
+#ifdef __KERNEL__
+struct audio_mix_dev {
+    T_ZDrvAudioMix_Cfg param;
+    //void *readbuf;
+    void *writebuf;
+};
+#endif
+ 
+#define AUDIOMIX_IOCTL_SET_CFG _IOW('v', 7, T_ZDrvAudioMix_Cfg) 
+
+#endif
+