[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
+
diff --git a/upstream/linux-5.10/include/net/SI/netioc_proc.h b/upstream/linux-5.10/include/net/SI/netioc_proc.h
index f0c8aa4..38f9bce 100755
--- a/upstream/linux-5.10/include/net/SI/netioc_proc.h
+++ b/upstream/linux-5.10/include/net/SI/netioc_proc.h
@@ -417,6 +417,9 @@
extern int fast_local4_output_num; //±¾µØfast_local4³É¹¦·¢Ëͱ¨ÎÄ
extern int fast_local6_output_num; //±¾µØfast_local6³É¹¦·¢Ëͱ¨ÎÄ
extern int fast_tcpdump_num; //fast×¥°üÊýÁ¿
+extern int skb_expand4; //Í·¿Õ¼ä²»¹»ÖØÐÂÉêÇëµÄV4Êý¾Ý°ü
+extern int skb_expand6; //Í·¿Õ¼ä²»¹»ÖØÐÂÉêÇëµÄV6Êý¾Ý°ü
+
extern int double_mac;
diff --git a/upstream/linux-5.10/include/net/netfilter/nf_conntrack.h b/upstream/linux-5.10/include/net/netfilter/nf_conntrack.h
index 04ab917..ff7b8ea 100755
--- a/upstream/linux-5.10/include/net/netfilter/nf_conntrack.h
+++ b/upstream/linux-5.10/include/net/netfilter/nf_conntrack.h
@@ -131,6 +131,7 @@
struct conn_skbinfo packet_info[IP_CT_DIR_MAX];
struct net_device* indev[IP_CT_DIR_MAX];
struct net_device* outdev[IP_CT_DIR_MAX];
+ void *fast_entry;
};
static inline struct nf_conn *