Lines Matching refs:me_cl

34 void mei_me_cl_init(struct mei_me_client *me_cl)  in mei_me_cl_init()  argument
36 INIT_LIST_HEAD(&me_cl->list); in mei_me_cl_init()
37 kref_init(&me_cl->refcnt); in mei_me_cl_init()
49 struct mei_me_client *mei_me_cl_get(struct mei_me_client *me_cl) in mei_me_cl_get() argument
51 if (me_cl && kref_get_unless_zero(&me_cl->refcnt)) in mei_me_cl_get()
52 return me_cl; in mei_me_cl_get()
66 struct mei_me_client *me_cl = in mei_me_cl_release() local
69 kfree(me_cl); in mei_me_cl_release()
79 void mei_me_cl_put(struct mei_me_client *me_cl) in mei_me_cl_put() argument
81 if (me_cl) in mei_me_cl_put()
82 kref_put(&me_cl->refcnt, mei_me_cl_release); in mei_me_cl_put()
94 static void __mei_me_cl_del(struct mei_device *dev, struct mei_me_client *me_cl) in __mei_me_cl_del() argument
96 if (!me_cl) in __mei_me_cl_del()
99 list_del_init(&me_cl->list); in __mei_me_cl_del()
100 mei_me_cl_put(me_cl); in __mei_me_cl_del()
110 void mei_me_cl_del(struct mei_device *dev, struct mei_me_client *me_cl) in mei_me_cl_del() argument
113 __mei_me_cl_del(dev, me_cl); in mei_me_cl_del()
123 void mei_me_cl_add(struct mei_device *dev, struct mei_me_client *me_cl) in mei_me_cl_add() argument
126 list_add(&me_cl->list, &dev->me_clients); in mei_me_cl_add()
144 struct mei_me_client *me_cl; in __mei_me_cl_by_uuid() local
149 list_for_each_entry(me_cl, &dev->me_clients, list) { in __mei_me_cl_by_uuid()
150 pn = &me_cl->props.protocol_name; in __mei_me_cl_by_uuid()
152 return mei_me_cl_get(me_cl); in __mei_me_cl_by_uuid()
172 struct mei_me_client *me_cl; in mei_me_cl_by_uuid() local
175 me_cl = __mei_me_cl_by_uuid(dev, uuid); in mei_me_cl_by_uuid()
178 return me_cl; in mei_me_cl_by_uuid()
195 struct mei_me_client *__me_cl, *me_cl = NULL; in mei_me_cl_by_id() local
200 me_cl = mei_me_cl_get(__me_cl); in mei_me_cl_by_id()
206 return me_cl; in mei_me_cl_by_id()
224 struct mei_me_client *me_cl; in __mei_me_cl_by_uuid_id() local
229 list_for_each_entry(me_cl, &dev->me_clients, list) { in __mei_me_cl_by_uuid_id()
230 pn = &me_cl->props.protocol_name; in __mei_me_cl_by_uuid_id()
232 me_cl->client_id == client_id) in __mei_me_cl_by_uuid_id()
233 return mei_me_cl_get(me_cl); in __mei_me_cl_by_uuid_id()
253 struct mei_me_client *me_cl; in mei_me_cl_by_uuid_id() local
256 me_cl = __mei_me_cl_by_uuid_id(dev, uuid, client_id); in mei_me_cl_by_uuid_id()
259 return me_cl; in mei_me_cl_by_uuid_id()
272 struct mei_me_client *me_cl; in mei_me_cl_rm_by_uuid() local
277 me_cl = __mei_me_cl_by_uuid(dev, uuid); in mei_me_cl_rm_by_uuid()
278 __mei_me_cl_del(dev, me_cl); in mei_me_cl_rm_by_uuid()
293 struct mei_me_client *me_cl; in mei_me_cl_rm_by_uuid_id() local
298 me_cl = __mei_me_cl_by_uuid_id(dev, uuid, id); in mei_me_cl_rm_by_uuid_id()
299 __mei_me_cl_del(dev, me_cl); in mei_me_cl_rm_by_uuid_id()
312 struct mei_me_client *me_cl, *next; in mei_me_cl_rm_all() local
315 list_for_each_entry_safe(me_cl, next, &dev->me_clients, list) in mei_me_cl_rm_all()
316 __mei_me_cl_del(dev, me_cl); in mei_me_cl_rm_all()
678 struct mei_me_client *me_cl; in mei_host_client_init() local
683 me_cl = mei_me_cl_by_uuid(dev, &mei_amthif_guid); in mei_host_client_init()
684 if (me_cl) in mei_host_client_init()
685 mei_amthif_host_init(dev, me_cl); in mei_host_client_init()
686 mei_me_cl_put(me_cl); in mei_host_client_init()
688 me_cl = mei_me_cl_by_uuid(dev, &mei_wd_guid); in mei_host_client_init()
689 if (me_cl) in mei_host_client_init()
690 mei_wd_host_init(dev, me_cl); in mei_host_client_init()
691 mei_me_cl_put(me_cl); in mei_host_client_init()
748 if (!cl->me_cl) in mei_cl_set_disconnected()
751 if (!WARN_ON(cl->me_cl->connect_count == 0)) in mei_cl_set_disconnected()
752 cl->me_cl->connect_count--; in mei_cl_set_disconnected()
754 if (cl->me_cl->connect_count == 0) in mei_cl_set_disconnected()
755 cl->me_cl->mei_flow_ctrl_creds = 0; in mei_cl_set_disconnected()
757 mei_me_cl_put(cl->me_cl); in mei_cl_set_disconnected()
758 cl->me_cl = NULL; in mei_cl_set_disconnected()
761 static int mei_cl_set_connecting(struct mei_cl *cl, struct mei_me_client *me_cl) in mei_cl_set_connecting() argument
763 if (!mei_me_cl_get(me_cl)) in mei_cl_set_connecting()
767 if (me_cl->props.fixed_address) { in mei_cl_set_connecting()
768 if (me_cl->connect_count) { in mei_cl_set_connecting()
769 mei_me_cl_put(me_cl); in mei_cl_set_connecting()
774 cl->me_cl = me_cl; in mei_cl_set_connecting()
776 cl->me_cl->connect_count++; in mei_cl_set_connecting()
1036 int mei_cl_connect(struct mei_cl *cl, struct mei_me_client *me_cl, in mei_cl_connect() argument
1043 if (WARN_ON(!cl || !cl->dev || !me_cl)) in mei_cl_connect()
1048 rets = mei_cl_set_connecting(cl, me_cl); in mei_cl_connect()
1160 if (WARN_ON(!cl || !cl->me_cl)) in mei_cl_flow_ctrl_creds()
1174 if (cl->me_cl->mei_flow_ctrl_creds > 0) in mei_cl_flow_ctrl_creds()
1191 if (WARN_ON(!cl || !cl->me_cl)) in mei_cl_flow_ctrl_reduce()
1198 if (WARN_ON(cl->me_cl->mei_flow_ctrl_creds <= 0)) in mei_cl_flow_ctrl_reduce()
1200 cl->me_cl->mei_flow_ctrl_creds--; in mei_cl_flow_ctrl_reduce()
1451 if (!mei_me_cl_is_active(cl->me_cl)) { in mei_cl_read_start()