[Bugfix][T106BUG-375][T106BUG-350][T106BUG-352]fix LED error

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

Change-Id: Ic76bb8fba5a6923711824ae4c5303c5828ac168a
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-ril-service/lynq-ril-service.bb b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-ril-service/lynq-ril-service.bb
index 1425ad8..14e1c94 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-ril-service/lynq-ril-service.bb
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-ril-service/lynq-ril-service.bb
@@ -3,7 +3,7 @@
 DESCRIPTION = "lynq ril service"
 LICENSE = "CLOSED"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b1e07e8d88e26263e71d3a9e2aa9a2ff"
-DEPENDS += "${@bb.utils.contains('TARGET_PLATFORM', 'mt2735', 'audio-mixer-ctrl streamer1.0', '', d)} libapn libpal libril libvendor-ril libbinder glib-2.0 dbus liblynq-log liblynq-uci liblynq-shm libmedia libsd-daemon"
+DEPENDS += "${@bb.utils.contains('TARGET_PLATFORM', 'mt2735', 'audio-mixer-ctrl streamer1.0', '', d)} libapn libpal libril libvendor-ril libbinder glib-2.0 dbus liblynq-log liblynq-uci liblynq-shm libmedia libsd-daemon liblynq-led"
 RDEPENDS_${PN} = "libbinder libril libsd-daemon"
 #inherit workonsrc
 WORKONSRC = "${TOPDIR}/../src/lynq/framework/lynq-ril-service/src"
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-led-sev/lynq_led_sev.c b/cap/zx297520v3/src/lynq/framework/lynq-led-sev/lynq_led_sev.c
index 6f6f916..ca23cb2 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-led-sev/lynq_led_sev.c
+++ b/cap/zx297520v3/src/lynq/framework/lynq-led-sev/lynq_led_sev.c
@@ -5,12 +5,13 @@
 #include <strings.h>
 #include<stdlib.h>
 #include <include/lynq_uci.h>
+#include <fcntl.h>
 
 
 #define BUF_LEN 8
 #define GPIO_LED 100
 #define LYNQ_UCI_SECTION "lynq_led"
-#define LYNQ_UCI_KEY "lynq_statusled_on"
+#define LYNQ_UCI_STATUSLED_KEY "lynq_statusled_on"
 
 
 int main(int argc, const char *argv[])
@@ -19,11 +20,13 @@
     char com_val[GPIO_LED] = "";
 
     system("/usr/bin/lynq-default");
-    lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_KEY, led_enable);
+    lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_STATUSLED_KEY, led_enable);
     if(atoi(led_enable))
     {
         sprintf(com_val, "echo %d > /sys/class/gpio/gpio127/value",led_enable);
-        system("echo 127 > /sys/class/gpio/export");
+        if (access("/sys/class/gpio/gpio127", F_OK) != 0) {
+               system("echo 127 > /sys/class/gpio/export");
+         }
         system("echo out > /sys/class/gpio/gpio127/direction");//92 net_Status,127 status
         system(com_val);
     }
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/common.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/common.cpp
index 36d9e01..5c6c204 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/common.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/common.cpp
@@ -43,6 +43,7 @@
 #include <include/lynq_uci.h>
 #ifdef LED_SUPPORT
 #include "led.h"
+#include "libled/lynq_led.h"
 #endif
 #include "lynq_shm.h"
 static pthread_mutex_t s_DataMutex = PTHREAD_MUTEX_INITIALIZER;
@@ -103,7 +104,8 @@
 
 #define LED_ON 4
 #define LYNQ_UCI_SECTION "lynq_led"
-#define LYNQ_UCI_KEY "lynq_netled_on"
+#define LYNQ_UCI_NETLED_KEY "lynq_netled_on"
+
 
 
 /*hq add for key information output start 2022/03/01*/
@@ -581,7 +583,7 @@
     }
 #ifdef LED_SUPPORT
     char netled_on[LED_ON] = "";
