]> Pileus Git - ~andy/linux/blobdiff - drivers/bluetooth/btmrvl_main.c
Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
[~andy/linux] / drivers / bluetooth / btmrvl_main.c
index ee37ef0caee269c0383fd9336ea9cf0d665ddba0..0d32ec82e9bfa5a72e847e43202830f91b2c26d0 100644 (file)
@@ -502,14 +502,17 @@ static int btmrvl_service_main_thread(void *data)
                spin_lock_irqsave(&priv->driver_lock, flags);
                if (adapter->int_count) {
                        adapter->int_count = 0;
+                       spin_unlock_irqrestore(&priv->driver_lock, flags);
+                       priv->hw_process_int_status(priv);
                } else if (adapter->ps_state == PS_SLEEP &&
                                        !skb_queue_empty(&adapter->tx_queue)) {
                        spin_unlock_irqrestore(&priv->driver_lock, flags);
                        adapter->wakeup_tries++;
                        priv->hw_wakeup_firmware(priv);
                        continue;
+               } else {
+                       spin_unlock_irqrestore(&priv->driver_lock, flags);
                }
-               spin_unlock_irqrestore(&priv->driver_lock, flags);
 
                if (adapter->ps_state == PS_SLEEP)
                        continue;