summaryrefslogtreecommitdiff
path: root/drivers/bluetooth/btmrvl_sdio.c
diff options
context:
space:
mode:
authorNachiket Kukade <kukaden@marvell.com>2015-09-18 13:40:40 (GMT)
committerMarcel Holtmann <marcel@holtmann.org>2015-09-22 09:51:19 (GMT)
commit475b9eacc5543eea922431bb8ac4ec761de0e415 (patch)
tree28ae0e34b72389b219471740bf529ebb7157d36b /drivers/bluetooth/btmrvl_sdio.c
parent97170ea1823bf00cf6ed0f503129e9053a66c53a (diff)
downloadlinux-475b9eacc5543eea922431bb8ac4ec761de0e415.tar.xz
Bluetooth: btmrvl: fix firmware dump issue
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>
Diffstat (limited to 'drivers/bluetooth/btmrvl_sdio.c')
-rw-r--r--drivers/bluetooth/btmrvl_sdio.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/bluetooth/btmrvl_sdio.c b/drivers/bluetooth/btmrvl_sdio.c
index b9978a7..5f7c9be 100644
--- a/drivers/bluetooth/btmrvl_sdio.c
+++ b/drivers/bluetooth/btmrvl_sdio.c
@@ -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;
}