-    lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_KEY, netled_on);
+    lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_NETLED_KEY, netled_on);
     if(!atoi(netled_on))
         return ;
     mbtk_netled_state_update(GPIO_NETLED_REFLASH_NORMAL);  
@@ -614,7 +616,7 @@
     }
 #ifdef LED_SUPPORT
     char netled_on[LED_ON] = "";
-    lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_KEY, netled_on);
+    lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_NETLED_KEY, netled_on);
     if(!atoi(netled_on))
         return ;
     mbtk_netled_state_update(GPIO_NETLED_REFLASH_NORMAL);  
@@ -640,7 +642,7 @@
     }
 #ifdef LED_SUPPORT
     char netled_on[LED_ON] = "";
-    lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_KEY, netled_on);
+    lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_NETLED_KEY, netled_on);
     if(!atoi(netled_on))
         return ;
     mbtk_netled_state_update(GPIO_NETLED_REFLASH_NORMAL);  
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/led/led.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/led/led.cpp
index 0a10645..96744aa 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/led/led.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/led/led.cpp
@@ -14,6 +14,8 @@
 #include "led_inner.h"

 #include <liblog/lynq_deflog.h>

 #include "common.h"

+#include "libled/lynq_led.h"

+#include <include/lynq_uci.h>

 

 #undef LOG_TAG

 #define LOG_TAG "LED"

@@ -498,6 +500,9 @@
 SIDE EFFECTS

     None

 =============================================*/

+#define LYNQ_UCI_SECTION "lynq_led"

+#define LYNQ_UCI_NETLED_KEY "lynq_netled_on"

+#define LED_ON 4

 

 void mbtk_gpio_write_output(int gpio_port, int value)

 {

@@ -505,11 +510,21 @@
     char com_exp[MBTK_GPIO_LED] = "";

     char com_dir[MBTK_GPIO_LED] = "";

     char com_val[MBTK_GPIO_LED] = "";

+    char led_path[MBTK_GPIO_LED] = "";

+    char netled_on[LED_ON] = "";

+    lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_NETLED_KEY, netled_on);

+    if(!atoi(netled_on)){

+        system("echo 0 > /sys/class/gpio/gpio92/value");

+        return ;

+    }

     sprintf(com_exp, "echo %d > /sys/class/gpio/export", gpio_port);

     sprintf(com_dir, "echo out > /sys/class/gpio/gpio%d/direction", gpio_port);

     sprintf(com_val, "echo %d > /sys/class/gpio/gpio%d/value", value, gpio_port);

+    sprintf(led_path, "/sys/class/gpio/gpio%d", gpio_port);

 

-    system(com_exp);//92 net_Status,127 status

+    if (access(led_path, F_OK) != 0) {

+           system(com_exp);//92 net_Status,127 status

+       }

     system(com_dir);

     system(com_val);

 #else

diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/makefile b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/makefile
index 11e2e1e..70aac91 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/makefile
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/makefile
@@ -120,6 +120,7 @@
   -I$(ROOT)$(includedir)/dbus-1.0 \
   -I$(ROOT)$(libdir)/dbus-1.0/include \
   -I$(ROOT)$(includedir) \
+  -I$(ROOT)$(includedir)/libled \
 
 
 LOCAL_LIBS := \
@@ -146,6 +147,8 @@
     -lmedia \
     -lril \
     -lsd-daemon \
+    -llynq-led \
+
 
 ifeq ($(strip $(TARGET_PLATFORM)), mt2735)
 LOCAL_LIBS += -luciwrapper -luciwrapper -lgstbase-1.0 -llynq-protcl -llynq-thermal -llynq-systime  -lnandapi -ldtmf -lasound -lgstreamer-1.0 -lmtk_audio_mixer_ctrl -lpower
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/stateManager/stateManager.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/stateManager/stateManager.cpp
index 291fea2..6a7c251 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/stateManager/stateManager.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/stateManager/stateManager.cpp
@@ -50,12 +50,13 @@
 #ifdef LED_SUPPORT
 #include "led.h"
 #include <include/lynq_uci.h>
