diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/mei/init.c | 6 | ||||
-rw-r--r-- | drivers/staging/mei/interrupt.c | 86 | ||||
-rw-r--r-- | drivers/staging/mei/iorw.c | 6 | ||||
-rw-r--r-- | drivers/staging/mei/main.c | 3 | ||||
-rw-r--r-- | drivers/staging/mei/mei_dev.h | 1 |
5 files changed, 41 insertions, 61 deletions
diff --git a/drivers/staging/mei/init.c b/drivers/staging/mei/init.c index 8bf3479..4cc184e 100644 --- a/drivers/staging/mei/init.c +++ b/drivers/staging/mei/init.c @@ -38,7 +38,6 @@ void mei_io_list_init(struct mei_io_list *list) { /* initialize our queue list */ INIT_LIST_HEAD(&list->mei_cb.cb_list); - list->status = 0; } /** @@ -52,8 +51,6 @@ void mei_io_list_flush(struct mei_io_list *list, struct mei_cl *cl) struct mei_cl_cb *cb_pos = NULL; struct mei_cl_cb *cb_next = NULL; - if (list->status != 0) - return; if (list_empty(&list->mei_cb.cb_list)) return; @@ -338,8 +335,7 @@ void mei_reset(struct mei_device *dev, int interrupts_enabled) } } /* remove all waiting requests */ - if (dev->write_list.status == 0 && - !list_empty(&dev->write_list.mei_cb.cb_list)) { + if (!list_empty(&dev->write_list.mei_cb.cb_list)) { list_for_each_entry_safe(cb_pos, cb_next, &dev->write_list.mei_cb.cb_list, cb_list) { if (cb_pos) { diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c index ffa393f..ab9c4c0 100644 --- a/drivers/staging/mei/interrupt.c +++ b/drivers/staging/mei/interrupt.c @@ -198,8 +198,7 @@ static int mei_irq_thread_read_client_message(struct mei_io_list *complete_list, unsigned char *buffer = NULL; dev_dbg(&dev->pdev->dev, "start client msg\n"); - if (!(dev->read_list.status == 0 && - !list_empty(&dev->read_list.mei_cb.cb_list))) + if (list_empty(&dev->read_list.mei_cb.cb_list)) goto quit; list_for_each_entry_safe(cb_pos, cb_next, @@ -413,8 +412,7 @@ static void mei_client_connect_response(struct mei_device *dev, dev->iamthif_state = MEI_IAMTHIF_IDLE; return; } - if (!dev->ctrl_rd_list.status && - !list_empty(&dev->ctrl_rd_list.mei_cb.cb_list)) { + if (!list_empty(&dev->ctrl_rd_list.mei_cb.cb_list)) { list_for_each_entry_safe(cb_pos, cb_next, &dev->ctrl_rd_list.mei_cb.cb_list, cb_list) { cl = (struct mei_cl *)cb_pos->file_private; @@ -455,8 +453,7 @@ static void mei_client_disconnect_response(struct mei_device *dev, rs->host_addr, rs->status); - if (!dev->ctrl_rd_list.status && - !list_empty(&dev->ctrl_rd_list.mei_cb.cb_list)) { + if (!list_empty(&dev->ctrl_rd_list.mei_cb.cb_list)) { list_for_each_entry_safe(cb_pos, cb_next, &dev->ctrl_rd_list.mei_cb.cb_list, cb_list) { cl = (struct mei_cl *)cb_pos->file_private; @@ -1238,7 +1235,7 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list, dev_dbg(&dev->pdev->dev, "complete all waiting for write cb.\n"); list = &dev->write_waiting_list; - if (!list->status && !list_empty(&list->mei_cb.cb_list)) { + if (!list_empty(&list->mei_cb.cb_list)) { list_for_each_entry_safe(cb_pos, cb_next, &list->mei_cb.cb_list, cb_list) { cl = (struct mei_cl *)cb_pos->file_private; @@ -1314,55 +1311,46 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list, return ~ENODEV; /* complete control write list CB */ - if (!dev->ctrl_wr_list.status) { - /* complete control write list CB */ - dev_dbg(&dev->pdev->dev, "complete control write list cb.\n"); - list_for_each_entry_safe(cb_pos, cb_next, + dev_dbg(&dev->pdev->dev, "complete control write list cb.\n"); + list_for_each_entry_safe(cb_pos, cb_next, &dev->ctrl_wr_list.mei_cb.cb_list, cb_list) { - cl = (struct mei_cl *) - cb_pos->file_private; - if (!cl) { - list_del(&cb_pos->cb_list); - return -ENODEV; - } - switch (cb_pos->major_file_operations) { - case MEI_CLOSE: - /* send disconnect message */ - ret = _mei_irq_thread_close(dev, slots, - cb_pos, cl, cmpl_list); - if (ret) - return ret; - - break; - case MEI_READ: - /* send flow control message */ - ret = _mei_irq_thread_read(dev, slots, - cb_pos, cl, cmpl_list); - if (ret) - return ret; + cl = (struct mei_cl *) cb_pos->file_private; + if (!cl) { + list_del(&cb_pos->cb_list); + return -ENODEV; + } + switch (cb_pos->major_file_operations) { + case MEI_CLOSE: + /* send disconnect message */ + ret = _mei_irq_thread_close(dev, slots, cb_pos, cl, cmpl_list); + if (ret) + return ret; - break; - case MEI_IOCTL: - /* connect message */ - if (!mei_other_client_is_connecting(dev, - cl)) - continue; - ret = _mei_irq_thread_ioctl(dev, slots, - cb_pos, cl, cmpl_list); - if (ret) - return ret; + break; + case MEI_READ: + /* send flow control message */ + ret = _mei_irq_thread_read(dev, slots, cb_pos, cl, cmpl_list); + if (ret) + return ret; - break; + break; + case MEI_IOCTL: + /* connect message */ + if (!mei_other_client_is_connecting(dev, cl)) + continue; + ret = _mei_irq_thread_ioctl(dev, slots, cb_pos, cl, cmpl_list); + if (ret) + return ret; - default: - BUG(); - } + break; + default: + BUG(); } + } /* complete write list CB */ - if (!dev->write_list.status && - !list_empty(&dev->write_list.mei_cb.cb_list)) { + if (!list_empty(&dev->write_list.mei_cb.cb_list)) { dev_dbg(&dev->pdev->dev, "complete write list cb.\n"); list_for_each_entry_safe(cb_pos, cb_next, &dev->write_list.mei_cb.cb_list, cb_list) { @@ -1621,7 +1609,7 @@ end: wake_up_interruptible(&dev->wait_recvd_msg); bus_message_received = false; } - if (complete_list.status || list_empty(&complete_list.mei_cb.cb_list)) + if (list_empty(&complete_list.mei_cb.cb_list)) return IRQ_HANDLED; diff --git a/drivers/staging/mei/iorw.c b/drivers/staging/mei/iorw.c index 8a61d12..36d0465 100644 --- a/drivers/staging/mei/iorw.c +++ b/drivers/staging/mei/iorw.c @@ -231,8 +231,7 @@ struct mei_cl_cb *find_amthi_read_list_entry( struct mei_cl_cb *cb_pos = NULL; struct mei_cl_cb *cb_next = NULL; - if (!dev->amthi_read_complete_list.status && - !list_empty(&dev->amthi_read_complete_list.mei_cb.cb_list)) { + if (!list_empty(&dev->amthi_read_complete_list.mei_cb.cb_list)) { list_for_each_entry_safe(cb_pos, cb_next, &dev->amthi_read_complete_list.mei_cb.cb_list, cb_list) { cl_temp = (struct mei_cl *)cb_pos->file_private; @@ -565,8 +564,7 @@ void mei_run_next_iamthif_cmd(struct mei_device *dev) dev->iamthif_timer = 0; dev->iamthif_file_object = NULL; - if (dev->amthi_cmd_list.status == 0 && - !list_empty(&dev->amthi_cmd_list.mei_cb.cb_list)) { + if (!list_empty(&dev->amthi_cmd_list.mei_cb.cb_list)) { dev_dbg(&dev->pdev->dev, "complete amthi cmd_list cb.\n"); list_for_each_entry_safe(cb_pos, cb_next, diff --git a/drivers/staging/mei/main.c b/drivers/staging/mei/main.c index 1ea04b3..b470bb0 100644 --- a/drivers/staging/mei/main.c +++ b/drivers/staging/mei/main.c @@ -201,8 +201,7 @@ static struct mei_cl_cb *find_read_list_entry( struct mei_cl_cb *cb_pos = NULL; struct mei_cl_cb *cb_next = NULL; - if (!dev->read_list.status && - !list_empty(&dev->read_list.mei_cb.cb_list)) { + if (!list_empty(&dev->read_list.mei_cb.cb_list)) { dev_dbg(&dev->pdev->dev, "remove read_list CB\n"); list_for_each_entry_safe(cb_pos, cb_next, diff --git a/drivers/staging/mei/mei_dev.h b/drivers/staging/mei/mei_dev.h index 13c2ba0..5e8b64e 100644 --- a/drivers/staging/mei/mei_dev.h +++ b/drivers/staging/mei/mei_dev.h @@ -168,7 +168,6 @@ struct mei_cl { struct mei_io_list { struct mei_cl_cb mei_cb; - int status; }; /* MEI private device struct */ |