Merge "[Bugfix][T106BUG-149][T106BUG-151]Fix apn_name, username, password, apn_type length error when using demo to add or set apn"
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
index ce51bab..324925d 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
@@ -1973,13 +1973,14 @@
 # CONFIG_ZX_TDM is not set
 CONFIG_SND_SOC_SANECHIPS=y
 # CONFIG_SND_SOC_ZX29_TI3100 is not set
-CONFIG_SND_SOC_ZX29_NAU8810=y
+# CONFIG_SND_SOC_ZX29_NAU8810 is not set
 # CONFIG_SND_SOC_ZX29_TI3104 is not set
 # CONFIG_SND_SOC_ZX29_ES8374 is not set
 # CONFIG_SND_SOC_ZX29_ES8312 is not set
 # CONFIG_SND_SOC_ZX29_AK4940 is not set
 # CONFIG_SND_SOC_ZX29_MAX9867 is not set
 # CONFIG_SND_SOC_ZX29_ES8311 is not set
+CONFIG_SND_SOC_ZX29_ES8311=y
 CONFIG_SND_SOC_ZX_VOICE=y
 CONFIG_SND_SOC_ZX297520V3=y
 CONFIG_SND_SOC_ZX_I2S=y
@@ -1989,6 +1990,7 @@
 # CONFIG_SND_SOC_TLV320AIC3X is not set
 # CONFIG_SND_SOC_MAX9867 is not set
 # CONFIG_SND_SOC_ES8311 is not set
