Lines Matching refs:cl
43 struct mei_cl *cl; in mei_irq_compl_handler() local
46 cl = cb->cl; in mei_irq_compl_handler()
50 if (cl == &dev->iamthif_cl) in mei_irq_compl_handler()
53 mei_cl_complete(cl, cb); in mei_irq_compl_handler()
66 static inline int mei_cl_hbm_equal(struct mei_cl *cl, in mei_cl_hbm_equal() argument
69 return mei_cl_host_addr(cl) == mei_hdr->host_addr && in mei_cl_hbm_equal()
70 mei_cl_me_id(cl) == mei_hdr->me_addr; in mei_cl_hbm_equal()
99 int mei_cl_irq_read_msg(struct mei_cl *cl, in mei_cl_irq_read_msg() argument
103 struct mei_device *dev = cl->dev; in mei_cl_irq_read_msg()
107 cb = list_first_entry_or_null(&cl->rd_pending, struct mei_cl_cb, list); in mei_cl_irq_read_msg()
109 cl_err(dev, cl, "pending read cb not found\n"); in mei_cl_irq_read_msg()
113 if (!mei_cl_is_connected(cl)) { in mei_cl_irq_read_msg()
114 cl_dbg(dev, cl, "not connected\n"); in mei_cl_irq_read_msg()
120 cl_err(dev, cl, "response buffer is not allocated.\n"); in mei_cl_irq_read_msg()
127 cl_dbg(dev, cl, "message overflow. size %d len %d idx %ld\n", in mei_cl_irq_read_msg()
148 cl_dbg(dev, cl, "completed read length = %lu\n", cb->buf_idx); in mei_cl_irq_read_msg()
171 static int mei_cl_irq_disconnect_rsp(struct mei_cl *cl, struct mei_cl_cb *cb, in mei_cl_irq_disconnect_rsp() argument
174 struct mei_device *dev = cl->dev; in mei_cl_irq_disconnect_rsp()
185 ret = mei_hbm_cl_disconnect_rsp(dev, cl); in mei_cl_irq_disconnect_rsp()
201 static int mei_cl_irq_read(struct mei_cl *cl, struct mei_cl_cb *cb, in mei_cl_irq_read() argument
204 struct mei_device *dev = cl->dev; in mei_cl_irq_read()
215 ret = mei_hbm_cl_flow_control_req(dev, cl); in mei_cl_irq_read()
217 cl->status = ret; in mei_cl_irq_read()
223 list_move_tail(&cb->list, &cl->rd_pending); in mei_cl_irq_read()
242 struct mei_cl *cl; in mei_irq_read_handler() local
280 list_for_each_entry(cl, &dev->file_list, link) { in mei_irq_read_handler()
281 if (mei_cl_hbm_equal(cl, mei_hdr)) { in mei_irq_read_handler()
282 cl_dbg(dev, cl, "got a message\n"); in mei_irq_read_handler()
288 if (&cl->link == &dev->file_list) { in mei_irq_read_handler()
295 if (cl == &dev->iamthif_cl) { in mei_irq_read_handler()
296 ret = mei_amthif_irq_read_msg(cl, mei_hdr, cmpl_list); in mei_irq_read_handler()
298 ret = mei_cl_irq_read_msg(cl, mei_hdr, cmpl_list); in mei_irq_read_handler()
332 struct mei_cl *cl; in mei_irq_write_handler() local
351 cl = cb->cl; in mei_irq_write_handler()
353 cl->status = 0; in mei_irq_write_handler()
354 cl_dbg(dev, cl, "MEI WRITE COMPLETE\n"); in mei_irq_write_handler()
355 cl->writing_state = MEI_WRITE_COMPLETE; in mei_irq_write_handler()
377 cl = cb->cl; in mei_irq_write_handler()
381 ret = mei_cl_irq_disconnect(cl, cb, cmpl_list); in mei_irq_write_handler()
388 ret = mei_cl_irq_read(cl, cb, cmpl_list); in mei_irq_write_handler()
395 ret = mei_cl_irq_connect(cl, cb, cmpl_list); in mei_irq_write_handler()
402 ret = mei_cl_irq_disconnect_rsp(cl, cb, cmpl_list); in mei_irq_write_handler()
409 ret = mei_cl_irq_notify(cl, cb, cmpl_list); in mei_irq_write_handler()
421 cl = cb->cl; in mei_irq_write_handler()
422 if (cl == &dev->iamthif_cl) in mei_irq_write_handler()
423 ret = mei_amthif_irq_write(cl, cb, cmpl_list); in mei_irq_write_handler()
425 ret = mei_cl_irq_write(cl, cb, cmpl_list); in mei_irq_write_handler()
439 static void mei_connect_timeout(struct mei_cl *cl) in mei_connect_timeout() argument
441 struct mei_device *dev = cl->dev; in mei_connect_timeout()
443 if (cl->state == MEI_FILE_CONNECTING) { in mei_connect_timeout()
445 cl->state = MEI_FILE_DISCONNECT_REQUIRED; in mei_connect_timeout()
446 wake_up(&cl->wait); in mei_connect_timeout()
462 struct mei_cl *cl; in mei_timer() local
488 list_for_each_entry(cl, &dev->file_list, link) { in mei_timer()
489 if (cl->timer_count) { in mei_timer()
490 if (--cl->timer_count == 0) { in mei_timer()
492 mei_connect_timeout(cl); in mei_timer()