[Non-ACR] added events & states for modem power 10/233710/7 accepted/tizen/5.5/unified/20200521.163211 submit/tizen_5.5/20200521.023747
authorRandeep Singh <randeep.s@samsung.com>
Mon, 18 May 2020 09:59:38 +0000 (15:29 +0530)
committerAbhishek Vijay <abhishek.v@samsung.com>
Wed, 20 May 2020 12:07:23 +0000 (12:07 +0000)
Change-Id: Ife5db285499536a2719a91ba80182107303ae2eb
Signed-off-by: Randeep Singh <randeep.s@samsung.com>
src/battery_dump/bm_listeners.c

index 2aab39c..1c5144b 100644 (file)
@@ -53,6 +53,8 @@ static int lock_hsp = 0;
 static int app_hsp = 0;
 //static int charging_hsp = 0;
 static int wakeup_hsp = 0;
+static int modem_hsp = 0;
+static int modem_flag = 0;
 static int prev_wakeup = 0;
 static int prev_lock = 0;
 static int prev_battery_level = 0;
@@ -416,8 +418,8 @@ static void fill_wifi_device_state_data(int state)
        if (data_obj) {
                if (state == WIFI_MANAGER_DEVICE_STATE_ACTIVATED) {
                        data_obj->event_code = ET_NONE;
+                       data_obj->event_code |= ET_ACTIVE;
                        data_obj->event_code |= ET_FLAG_START;
-                       data_obj->event_code |= ET_CONNECTIVITY_CHANGED;
                        data_obj->event_tag = NULL;
                        data_obj->event_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
                        if (data_obj->event_tag) {
@@ -432,8 +434,8 @@ static void fill_wifi_device_state_data(int state)
                        data_obj->state_2 |= ST2_WIFI_ON_FLAG;
                } else {
                        data_obj->event_code = ET_NONE;
+                       data_obj->event_code |= ET_ACTIVE;
                        data_obj->event_code |= ET_FLAG_FINISH;
-                       data_obj->event_code |= ET_CONNECTIVITY_CHANGED;
                        data_obj->event_tag = NULL;
                        data_obj->event_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
                        if (data_obj->event_tag) {
@@ -928,6 +930,56 @@ static int fill_app_status_change(int val, char *app_id)
        return 0;
 }
 
+static void fill_modem_power_state_change(int state)
+{
+       ENTER;
+
+       _INFO("fill_modem_power_state_change - state[%d]", state);
+
+       if (data_obj && state == 0) { /* ON */
+               data_obj->event_code = ET_NONE;
+               data_obj->event_code |= ET_ACTIVE;
+               data_obj->event_code |= ET_FLAG_START;
+               data_obj->event_tag = NULL;
+
+               data_obj->event_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
+               if (data_obj->event_tag) {
+                       listener_hsp++;
+                       modem_hsp = listener_hsp;
+                       data_obj->event_tag->sp_idx = modem_hsp;
+                       _DBG("ON event tag - success");
+               } else {
+                       _ERR("ON event tag - failure");
+                       return;
+               }
+
+               data_obj->state_1 |= ST1_MOBILE_RADIO_ACTIVE_FLAG;
+
+       } else if (data_obj && state == 1) { /* OFF */
+               data_obj->event_code = ET_NONE;
+               data_obj->event_code |= ET_ACTIVE;
+               data_obj->event_code |= ET_FLAG_FINISH;
+               data_obj->event_tag = NULL;
+
+               data_obj->event_tag = (history_tag_s *)calloc(1, sizeof(history_tag_s));
+               if (data_obj->event_tag) {
+                       data_obj->event_tag->sp_idx = modem_hsp;
+                       _DBG("OFF event tag - success");
+               } else {
+                       _ERR("OFF event tag - failure");
+                       return;
+               }
+
+               data_obj->state_1 &= ~(ST1_MOBILE_RADIO_ACTIVE_FLAG);
+
+       } else {
+               _ERR("invalid data-object or state");
+       }
+
+       EXIT;
+       return;
+}
+
 static void bm_create_event_data(int type, int val, char *app)
 {
        ENTER;
@@ -984,6 +1036,9 @@ static void bm_create_event_data(int type, int val, char *app)
                        break;
                else
                        return;
+       case LISTEN_MODEM_POWER_STATE:
+               fill_modem_power_state_change(val);
+               break;
        default:
                return;
        }
@@ -1551,15 +1606,23 @@ static void _bm_notify_modem_power(TapiHandle *handle, const char *noti_id, void
        _INFO("modem power change notification - data[%d]", *((int *)data));
 
        int *status = (int *)data;
+
+       if (*status && !modem_flag) {
+               _DBG("redundant request");
+               return;
+       }
+
        int state = -1;
 
        /* handling only On/Off states */
        switch(*status) {
                case 0: /* ON */
                        state = 0;
+                       modem_flag = 1;
                        break;
                case 1: /* OFF */
                        state = 1;
+                       modem_flag = 0;
                        break;
                default:
                        break;