+#include "libled/lynq_led.h"
 #endif
 #undef LOG_TAG
 #define LOG_TAG "DEMO_MANAGER"
-    #define LED_ON 4
-    #define LYNQ_UCI_SECTION "lynq_led"
-    #define LYNQ_UCI_KEY "lynq_netled_on"
+#define LED_ON 4
+#define LYNQ_UCI_SECTION "lynq_led"
+#define LYNQ_UCI_NETLED_KEY "lynq_netled_on"
 //RIL_REQUEST_DEVICE_IDENTITY
 int getDeviceIdentity(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
 {
@@ -107,7 +108,7 @@
     p.writeInt32(screen_state);
 #ifdef LED_SUPPORT
     char netled_on[LED_ON] = "";
-    lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_KEY, netled_on);
+    lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_NETLED_KEY, netled_on);
     if(!atoi(netled_on))
         return -1;
     mbtk_netled_state_update(screen_state==0 ? GPIO_NETLED_AP_GOINGSLEEP : GPIO_NETLED_AP_WAKEUP);	
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-led/lynq_led.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-led/lynq_led.cpp
index 453a29c..8a40e5c 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-led/lynq_led.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-led/lynq_led.cpp
@@ -6,32 +6,43 @@
 #include <include/lynq_uci.h>

 #include "lynq_led.h"

 

+#include <fcntl.h>

+#include <unistd.h>

+

 #define BUF_LEN 258

 #define LYNQ_UCI_SECTION "lynq_led"

-#define LYNQ_UCI_KEY "lynq_statusled_on"

-#define LYNQ_UCI_STATUSLED_KEY "lynq_netled_on"

-

+#define LYNQ_UCI_STATUSLED_KEY "lynq_statusled_on"

+#define LYNQ_UCI_NETLED_KEY "lynq_netled_on"

+#define GPIO_LED 100

 int lynq_set_netled_on(int led_mode)

 {

     char buf_netled[BUF_LEN] = "";

 

     if(led_mode != 0 && led_mode != 1)

         return -1;

-    sprintf(buf_netled,"%s.%s.%s=%d", LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_STATUSLED_KEY, led_mode);

+    sprintf(buf_netled,"%s.%s.%s=%d", LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_NETLED_KEY, led_mode);

     lynq_uci_set(buf_netled);

 

     return 0;

 }

 

+

 int lynq_set_statusled_on(int led_mode)

 {

     char buf_statusled[BUF_LEN] = "";

+    char com_val[GPIO_LED] = "";

 

     if(led_mode != 0 && led_mode != 1)

         return -1;

-    sprintf(buf_statusled,"%s.%s.%s=%d", LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_KEY, led_mode);

+    sprintf(buf_statusled,"%s.%s.%s=%d", LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_STATUSLED_KEY, led_mode);

     lynq_uci_set(buf_statusled);

+    sprintf(com_val, "echo %d > /sys/class/gpio/gpio127/value",led_mode);

+    if (access("/sys/class/gpio/gpio127", F_OK) != 0) {

+           system("echo 127 > /sys/class/gpio/export");

+     }

+    system("echo out > /sys/class/gpio/gpio127/direction");

+    system(com_val);

 

-    system("/usr/bin/lynq-led-sev");

+    

     return 0;

 }
\ No newline at end of file
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-uci/lynq_uci.config b/cap/zx297520v3/src/lynq/lib/liblynq-uci/lynq_uci.config
index f88ea81..6d46661 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-uci/lynq_uci.config
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-uci/lynq_uci.config
@@ -32,4 +32,5 @@
         option status '0'

         

 config  lynq_led_rw  'lynq_led'

-        option lynq_statusled_on '0'

+        option lynq_statusled_on '1'

+        option lynq_netled_on '1'
\ No newline at end of file