|
@@ -299,6 +299,7 @@ static long download_firmware(struct kim_data_s *kim_gdata)
|
|
|
|
|
|
switch (((struct bts_action *)ptr)->type) {
|
|
|
case ACTION_SEND_COMMAND: /* action send */
|
|
|
+ pr_debug("S");
|
|
|
action_ptr = &(((struct bts_action *)ptr)->data[0]);
|
|
|
if (unlikely
|
|
|
(((struct hci_command *)action_ptr)->opcode ==
|
|
@@ -336,6 +337,10 @@ static long download_firmware(struct kim_data_s *kim_gdata)
|
|
|
release_firmware(kim_gdata->fw_entry);
|
|
|
return -ETIMEDOUT;
|
|
|
}
|
|
|
+ /* reinit completion before sending for the
|
|
|
+ * relevant wait
|
|
|
+ */
|
|
|
+ INIT_COMPLETION(kim_gdata->kim_rcvd);
|
|
|
|
|
|
/*
|
|
|
* Free space found in uart buffer, call st_int_write
|
|
@@ -362,6 +367,7 @@ static long download_firmware(struct kim_data_s *kim_gdata)
|
|
|
}
|
|
|
break;
|
|
|
case ACTION_WAIT_EVENT: /* wait */
|
|
|
+ pr_debug("W");
|
|
|
if (!wait_for_completion_timeout
|
|
|
(&kim_gdata->kim_rcvd,
|
|
|
msecs_to_jiffies(CMD_RESP_TIME))) {
|