Commit 52b85560 authored by Dongxiao Xu's avatar Dongxiao Xu Committed by Greg Kroah-Hartman

Staging: heci: fix typos and add wait after disconnect

- Fix typo for enum HECI_WRITE.
 - Fix timeout issue. If the time period is greater or equal 15s, it's timeout.
 - Add 10ms wait time after disconnect, to ensure that hardware is ready.
   Otherwise in the next time connection, hardware resource may be busy.
Signed-off-by: default avatarDongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 58b25a63
...@@ -1012,6 +1012,7 @@ int heci_disconnect_host_client(struct iamt_heci_device *dev, ...@@ -1012,6 +1012,7 @@ int heci_disconnect_host_client(struct iamt_heci_device *dev,
if (dev->host_buffer_is_empty) { if (dev->host_buffer_is_empty) {
dev->host_buffer_is_empty = 0; dev->host_buffer_is_empty = 0;
if (heci_disconnect(dev, file_ext)) { if (heci_disconnect(dev, file_ext)) {
mdelay(10); /* Wait for hardware disconnection ready */
list_add_tail(&priv_cb->cb_list, list_add_tail(&priv_cb->cb_list,
&dev->ctrl_rd_list.heci_cb.cb_list); &dev->ctrl_rd_list.heci_cb.cb_list);
} else { } else {
......
...@@ -1088,7 +1088,7 @@ static ssize_t heci_write(struct file *file, const char __user *ubuf, ...@@ -1088,7 +1088,7 @@ static ssize_t heci_write(struct file *file, const char __user *ubuf,
if (file_ext == &dev->iamthif_file_ext) { if (file_ext == &dev->iamthif_file_ext) {
priv_write_cb = find_pthi_read_list_entry(dev, file); priv_write_cb = find_pthi_read_list_entry(dev, file);
if ((priv_write_cb != NULL) && if ((priv_write_cb != NULL) &&
(((currtime - priv_write_cb->read_time) > (((currtime - priv_write_cb->read_time) >=
IAMTHIF_READ_TIMER) || IAMTHIF_READ_TIMER) ||
(file_ext->reading_state == HECI_READ_COMPLETE))) { (file_ext->reading_state == HECI_READ_COMPLETE))) {
(*offset) = 0; (*offset) = 0;
......
...@@ -1054,7 +1054,7 @@ static int heci_bh_write_handler(struct io_heci_list *cmpl_list, ...@@ -1054,7 +1054,7 @@ static int heci_bh_write_handler(struct io_heci_list *cmpl_list,
list_del(&priv_cb_pos->cb_list); list_del(&priv_cb_pos->cb_list);
if ((HECI_WRITING == file_ext->writing_state) && if ((HECI_WRITING == file_ext->writing_state) &&
(priv_cb_pos->major_file_operations == (priv_cb_pos->major_file_operations ==
HECI_WRITING) && HECI_WRITE) &&
(file_ext != &dev->iamthif_file_ext)) { (file_ext != &dev->iamthif_file_ext)) {
DBG("HECI WRITE COMPLETE\n"); DBG("HECI WRITE COMPLETE\n");
file_ext->writing_state = file_ext->writing_state =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment