a213y: power key fail [1/1]
PD#SWPL-101412
Problem:
Press the ON key briefly, and the suspend/resume function fails
Solution:
fix events_process
Verify:
a213y_au401
Signed-off-by: kirk.wang <kirk.wang@amlogic.com>
Change-Id: I76280b56947253ac9e3df9c33494ac1b5dbe5b87
diff --git a/utils/events_process.cpp b/utils/events_process.cpp
index 617e6f9..ee4edf0 100644
--- a/utils/events_process.cpp
+++ b/utils/events_process.cpp
@@ -41,6 +41,14 @@
load_key_map();
}
+EventsProcess::~EventsProcess() {
+
+ if ( (keys_map != g_default_keymap) && (NULL != keys_map) ) {
+ free(keys_map);
+ }
+ pthread_mutex_destroy(&key_queue_mutex);
+ pthread_cond_destroy(&key_queue_cond);
+}
int EventsProcess::InputCallback(int fd, uint32_t epevents, void* data) {
return reinterpret_cast<EventsProcess*>(data)->OnInputEvent(fd, epevents);
@@ -243,20 +251,18 @@
}
fclose(fstab);
- printf("keyboard key map table:\n");
+
} else {
printf("error: failed to open /etc/gpio_key.kl, use default map\n");
num_keys = DEFAULT_KEY_NUM;
keys_map = g_default_keymap;
}
- printf("keyboard key map table:\n");
- int i;
- for (i = 0; i < num_keys; ++i) {
- KeyMapItem_t* v = &keys_map[i];
- printf(" %d type:%s value:%d mode:%d\n", i, v->type, v->value, v->mode);
- }
- if (keys_map != g_default_keymap)
- free(keys_map);
+ printf("keyboard key map table:\n");
+ int i;
+ for (i = 0; i < num_keys; ++i) {
+ KeyMapItem_t* v = &keys_map[i];
+ printf(" %d type:%s value:%d mode:%d\n", i, v->type, v->value, v->mode);
+ }
}
int EventsProcess::getMapKey(int key) {
diff --git a/utils/events_process.h b/utils/events_process.h
index bb6ff75..59b062f 100644
--- a/utils/events_process.h
+++ b/utils/events_process.h
@@ -16,7 +16,7 @@
int mode;
};
EventsProcess();
- virtual ~EventsProcess() { }
+ virtual ~EventsProcess();
virtual void Init();
virtual void WaitKey();
// virtual void KeyLongPress(int key);