Messages in this thread Patch in this message | | | From | "Xu, Dongxiao" <> | Date | Sun, 31 May 2009 14:43:51 +0800 | Subject | [Patch 05/08] Staging: heci - fix typos and add wait after disconnect |
| |
From fb611bebfc017d25cd8b90c25fa988162bc12713 Mon Sep 17 00:00:00 2001 From: Dongxiao Xu <dongxiao.xu@intel.com> Date: Sun, 31 May 2009 22:46:10 +0800 Subject: [PATCH] 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: Dongxiao Xu <dongxiao.xu@intel.com> --- drivers/staging/heci/heci_init.c | 1 + drivers/staging/heci/heci_main.c | 2 +- drivers/staging/heci/interrupt.c | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/heci/heci_init.c b/drivers/staging/heci/heci_init.c index a8a0da9..06ea196 100644 --- a/drivers/staging/heci/heci_init.c +++ b/drivers/staging/heci/heci_init.c @@ -1012,6 +1012,7 @@ int heci_disconnect_host_client(struct iamt_heci_device *dev, if (dev->host_buffer_is_empty) { dev->host_buffer_is_empty = 0; if (heci_disconnect(dev, file_ext)) { + mdelay(10); /* Wait for hardware disconnection ready */ list_add_tail(&priv_cb->cb_list, &dev->ctrl_rd_list.heci_cb.cb_list); } else { diff --git a/drivers/staging/heci/heci_main.c b/drivers/staging/heci/heci_main.c index 1e5c26d..1e2f3db 100644 --- a/drivers/staging/heci/heci_main.c +++ b/drivers/staging/heci/heci_main.c @@ -1088,7 +1088,7 @@ static ssize_t heci_write(struct file *file, const char __user *ubuf, if (file_ext == &dev->iamthif_file_ext) { priv_write_cb = find_pthi_read_list_entry(dev, file); if ((priv_write_cb != NULL) && - (((currtime - priv_write_cb->read_time) > + (((currtime - priv_write_cb->read_time) >= IAMTHIF_READ_TIMER) || (file_ext->reading_state == HECI_READ_COMPLETE))) { (*offset) = 0; diff --git a/drivers/staging/heci/interrupt.c b/drivers/staging/heci/interrupt.c index 2db1851..b7ce73b 100644 --- a/drivers/staging/heci/interrupt.c +++ b/drivers/staging/heci/interrupt.c @@ -1054,7 +1054,7 @@ static int heci_bh_write_handler(struct io_heci_list *cmpl_list, list_del(&priv_cb_pos->cb_list); if ((HECI_WRITING == file_ext->writing_state) && (priv_cb_pos->major_file_operations == - HECI_WRITING) && + HECI_WRITE) && (file_ext != &dev->iamthif_file_ext)) { DBG("HECI WRITE COMPLETE\n"); file_ext->writing_state = -- 1.6.0.rc1
| |