[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