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