FM power on/off sequence changes for cherokee
This include adding fmhal service for access RFKill driver
to do power ON/OFF operations during FM enable/disable.
Change-Id: I77c100533ca47bf0e53bccdbb1d93c08058df4bf
diff --git a/helium/radio-helium.h b/helium/radio-helium.h
index 05fc309..989bb55 100644
--- a/helium/radio-helium.h
+++ b/helium/radio-helium.h
@@ -140,6 +140,7 @@
/* HCI timeouts */
#define RADIO_HCI_TIMEOUT (10000) /* 10 seconds */
+#define ECC_EVENT_BUFSIZE 12
typedef enum {
ASSOCIATE_JVM,
DISASSOCIATE_JVM
diff --git a/helium/radio_helium_hal.c b/helium/radio_helium_hal.c
index 2a29f64..5437bad 100644
--- a/helium/radio_helium_hal.c
+++ b/helium/radio_helium_hal.c
@@ -105,6 +105,7 @@
static void hci_cc_fm_disable_rsp(char *ev_buff)
{
char status;
+ int ret;
if (ev_buff == NULL) {
ALOGE("%s:%s, buffer is null\n", LOG_TAG, __func__);
@@ -119,7 +120,10 @@
jni_cb->disabled_cb();
jni_cb->thread_evt_cb(1);
//close the userial port and power off the chip
- ALOGE("%s:calling fm userial close\n", LOG_TAG );
+ ret = fm_power(FM_RADIO_DISABLE);
+ ALOGI("fm power off status = %d", ret);
+ ALOGE("%s:calling fm userial close\n", LOG_TAG );
+ // sleep(1);
fm_userial_close();
// fm_power(FM_RADIO_DISABLE);
}
@@ -1105,7 +1109,7 @@
ret = fm_hci_init(&hal_cb);
ALOGE("%s:%s: Turning FM ON...", LOG_TAG, __func__);
- fm_power(FM_RADIO_ENABLE);
+ ret = fm_power(FM_RADIO_ENABLE);
ALOGE("%s:%s: Firmware download and HCI Initialization in-progress...", LOG_TAG, __func__);
/* TODO : Start the preload timer */