From 38c637e54740b8144803d6cab0d1270371f973c1 Mon Sep 17 00:00:00 2001
From: Satish kumar sugasi <ssugas@codeaurora.org>
Date: Mon, 29 Aug 2016 18:08:22 -0700
Subject: [PATCH] Call FM power off api  after SSR

This adds logic to do Power control operations after SSR
event received.invokes fmhal service to do Power OFF chip

Change-Id: Ia4e2e720943b02625d22d78757c2f3c748ddec53
---
 fm_hci/fm_hci.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/fm_hci/fm_hci.c b/fm_hci/fm_hci.c
index 2fafe83..a3666af 100644
--- a/fm_hci/fm_hci.c
+++ b/fm_hci/fm_hci.c
@@ -57,6 +57,7 @@ static int fm_hal_fd =0;
 #define WAIT_TIMEOUT 200000 /* 200*1000us */
 
 static void fm_hci_exit(void *arg);
+static int power(struct fm_hci_t *hci, fm_power_state_t state);
 
 static void event_notification(struct fm_hci_t *hci, uint16_t event)
 {
@@ -178,7 +179,7 @@ static int read_fm_event(struct fm_hci_t *hci, struct fm_event_header_t *pbuf, i
 {
     fd_set readFds;
     sigset_t sigmask, emptymask;
-    int n = 0, ret = -1, evt_len = -1;
+    int n = 0, ret = -1, evt_len = -1,status=0;
     volatile int fd = hci->fd;
     struct sigaction action;
 
@@ -230,6 +231,10 @@ static int read_fm_event(struct fm_hci_t *hci, struct fm_event_header_t *pbuf, i
                               ALOGI("%s: FM H/w Err Event Recvd. Event Code: 0x%2x", __func__, pbuf->evt_code);
                               lib_running =0;
                               hci->vendor->ssr_cleanup(0x22);
+                              status  = power(hci, FM_RADIO_DISABLE);
+                              if (status < 0) {
+                                 ALOGE("power off fm radio failed during SSR ");
+                              }
                         } else {
                             ALOGE("%s: Not CS/CC Event: Recvd. Event Code: 0x%2x", __func__, pbuf->evt_code);
                         }
-- 
GitLab