Bluetooth: btmrvl: release sdio bus after firmware is up

This change “Bluetooth: btmrvl: release sdio bus after firmware is up” in Linux kernel is authored by Aniket Nagarnaik <aniketn [at]> on Thu Aug 6 03:43:09 2015 -0700.

Bluetooth: btmrvl: release sdio bus after firmware is up

We will not release sdio bus until firmware is completely
downloaded and becomes ready. Our 8887 A2 chip can have
separate firmware images for WLAN and bluetooth. This
patch fixes an issue observed when both drivers
simultaneously try to download respective firmwares.

Signed-off-by: Aniket Nagarnaik <>
Signed-off-by: Amitkumar Karwar <>
Signed-off-by: Marcel Holtmann <>

This Linux change may have been applied to various maintained Linux releases and you can find Linux releases including commit 4863e4c.

There are 4 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 drivers/bluetooth/btmrvl_sdio.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/bluetooth/btmrvl_sdio.c b/drivers/bluetooth/btmrvl_sdio.c
index b9a8119..7c09762 100644
--- a/drivers/bluetooth/btmrvl_sdio.c
+++ b/drivers/bluetooth/btmrvl_sdio.c
@@ -1071,8 +1071,6 @@ static int btmrvl_sdio_download_fw(struct btmrvl_sdio_card *card)
-	sdio_release_host(card->func);
 	 * winner or not, with this test the FW synchronizes when the
 	 * module can continue its initialization
@@ -1082,6 +1080,8 @@ static int btmrvl_sdio_download_fw(struct btmrvl_sdio_card *card)
 		return -ETIMEDOUT;
+	sdio_release_host(card->func);
 	return 0;

The commit for this change in Linux stable tree is 4863e4c (patch).

Leave a Reply

Your email address will not be published. Required fields are marked *