bluetooth: Add the Judge of the bluetooth irq to send wake up key
authorwdc <wdc@rock-chips.com>
Wed, 13 Jul 2011 06:31:37 +0000 (14:31 +0800)
committerwdc <wdc@rock-chips.com>
Wed, 13 Jul 2011 06:32:22 +0000 (14:32 +0800)
arch/arm/mach-rk29/board-rk29-a22-rfkill.c
arch/arm/mach-rk29/board-rk29-phonesdk-rfkill.c

index c05206c4ce9416578f085055618d470fb82be546..66fe1c96afe9a7a74f08f8e55bdf0ae2270d8dad 100755 (executable)
@@ -64,11 +64,17 @@ void resetBtHostSleepTimer(void)
     mod_timer(&(gBtCtrl.tl),jiffies + BT_WAKE_LOCK_TIMEOUT*HZ);//ÔÙÖØÐÂÉèÖó¬Ê±Öµ¡£    
 }
 
-void btWakeupHostLock(void)
+void btWakeupHostLock(bool bt_irq_wake)
 {
     if(gBtCtrl.b_HostWake == false){
         DBG("*************************Lock\n");
-               rk28_send_wakeup_key();
+
+               if(bt_irq_wake)
+               {
+                       printk("BT wakeup hostLock by send wakeup key\n");
+                       rk28_send_wakeup_key();
+               }
+               
         wake_lock(&(gBtCtrl.bt_wakelock));
         gBtCtrl.b_HostWake = true;
     }
@@ -107,7 +113,7 @@ static int bcm4329_rfkill_resume(struct platform_device *pdev)
 {  
     DBG("%s\n",__FUNCTION__);    
        
-    btWakeupHostLock();
+    btWakeupHostLock(false);
     resetBtHostSleepTimer();
 
        gpio_set_value(RK29_PIN2_PA7, GPIO_LOW);
@@ -124,7 +130,7 @@ static irqreturn_t bcm4329_wake_host_irq(int irq, void *dev)
 {
        DBG("%s\n",__FUNCTION__);    
 
-    btWakeupHostLock();
+    btWakeupHostLock(true);
     resetBtHostSleepTimer();
        return IRQ_HANDLED;
 }
@@ -157,7 +163,7 @@ static int bcm4329_set_block(void *data, bool blocked)
                mdelay(200);
         
 #if BT_WAKE_HOST_SUPPORT     
-            btWakeupHostLock();
+            btWakeupHostLock(false);
 #endif         
                pr_info("bt turn on power\n");
        }
index f06338a8650b62bc18558b85f98a0ca283c7f187..e835d2da14e691ef17424decd58b2d4cbe79e452 100755 (executable)
@@ -64,11 +64,17 @@ void resetBtHostSleepTimer(void)
     mod_timer(&(gBtCtrl.tl),jiffies + BT_WAKE_LOCK_TIMEOUT*HZ);//ÔÙÖØÐÂÉèÖó¬Ê±Öµ¡£    
 }
 
-void btWakeupHostLock(void)
+void btWakeupHostLock(bool bt_irq_wake)
 {
     if(gBtCtrl.b_HostWake == false){
         DBG("*************************Lock\n");
-               rk28_send_wakeup_key();
+
+               if(bt_irq_wake)
+               {
+                       printk("BT wakeup hostLock by send wakeup key\n");
+                       rk28_send_wakeup_key();
+               }
+               
         wake_lock(&(gBtCtrl.bt_wakelock));
         gBtCtrl.b_HostWake = true;
     }
@@ -107,7 +113,7 @@ static int bcm4329_rfkill_resume(struct platform_device *pdev)
 {  
     DBG("%s\n",__FUNCTION__);     
        
-    btWakeupHostLock();
+    btWakeupHostLock(false);
     resetBtHostSleepTimer();
 
        gpio_set_value(RK29_PIN2_PA7, GPIO_LOW);
@@ -124,7 +130,7 @@ static irqreturn_t bcm4329_wake_host_irq(int irq, void *dev)
 {
        DBG("%s\n",__FUNCTION__);    
 
-    btWakeupHostLock();
+    btWakeupHostLock(true);
     resetBtHostSleepTimer();
        return IRQ_HANDLED;
 }
@@ -157,7 +163,7 @@ static int bcm4329_set_block(void *data, bool blocked)
                mdelay(200);
         
 #if BT_WAKE_HOST_SUPPORT     
-            btWakeupHostLock();
+            btWakeupHostLock(false);
 #endif         
                pr_info("bt turn on power\n");
        }