diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2013-06-23 09:36:59 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-06-24 16:32:30 -0700 |
commit | 21767546e955c3c1705387ca4548db812382fe08 (patch) | |
tree | 742c9495d1a982b5680b9d1cd24e47bacde4e4c9 /drivers/misc/mei/interrupt.c | |
parent | 34cb27528398738bea94852b99ef8fb05944ec41 (diff) | |
download | op-kernel-dev-21767546e955c3c1705387ca4548db812382fe08.zip op-kernel-dev-21767546e955c3c1705387ca4548db812382fe08.tar.gz |
mei: move mei_cl_irq_write_complete to client.c
mei_cl_irq_write_complete operates on a client so move it
to client.c
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/mei/interrupt.c')
-rw-r--r-- | drivers/misc/mei/interrupt.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c index 7d9509a..4b59cb7 100644 --- a/drivers/misc/mei/interrupt.c +++ b/drivers/misc/mei/interrupt.c @@ -282,65 +282,6 @@ static int mei_cl_irq_ioctl(struct mei_cl *cl, struct mei_cl_cb *cb, return 0; } -/** - * mei_cl_irq_write_complete - write messages to device. - * - * @cl: client - * @cb: callback block. - * @slots: free slots. - * @cmpl_list: complete list. - * - * returns 0, OK; otherwise, error. - */ -static int mei_cl_irq_write_complete(struct mei_cl *cl, struct mei_cl_cb *cb, - s32 *slots, struct mei_cl_cb *cmpl_list) -{ - struct mei_device *dev = cl->dev; - struct mei_msg_hdr mei_hdr; - size_t len = cb->request_buffer.size - cb->buf_idx; - u32 msg_slots = mei_data2slots(len); - - mei_hdr.host_addr = cl->host_client_id; - mei_hdr.me_addr = cl->me_client_id; - mei_hdr.reserved = 0; - - if (*slots >= msg_slots) { - mei_hdr.length = len; - mei_hdr.msg_complete = 1; - /* Split the message only if we can write the whole host buffer */ - } else if (*slots == dev->hbuf_depth) { - msg_slots = *slots; - len = (*slots * sizeof(u32)) - sizeof(struct mei_msg_hdr); - mei_hdr.length = len; - mei_hdr.msg_complete = 0; - } else { - /* wait for next time the host buffer is empty */ - return 0; - } - - dev_dbg(&dev->pdev->dev, "buf: size = %d idx = %lu\n", - cb->request_buffer.size, cb->buf_idx); - dev_dbg(&dev->pdev->dev, MEI_HDR_FMT, MEI_HDR_PRM(&mei_hdr)); - - *slots -= msg_slots; - if (mei_write_message(dev, &mei_hdr, - cb->request_buffer.data + cb->buf_idx)) { - cl->status = -ENODEV; - list_move_tail(&cb->list, &cmpl_list->list); - return -ENODEV; - } - - - cl->status = 0; - cb->buf_idx += mei_hdr.length; - if (mei_hdr.msg_complete) { - if (mei_cl_flow_ctrl_reduce(cl)) - return -ENODEV; - list_move_tail(&cb->list, &dev->write_waiting_list.list); - } - - return 0; -} /** * mei_irq_read_handler - bottom half read routine after ISR to |