diff --git a/fm_hci/fm_hci.cpp b/fm_hci/fm_hci.cpp
index 18ffc19..6c1e07e 100644
--- a/fm_hci/fm_hci.cpp
+++ b/fm_hci/fm_hci.cpp
@@ -185,13 +185,14 @@
 *******************************************************************************/
 static int enqueue_fm_tx_cmd(struct fm_command_header_t *hdr)
 {
-    ALOGI("%s:  opcode 0x%x len:%d", __func__,  hdr->opcode, hdr->len);
+    ALOGI("%s:  opcode 0x%x len:%d tx_processing %d", __func__,  hdr->opcode, hdr->len, hci.is_tx_processing);
 
     hci.tx_queue_mtx.lock();
     hci.tx_cmd_queue.push(hdr);
     hci.tx_queue_mtx.unlock();
 
     if (hci.is_tx_processing == false) {
+        ALOGI("%s:  notifying tx_processing %d", __func__,hci.is_tx_processing);
         hci.tx_cond.notify_all();
     }
 
@@ -221,18 +222,21 @@
 
     while (1) {
         hci.tx_queue_mtx.lock();
+        ALOGI("%s inside while(1) %d", __func__,hci.tx_cmd_queue.empty());
         if(hci.tx_cmd_queue.empty()){
-            ALOGI("No more FM CMDs are available in the Queue");
+            ALOGI(" %s No more FM CMDs are available in the Queue",__func__);
             hci.is_tx_processing = false;
             hci.tx_queue_mtx.unlock();
             return;
         } else {
+            ALOGI("%s tx_processing", __func__);
             hci.is_tx_processing = true;
         }
 
         hdr = hci.tx_cmd_queue.front();
         hci.tx_cmd_queue.pop();
         hci.tx_queue_mtx.unlock();
+        ALOGI("%s: packet popped %d credits", __func__,hci.command_credits);
 
         Lock lk(hci.credit_mtx);
         while (hci.command_credits == 0) {
@@ -245,6 +249,7 @@
         }
         hci.command_credits--;
         hci_transmit(hdr);
+        ALOGI("%s: packet transmitted %d credits", __func__,hci.command_credits);
     }
 }
 
@@ -268,9 +273,18 @@
 
     while (hci.state != FM_RADIO_DISABLING && hci.state != FM_RADIO_DISABLED) {
         //wait  for tx cmd
+        ALOGV("%s: acquiring lock %d credits!!!" , __func__,hci.command_credits);
         Lock lk(hci.tx_cond_mtx);
-        hci.tx_cond.wait(lk);
-        ALOGV("%s: dequeueing the tx cmd!!!" , __func__);
+        if(hci.tx_cmd_queue.empty())
+        {
+          ALOGI("%s: before wait %d credits!!!" , __func__,hci.command_credits);
+          hci.tx_cond.wait(lk);
+        }
+        else
+        {
+          ALOGI("%s:queue is not empty dont wait" , __func__);
+        }
+        ALOGV("%s: after wait dequeueing the tx cmd!!!" , __func__);
         dequeue_fm_tx_cmd();
     }
 
