Lines Matching refs:cl

43 ssize_t __mei_cl_send(struct mei_cl *cl, u8 *buf, size_t length,  in __mei_cl_send()  argument
50 if (WARN_ON(!cl || !cl->dev)) in __mei_cl_send()
53 bus = cl->dev; in __mei_cl_send()
61 if (!mei_cl_is_connected(cl)) { in __mei_cl_send()
67 if (!mei_me_cl_is_active(cl->me_cl)) { in __mei_cl_send()
72 if (length > mei_cl_mtu(cl)) { in __mei_cl_send()
77 cb = mei_cl_alloc_cb(cl, length, MEI_FOP_WRITE, NULL); in __mei_cl_send()
85 rets = mei_cl_write(cl, cb, blocking); in __mei_cl_send()
104 ssize_t __mei_cl_recv(struct mei_cl *cl, u8 *buf, size_t length) in __mei_cl_recv() argument
111 if (WARN_ON(!cl || !cl->dev)) in __mei_cl_recv()
114 bus = cl->dev; in __mei_cl_recv()
122 cb = mei_cl_read_cb(cl, NULL); in __mei_cl_recv()
126 rets = mei_cl_read_start(cl, length, NULL); in __mei_cl_recv()
131 if (list_empty(&cl->rd_completed) && !waitqueue_active(&cl->rx_wait)) { in __mei_cl_recv()
135 if (wait_event_interruptible(cl->rx_wait, in __mei_cl_recv()
136 (!list_empty(&cl->rd_completed)) || in __mei_cl_recv()
137 (!mei_cl_is_connected(cl)))) { in __mei_cl_recv()
146 if (!mei_cl_is_connected(cl)) { in __mei_cl_recv()
152 cb = mei_cl_read_cb(cl, NULL); in __mei_cl_recv()
187 struct mei_cl *cl = cldev->cl; in mei_cldev_send() local
189 if (cl == NULL) in mei_cldev_send()
192 return __mei_cl_send(cl, buf, length, 1); in mei_cldev_send()
207 struct mei_cl *cl = cldev->cl; in mei_cldev_recv() local
209 if (cl == NULL) in mei_cldev_recv()
212 return __mei_cl_recv(cl, buf, length); in mei_cldev_recv()
239 mei_cl_read_start(cldev->cl, 0, NULL); in mei_cl_bus_event_work()
249 void mei_cl_bus_notify_event(struct mei_cl *cl) in mei_cl_bus_notify_event() argument
251 struct mei_cl_device *cldev = cl->cldev; in mei_cl_bus_notify_event()
259 if (!cl->notify_ev) in mei_cl_bus_notify_event()
266 cl->notify_ev = false; in mei_cl_bus_notify_event()
274 void mei_cl_bus_rx_event(struct mei_cl *cl) in mei_cl_bus_rx_event() argument
276 struct mei_cl_device *cldev = cl->cldev; in mei_cl_bus_rx_event()
319 ret = mei_cl_read_start(cldev->cl, 0, NULL); in mei_cldev_register_event_cb()
327 ret = mei_cl_notify_request(cldev->cl, NULL, event_cb ? 1 : 0); in mei_cldev_register_event_cb()
397 return cldev->cl && mei_cl_is_connected(cldev->cl); in mei_cldev_enabled()
412 struct mei_cl *cl; in mei_cldev_enable() local
415 cl = cldev->cl; in mei_cldev_enable()
417 if (!cl) { in mei_cldev_enable()
419 cl = mei_cl_alloc_linked(bus, MEI_HOST_CLIENT_ID_ANY); in mei_cldev_enable()
421 if (IS_ERR(cl)) in mei_cldev_enable()
422 return PTR_ERR(cl); in mei_cldev_enable()
424 cldev->cl = cl; in mei_cldev_enable()
425 cl->cldev = cldev; in mei_cldev_enable()
429 if (mei_cl_is_connected(cl)) { in mei_cldev_enable()
440 ret = mei_cl_connect(cl, cldev->me_cl, NULL); in mei_cldev_enable()
462 struct mei_cl *cl; in mei_cldev_disable() local
465 if (!cldev || !cldev->cl) in mei_cldev_disable()
468 cl = cldev->cl; in mei_cldev_disable()
476 if (!mei_cl_is_connected(cl)) { in mei_cldev_disable()
482 err = mei_cl_disconnect(cl); in mei_cldev_disable()
488 mei_cl_flush_queues(cl, NULL); in mei_cldev_disable()
489 mei_cl_unlink(cl); in mei_cldev_disable()
491 kfree(cl); in mei_cldev_disable()
492 cldev->cl = NULL; in mei_cldev_disable()