Merge "fm: Check proper FM state before enabling FM Rx/Tx"
diff --git a/qcom/fmradio/FmReceiver.java b/qcom/fmradio/FmReceiver.java
index ac32ff9..a474680 100644
--- a/qcom/fmradio/FmReceiver.java
+++ b/qcom/fmradio/FmReceiver.java
@@ -433,14 +433,16 @@
       if (state == FMState_Rx_Turned_On || state == FMState_Srch_InProg) {
          Log.d(TAG, "enable: FM already turned On and running");
          return status;
-      }
-      else if (state == subPwrLevel_FMTurning_Off) {
+      }else if (state == subPwrLevel_FMTurning_Off) {
          Log.v(TAG, "FM is in the process of turning off.Pls wait for sometime.");
          return status;
-      }
-      else if (state == subPwrLevel_FMRx_Starting) {
+      }else if (state == subPwrLevel_FMRx_Starting) {
          Log.v(TAG, "FM is in the process of turning On.Pls wait for sometime.");
          return status;
+      }else if ((state == FMState_Tx_Turned_On)
+                || (state == subPwrLevel_FMTx_Starting)) {
+         Log.v(TAG, "FM Tx is turned on or in the process of turning on.");
+         return status;
       }
 
       setFMPowerState(subPwrLevel_FMRx_Starting);
diff --git a/qcom/fmradio/FmTransmitter.java b/qcom/fmradio/FmTransmitter.java
index f13e4a7..287da3c 100644
--- a/qcom/fmradio/FmTransmitter.java
+++ b/qcom/fmradio/FmTransmitter.java
@@ -146,18 +146,23 @@
     *
     */
    public boolean enable (FmConfig configSettings){
-      boolean status = true;
+      boolean status = false;
 
       int state = getFMState();
       if (state == FMState_Tx_Turned_On) {
           Log.d(TAG, "enable: FM Tx already turned On and running");
           return status;
-      } else if (state == subPwrLevel_FMTurning_Off) {
+      }else if (state == subPwrLevel_FMTurning_Off) {
           Log.v(TAG, "FM is in the process of turning off.Pls wait for sometime.");
           return status;
-      } else if(state == subPwrLevel_FMTx_Starting) {
+      }else if((state == subPwrLevel_FMTx_Starting)
+                ||(state == subPwrLevel_FMRx_Starting)) {
           Log.v(TAG, "FM is in the process of turning On.Pls wait for sometime.");
           return status;
+      }else if((state == FMState_Srch_InProg)
+                ||(state == FMState_Rx_Turned_On)) {
+          Log.v(TAG, "FM Rx is turned on");
+          return status;
       }
       setFMPowerState(subPwrLevel_FMTx_Starting);
       Log.v(TAG, "enable: CURRENT-STATE : FMOff ---> NEW-STATE : FMTxStarting");