aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/misc/ti-st/st_kim.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/misc/ti-st/st_kim.c b/drivers/misc/ti-st/st_kim.c
index e5639ca97dce..1748a9351de0 100644
--- a/drivers/misc/ti-st/st_kim.c
+++ b/drivers/misc/ti-st/st_kim.c
@@ -299,6 +299,7 @@ static long download_firmware(struct kim_data_s *kim_gdata)
299 299
300 switch (((struct bts_action *)ptr)->type) { 300 switch (((struct bts_action *)ptr)->type) {
301 case ACTION_SEND_COMMAND: /* action send */ 301 case ACTION_SEND_COMMAND: /* action send */
302 pr_debug("S");
302 action_ptr = &(((struct bts_action *)ptr)->data[0]); 303 action_ptr = &(((struct bts_action *)ptr)->data[0]);
303 if (unlikely 304 if (unlikely
304 (((struct hci_command *)action_ptr)->opcode == 305 (((struct hci_command *)action_ptr)->opcode ==
@@ -336,6 +337,10 @@ static long download_firmware(struct kim_data_s *kim_gdata)
336 release_firmware(kim_gdata->fw_entry); 337 release_firmware(kim_gdata->fw_entry);
337 return -ETIMEDOUT; 338 return -ETIMEDOUT;
338 } 339 }
340 /* reinit completion before sending for the
341 * relevant wait
342 */
343 INIT_COMPLETION(kim_gdata->kim_rcvd);
339 344
340 /* 345 /*
341 * Free space found in uart buffer, call st_int_write 346 * Free space found in uart buffer, call st_int_write
@@ -362,6 +367,7 @@ static long download_firmware(struct kim_data_s *kim_gdata)
362 } 367 }
363 break; 368 break;
364 case ACTION_WAIT_EVENT: /* wait */ 369 case ACTION_WAIT_EVENT: /* wait */
370 pr_debug("W");
365 if (!wait_for_completion_timeout 371 if (!wait_for_completion_timeout
366 (&kim_gdata->kim_rcvd, 372 (&kim_gdata->kim_rcvd,
367 msecs_to_jiffies(CMD_RESP_TIME))) { 373 msecs_to_jiffies(CMD_RESP_TIME))) {