summaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth
diff options
context:
space:
mode:
authorNachiket Kukade <kukaden@marvell.com>2015-09-18 15:40:40 +0200
committerMarcel Holtmann <marcel@holtmann.org>2015-09-22 11:51:19 +0200
commit475b9eacc5543eea922431bb8ac4ec761de0e415 (patch)
tree28ae0e34b72389b219471740bf529ebb7157d36b /drivers/bluetooth
parentdrivers/net/ieee802154/at86rf230.c: seq_printf() now returns NULL (diff)
downloadlinux-475b9eacc5543eea922431bb8ac4ec761de0e415.tar.xz
linux-475b9eacc5543eea922431bb8ac4ec761de0e415.zip
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')
-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 b9978a7ba0cc..5f7c9be779b8 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;
}