Bluetooth: btmrvl: fix firmware dump issue
authorNachiket Kukade <kukaden@marvell.com>
Fri, 18 Sep 2015 13:40:40 +0000 (06:40 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 22 Sep 2015 09:51:19 +0000 (11:51 +0200)
First firmware dump attempt from user works fine, but firmware goes
into bad state after this. Subsequent attempts fails.

As required by the firmware dump implementation, this change writes
FW_DUMP_READ_DONE value to dump ctrl register to address this issue.

Signed-off-by: Nachiket Kukade <kukaden@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/btmrvl_sdio.c

index b9978a7ba0cc9b9883d2bdd95168f81408f6cc60..5f7c9be779b8d3898f572d2803386f75342ffa3b 100644 (file)
@@ -1278,6 +1278,12 @@ static void btmrvl_sdio_dump_firmware(struct btmrvl_private *priv)
 
                if (memory_size == 0) {
                        BT_INFO("Firmware dump finished!");
+                       sdio_writeb(card->func, FW_DUMP_READ_DONE,
+                                   card->reg->fw_dump_ctrl, &ret);
+                       if (ret) {
+                               BT_ERR("SDIO Write MEMDUMP_FINISH ERR");
+                               goto done;
+                       }
                        break;
                }