+CONFIG_SND_SOC_ES8311=y
 CONFIG_SND_EXTRA_CTRL=y
 CONFIG_USE_TOP_I2S0=y
 # CONFIG_USE_TOP_I2S1 is not set
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/mbtk_gnss_internal.h b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/mbtk_gnss_internal.h
index 118ebe0..eb7002c 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/mbtk_gnss_internal.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/mbtk_gnss_internal.h
@@ -136,9 +136,9 @@
 
 typedef enum
 {
-    E_MT_LOC_MSG_ID_LOCATION_INFO,          /**<  pv_data = &QL_LOC_LOCATION_INFO_T  */
-    E_MT_LOC_MSG_ID_NMEA_INFO,              /**<  pv_data = &QL_LOC_NMEA_INFO_T  */
-}e_msg_id_t;
+    E_MT_LOC_MSG_ID_LOCATION_INFO = 1,          /**<  pv_data = &QL_LOC_LOCATION_INFO_T  */
+    E_MT_LOC_MSG_ID_NMEA_INFO = 3,              /**<  pv_data = &QL_LOC_NMEA_INFO_T  */
+}e_msg_id_t;  //0,2reserve
 
 #define     QL_LOC_MAX_SEVER_ADDR_LENGTH    255 /**  Maximum generic server address length for the host name. */
 typedef struct 
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
index b90ff63..c2f3056 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
@@ -144,7 +144,6 @@
             (n[1] = strstr_n(&data[n[0]], "*")) &&
             (n[1] > 1)) {
         memcpy(out_data, &data[n[0]], n[1] - 1);
-        printf("%s\n",out_data);
     } else {
         gnss_log("%s %d : error [%d]\n" , __func__, __LINE__, n[1]);
         gnss_log("error: [%d] %s\n", num, data);
@@ -659,15 +658,12 @@
         size_to_wr = buf_len - size;
         if( size_to_wr > MBTK_UART_SEND_BUFFER_MAX)
             size_to_wr = MBTK_UART_SEND_BUFFER_MAX;
-        printf("write 0\n");
         size_written = write(fd, &buf[size], size_to_wr);
-        printf("write 1\n");
         if (size_written==-1)
         {
             return -1;
         }
         printf("send cmd: %s\n", &buf[size]);
-        printf("%d\n",fd);
         size += size_written;
         if(size_written != size_to_wr)
         {
@@ -742,7 +738,6 @@
     {
         while(mbtk_gnss_handle->getap_status){
             // 在读AP_DATA星历时,不能输出NMEA
-            printf("g");
             usleep(100000);
         }
         if(nmea_state == 1)
@@ -751,7 +746,7 @@
             ret = mopen_gnss_read(gnss_handle->dev_fd, buf, MBTK_UART_RECV_BUFFER_SIZE);
             nmea_reading = 0;
             if(ret > 0) {
-                printf("read: [%d] %s\n", ret, buf);
+                printf("%s\n",buf);
                 ring_buffer_queue_arr(&gnss_handle->ring_buffer, buf, ret);
                 memset(buf, 0, sizeof(buf));
             } else {
@@ -934,7 +929,6 @@
         goto err;
     } else if (B9600 == ret) {
         ret = mopen_uart_change(mbtk_gnss_handle->dev_fd, 1);
-        printf("1\n");
         if(ret)
         {
             printf("GNSS Uart set B115200 error\n");
@@ -1086,7 +1080,6 @@
     }
 
     ret = lynq_gnss_send_cmd(h_gnss, send_buf, strlen(send_buf));
-    printf("%s \n",h_gnss);
     if(ret < 0)
     {
         printf("%s FAIL. ret:%d\n", __FUNCTION__, ret);
@@ -1158,16 +1151,13 @@
         printf("%s handler invalid.\n", __func__);
         return -1;
     }
-    printf("ant 0\n");
     ret = lynq_gnss_send_cmd(h_gnss, cmd1_buf, strlen(cmd1_buf));
-    printf("ant 1\n");
     if(ret < 0)
     {
         gnss_log("%s FAIL. ret:%d\n", __func__, ret);
         return -1;
     }
     ret = lynq_gnss_send_cmd(h_gnss, cmd2_buf, strlen(cmd2_buf));
-    printf("ant 2\n");
     if(ret < 0)
     {
         gnss_log("%s FAIL. ret:%d\n", __func__, ret);
@@ -1204,7 +1194,6 @@
         return -1;
     }
     gnss_handle->gnss_handler_func = handler_ptr;
-    printf("okok\n");
     return 0;
 }
 
@@ -1277,7 +1266,6 @@
     {
         if(fgets(buffer, 256, pipe))
         {
-            printf("%s", buffer);
             memset(buffer, 0, sizeof(buffer));
         }
     }
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-vehicle_dc_ref.dts b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-vehicle_dc_ref.dts
index 7d0c6aa..ff55fb9 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-vehicle_dc_ref.dts
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3-vehicle_dc_ref.dts
@@ -141,7 +141,7 @@
 };	
 &zx29_nau8810 {
 	pinctrl-0 = <&i2s0_pins>;
-	status = "okay";
+//	status = "okay";
 };
 &zx29_dummycodec{
 	pinctrl-0 = <&i2s1_pins>;
@@ -155,11 +155,11 @@
 //	status = "okay";
 };
 &codec_es8311 {
-//	status = "okay";
+	status = "okay";
 };	
 &zx29_es8311 {
 	pinctrl-0 = <&i2s0_pins>;
-//	status = "okay";
+	status = "okay";
 };
 &gmac {
     port-nums = <1>;
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3.dtsi b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3.dtsi
index 95545c4..3a19b4f 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3.dtsi
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3.dtsi
@@ -476,11 +476,11 @@
 			};	
 			codec_es8311: codec_es8311@18 {         
 				compatible = "everest,es8311";
-				reg = <0x1A>;		
+				reg = <0x18>;
 				//reset-gpios = <&bgpio 122 GPIO_ACTIVE_HIGH>;/*RST*/
-				clock-names = "clk_out";	
+				clock-names = "clk_out2";
 				clocks = <&clkc CLKOUT2_CLK>;		
-				pinctrl-names = "clk_out";			
+				pinctrl-names = "clk_out2";
 				pinctrl-0 = <&clk2_func_pins>;				
 				status = "disabled";
 			};			
@@ -811,7 +811,7 @@
 			reg-names = "soc_sys";
 
 			zxic,i2s-controller = <&i2s0>;
-			zxic,audio-codec = <&codec_nau8810>;
+                        zxic,audio-codec = <&codec_es8311>;
 			status = "disabled";
 		};		
 		softwdt: softwdt@1301000 {
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/Kconfig b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/Kconfig
index 97e4bc5..74d24c8 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/Kconfig
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/Kconfig
@@ -799,6 +799,7 @@
 config SND_SOC_ES8311
 	tristate "Everest Semi ES8311 CODEC"
 	depends on I2C
+       tristate
 	
 config SND_SOC_GTM601
 	tristate 'GTM601 UMTS modem audio codec'
@@ -1395,6 +1396,7 @@
 config SND_SOC_TLV320AIC3X
 	tristate "Texas Instruments TLV320AIC3x CODECs"
 	depends on I2C
+       select REGMAP_I2C
 
 config SND_SOC_TLV320DAC33
 	tristate
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c
index b68ee46..e5e7d25 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c
@@ -37,6 +37,7 @@
 struct	es8311_private {

 	struct snd_soc_component *component;

 	struct regmap *regmap;

+        struct device *dev;
 	struct clk *mclk;

 	unsigned int mclk_rate;

 	int mastermode;

@@ -1050,7 +1051,8 @@
 	 * 1. sclk/bclk is used as mclk

 	 * 2. mclk is controled by soc I2S

 	 */

-	if (es8311->mclk_src == ES8311_MCLK_PIN) {

+	//if (es8311->mclk_src == ES8311_MCLK_PIN) {

+	if(0) {
 		es8311->mclk = devm_clk_get(component->dev, "mclk");

 		if (IS_ERR(es8311->mclk)) {

 			dev_err(component->dev, "%s,unable to get mclk\n", __func__);

@@ -1129,6 +1131,10 @@
 	snd_soc_component_write(component, ES8311_DAC_REG37, 0x48);

 	snd_soc_component_write(component, ES8311_ADC_REG17, 0xBF);

 	snd_soc_component_write(component, ES8311_DAC_REG32, 0xBF);

+	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG02, 0x98);
+	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG03, 0x1b);
+	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG04, 0x1b);
+	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG05, 0xbb);
 	msleep(100);

 	es8311_set_bias_level(component, SND_SOC_BIAS_STANDBY);

 

@@ -1149,6 +1155,16 @@
 	struct es8311_private *info = dev_get_drvdata(dev);

 	struct device_node *np = dev->of_node;

 

+	unsigned tmp;
+
+	#if 1
+        void __iomem 	*reg_base;
+        reg_base = ioremap(0x13B000+0x94 ,4);
+        tmp  = ioread32(reg_base);
+        tmp |= (1<<0)|(1<<2);
+	iowrite32(tmp,reg_base);
+	#endif
+
 	dev_info(dev, "%s:start!\n", __func__);

 

 	if(dev == NULL){

@@ -1166,7 +1182,7 @@
 	}

 

 

-	state0 = pinctrl_lookup_state(pctrl, "clk_out");

+	state0 = pinctrl_lookup_state(pctrl, "clk_out2");

 	if (IS_ERR(state0)) {

 		devm_pinctrl_put(pctrl);

 		dev_err(dev, "missing clk_out\n");

@@ -1188,7 +1204,7 @@
 

 

 	

-	clk = of_clk_get_by_name(np, "clk_out");	

+	clk = of_clk_get_by_name(np, "clk_out2");

 	if (IS_ERR(clk)) {

 		dev_err(dev, "Could not get clk_out\n");

 		ret = PTR_ERR(clk);

@@ -1459,6 +1475,8 @@
 	if (ret)

 		pr_err("failed to create attr group\n");

 

+        printk("%s end\n", __func__);
+
 	return ret;

 }

 

diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.h b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.h
index 6ffc3d9..5acb206 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.h
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.h
@@ -73,7 +73,8 @@
 /* The VMIDLEVEL is different for 1.8V AVDD */

 #define ES8311_3V3 0

 #define ES8311_1V8 1

-#define ES8311_AVDD ES8311_3V3

+//#define ES8311_AVDD ES8311_3V3

+#define ES8311_AVDD ES8311_1V8

 

 #define ES8311_MCLK_PIN	0

 #define ES8311_BCLK_PIN 1

diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/sanechips/zx29_es83xx.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/sanechips/zx29_es83xx.c
index 2a0a3c8..050a0f8 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/sanechips/zx29_es83xx.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/sanechips/zx29_es83xx.c
@@ -556,7 +556,7 @@
 
 #if defined(CONFIG_SND_SOC_ZX29_ES8311)
 SND_SOC_DAILINK_DEF(codec, \
-		DAILINK_COMP_ARRAY(COMP_CODEC("es8311.1-001a", "es8311-hifi")));
+		DAILINK_COMP_ARRAY(COMP_CODEC("es8311.1-0018", "ES8311 HiFi")));
 
 #elif defined(CONFIG_SND_SOC_ZX29_ES8374)
 
@@ -680,7 +680,8 @@
 	.owner = THIS_MODULE,
 	.dai_link = zx29_dai_link,
 	.num_links = ARRAY_SIZE(zx29_dai_link),
-#ifdef USE_ALSA_VOICE_FUNC
+//#ifdef USE_ALSA_VOICE_FUNC
+#if 0
 	 .controls = vp_snd_controls,
 	 .num_controls = ARRAY_SIZE(vp_snd_controls),
 #endif