diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2013-05-12 15:34:45 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-05-21 09:39:56 -0700 |
commit | db086fa926e57e1bd70e8c41235d230b3caa5e99 (patch) | |
tree | c8f414c1cb636034ac7ecdf0303a98103caddba8 /drivers/misc/mei/client.c | |
parent | e7d87ca1089165c05376df50f1be0f68d72ab08b (diff) | |
download | blackbird-op-linux-db086fa926e57e1bd70e8c41235d230b3caa5e99.tar.gz blackbird-op-linux-db086fa926e57e1bd70e8c41235d230b3caa5e99.zip |
mei: move mei_cl_complete to client.c
1. rename mei_cl_complete_handler to mei_cl_complete
2. move the function client.c where it belongs
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/mei/client.c')
-rw-r--r-- | drivers/misc/mei/client.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/misc/mei/client.c b/drivers/misc/mei/client.c index e310ca6ed1a3..c2534ca5c6f1 100644 --- a/drivers/misc/mei/client.c +++ b/drivers/misc/mei/client.c @@ -785,6 +785,32 @@ err: } +/** + * mei_cl_complete - processes completed operation for a client + * + * @cl: private data of the file object. + * @cb: callback block. + */ +void mei_cl_complete(struct mei_cl *cl, struct mei_cl_cb *cb) +{ + if (cb->fop_type == MEI_FOP_WRITE) { + mei_io_cb_free(cb); + cb = NULL; + cl->writing_state = MEI_WRITE_COMPLETE; + if (waitqueue_active(&cl->tx_wait)) + wake_up_interruptible(&cl->tx_wait); + + } else if (cb->fop_type == MEI_FOP_READ && + MEI_READING == cl->reading_state) { + cl->reading_state = MEI_READ_COMPLETE; + if (waitqueue_active(&cl->rx_wait)) + wake_up_interruptible(&cl->rx_wait); + else + mei_cl_bus_rx_event(cl); + + } +} + /** * mei_cl_all_disconnect - disconnect forcefully all connected clients |