diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c
index 60dc9b64381d8679abfa29d2174246a7dcf0bfce..68cc407054e3f2e4284a22c5be2257c53d6f9122 100644
--- a/drivers/net/wireless/libertas/if_sdio.c
+++ b/drivers/net/wireless/libertas/if_sdio.c
@@ -499,6 +499,11 @@ static int if_sdio_prog_helper(struct if_sdio_card *card)
 		if (ret)
 			goto release;
 
+		/* On some platforms (like Davinci) the chip needs more time
+		 * between helper blocks.
+		 */
+		mdelay(2);
+
 		chunk_size = min(size, (size_t)60);
 
 		*((__le32*)chunk_buffer) = cpu_to_le32(chunk_size);