Lines Matching refs:cl

42 	struct mei_cl *cl;  in mei_irq_compl_handler()  local
45 cl = cb->cl; in mei_irq_compl_handler()
49 if (cl == &dev->iamthif_cl) in mei_irq_compl_handler()
52 mei_cl_complete(cl, cb); in mei_irq_compl_handler()
65 static inline int mei_cl_hbm_equal(struct mei_cl *cl, in mei_cl_hbm_equal() argument
68 return cl->host_client_id == mei_hdr->host_addr && in mei_cl_hbm_equal()
69 cl->me_client_id == 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()
168 static int mei_cl_irq_disconnect_rsp(struct mei_cl *cl, struct mei_cl_cb *cb, in mei_cl_irq_disconnect_rsp() argument
171 struct mei_device *dev = cl->dev; in mei_cl_irq_disconnect_rsp()
182 ret = mei_hbm_cl_disconnect_rsp(dev, cl); in mei_cl_irq_disconnect_rsp()
184 cl->state = MEI_FILE_DISCONNECTED; in mei_cl_irq_disconnect_rsp()
185 cl->status = 0; in mei_cl_irq_disconnect_rsp()
203 static int mei_cl_irq_disconnect(struct mei_cl *cl, struct mei_cl_cb *cb, in mei_cl_irq_disconnect() argument
206 struct mei_device *dev = cl->dev; in mei_cl_irq_disconnect()
216 if (mei_hbm_cl_disconnect_req(dev, cl)) { in mei_cl_irq_disconnect()
217 cl->status = 0; in mei_cl_irq_disconnect()
223 cl->state = MEI_FILE_DISCONNECTING; in mei_cl_irq_disconnect()
224 cl->status = 0; in mei_cl_irq_disconnect()
227 cl->timer_count = MEI_CONNECT_TIMEOUT; in mei_cl_irq_disconnect()
243 static int mei_cl_irq_read(struct mei_cl *cl, struct mei_cl_cb *cb, in mei_cl_irq_read() argument
246 struct mei_device *dev = cl->dev; in mei_cl_irq_read()
257 ret = mei_hbm_cl_flow_control_req(dev, cl); in mei_cl_irq_read()
259 cl->status = ret; in mei_cl_irq_read()
265 list_move_tail(&cb->list, &cl->rd_pending); in mei_cl_irq_read()
280 static int mei_cl_irq_connect(struct mei_cl *cl, struct mei_cl_cb *cb, in mei_cl_irq_connect() argument
283 struct mei_device *dev = cl->dev; in mei_cl_irq_connect()
291 if (mei_cl_is_other_connecting(cl)) in mei_cl_irq_connect()
297 cl->state = MEI_FILE_CONNECTING; in mei_cl_irq_connect()
299 ret = mei_hbm_cl_connect_req(dev, cl); in mei_cl_irq_connect()
301 cl->status = ret; in mei_cl_irq_connect()
308 cl->timer_count = MEI_CONNECT_TIMEOUT; in mei_cl_irq_connect()
327 struct mei_cl *cl; in mei_irq_read_handler() local
365 list_for_each_entry(cl, &dev->file_list, link) { in mei_irq_read_handler()
366 if (mei_cl_hbm_equal(cl, mei_hdr)) { in mei_irq_read_handler()
367 cl_dbg(dev, cl, "got a message\n"); in mei_irq_read_handler()
373 if (&cl->link == &dev->file_list) { in mei_irq_read_handler()
380 if (cl == &dev->iamthif_cl) { in mei_irq_read_handler()
381 ret = mei_amthif_irq_read_msg(cl, mei_hdr, cmpl_list); in mei_irq_read_handler()
383 ret = mei_cl_irq_read_msg(cl, mei_hdr, cmpl_list); in mei_irq_read_handler()
417 struct mei_cl *cl; in mei_irq_write_handler() local
436 cl = cb->cl; in mei_irq_write_handler()
438 cl->status = 0; in mei_irq_write_handler()
439 cl_dbg(dev, cl, "MEI WRITE COMPLETE\n"); in mei_irq_write_handler()
440 cl->writing_state = MEI_WRITE_COMPLETE; in mei_irq_write_handler()
462 cl = cb->cl; in mei_irq_write_handler()
466 ret = mei_cl_irq_disconnect(cl, cb, cmpl_list); in mei_irq_write_handler()
473 ret = mei_cl_irq_read(cl, cb, cmpl_list); in mei_irq_write_handler()
480 ret = mei_cl_irq_connect(cl, cb, cmpl_list); in mei_irq_write_handler()
487 ret = mei_cl_irq_disconnect_rsp(cl, cb, cmpl_list); in mei_irq_write_handler()
499 cl = cb->cl; in mei_irq_write_handler()
500 if (cl == &dev->iamthif_cl) in mei_irq_write_handler()
501 ret = mei_amthif_irq_write(cl, cb, cmpl_list); in mei_irq_write_handler()
503 ret = mei_cl_irq_write(cl, cb, cmpl_list); in mei_irq_write_handler()
522 struct mei_cl *cl; in mei_timer() local
548 list_for_each_entry(cl, &dev->file_list, link) { in mei_timer()
549 if (cl->timer_count) { in mei_timer()
550 if (--cl->timer_count == 0) { in mei_timer()