Lines Matching refs:intent
248 struct glink_core_rx_intent *intent; in qcom_glink_channel_release() local
258 list_for_each_entry_safe(intent, tmp, &channel->done_intents, node) { in qcom_glink_channel_release()
259 if (!intent->reuse) { in qcom_glink_channel_release()
260 kfree(intent->data); in qcom_glink_channel_release()
261 kfree(intent); in qcom_glink_channel_release()
505 struct glink_core_rx_intent *intent, *tmp; in qcom_glink_rx_done_work() local
518 list_for_each_entry_safe(intent, tmp, &channel->done_intents, node) { in qcom_glink_rx_done_work()
519 list_del(&intent->node); in qcom_glink_rx_done_work()
521 iid = intent->id; in qcom_glink_rx_done_work()
522 reuse = intent->reuse; in qcom_glink_rx_done_work()
530 kfree(intent->data); in qcom_glink_rx_done_work()
531 kfree(intent); in qcom_glink_rx_done_work()
540 struct glink_core_rx_intent *intent) in qcom_glink_rx_done() argument
544 kfree(intent->data); in qcom_glink_rx_done()
545 kfree(intent); in qcom_glink_rx_done()
550 if (!intent->reuse) { in qcom_glink_rx_done()
552 idr_remove(&channel->liids, intent->id); in qcom_glink_rx_done()
558 list_add_tail(&intent->node, &channel->done_intents); in qcom_glink_rx_done()
656 struct glink_core_rx_intent *intent) in qcom_glink_advertise_intent() argument
670 cmd.size = cpu_to_le32(intent->size); in qcom_glink_advertise_intent()
671 cmd.liid = cpu_to_le32(intent->id); in qcom_glink_advertise_intent()
684 struct glink_core_rx_intent *intent; in qcom_glink_alloc_intent() local
688 intent = kzalloc(sizeof(*intent), GFP_KERNEL); in qcom_glink_alloc_intent()
689 if (!intent) in qcom_glink_alloc_intent()
692 intent->data = kzalloc(size, GFP_KERNEL); in qcom_glink_alloc_intent()
693 if (!intent->data) in qcom_glink_alloc_intent()
697 ret = idr_alloc_cyclic(&channel->liids, intent, 1, -1, GFP_ATOMIC); in qcom_glink_alloc_intent()
704 intent->id = ret; in qcom_glink_alloc_intent()
705 intent->size = size; in qcom_glink_alloc_intent()
706 intent->reuse = reuseable; in qcom_glink_alloc_intent()
708 return intent; in qcom_glink_alloc_intent()
711 kfree(intent->data); in qcom_glink_alloc_intent()
713 kfree(intent); in qcom_glink_alloc_intent()
721 struct glink_core_rx_intent *intent; in qcom_glink_handle_rx_done() local
734 intent = idr_find(&channel->riids, iid); in qcom_glink_handle_rx_done()
736 if (!intent) { in qcom_glink_handle_rx_done()
742 intent->in_use = false; in qcom_glink_handle_rx_done()
745 idr_remove(&channel->riids, intent->id); in qcom_glink_handle_rx_done()
746 kfree(intent); in qcom_glink_handle_rx_done()
764 struct glink_core_rx_intent *intent; in qcom_glink_handle_intent_req() local
777 intent = qcom_glink_alloc_intent(glink, channel, size, false); in qcom_glink_handle_intent_req()
778 if (intent) in qcom_glink_handle_intent_req()
779 qcom_glink_advertise_intent(glink, channel, intent); in qcom_glink_handle_intent_req()
781 qcom_glink_send_intent_req_ack(glink, channel, !!intent); in qcom_glink_handle_intent_req()
815 struct glink_core_rx_intent *intent; in qcom_glink_rx_data() local
857 intent = kzalloc(sizeof(*intent), GFP_ATOMIC); in qcom_glink_rx_data()
858 if (!intent) in qcom_glink_rx_data()
861 intent->data = kmalloc(chunk_size + left_size, in qcom_glink_rx_data()
863 if (!intent->data) { in qcom_glink_rx_data()
864 kfree(intent); in qcom_glink_rx_data()
868 intent->id = 0xbabababa; in qcom_glink_rx_data()
869 intent->size = chunk_size + left_size; in qcom_glink_rx_data()
870 intent->offset = 0; in qcom_glink_rx_data()
872 channel->buf = intent; in qcom_glink_rx_data()
874 intent = channel->buf; in qcom_glink_rx_data()
880 intent = idr_find(&channel->liids, liid); in qcom_glink_rx_data()
883 if (!intent) { in qcom_glink_rx_data()
892 if (intent->size - intent->offset < chunk_size) { in qcom_glink_rx_data()
899 qcom_glink_rx_peak(glink, intent->data + intent->offset, in qcom_glink_rx_data()
901 intent->offset += chunk_size; in qcom_glink_rx_data()
908 intent->data, in qcom_glink_rx_data()
909 intent->offset, in qcom_glink_rx_data()
915 intent->offset = 0; in qcom_glink_rx_data()
918 qcom_glink_rx_done(glink, channel, intent); in qcom_glink_rx_data()
932 struct glink_core_rx_intent *intent; in qcom_glink_handle_intent() local
969 intent = kzalloc(sizeof(*intent), GFP_ATOMIC); in qcom_glink_handle_intent()
970 if (!intent) in qcom_glink_handle_intent()
973 intent->id = le32_to_cpu(msg->intents[i].iid); in qcom_glink_handle_intent()
974 intent->size = le32_to_cpu(msg->intents[i].size); in qcom_glink_handle_intent()
977 ret = idr_alloc(&channel->riids, intent, in qcom_glink_handle_intent()
978 intent->id, intent->id + 1, GFP_ATOMIC); in qcom_glink_handle_intent()
1204 struct glink_core_rx_intent *intent; in qcom_glink_announce_create() local
1226 intent = qcom_glink_alloc_intent(glink, channel, size, in qcom_glink_announce_create()
1228 if (!intent) in qcom_glink_announce_create()
1231 qcom_glink_advertise_intent(glink, channel, intent); in qcom_glink_announce_create()
1294 struct glink_core_rx_intent *intent = NULL; in __qcom_glink_send() local
1308 while (!intent) { in __qcom_glink_send()
1312 if (!intent) in __qcom_glink_send()
1313 intent = tmp; in __qcom_glink_send()
1314 else if (intent->size > tmp->size) in __qcom_glink_send()
1315 intent = tmp; in __qcom_glink_send()
1316 if (intent->size == len) in __qcom_glink_send()
1320 if (intent) in __qcom_glink_send()
1321 intent->in_use = true; in __qcom_glink_send()
1325 if (intent) in __qcom_glink_send()
1336 iid = intent->id; in __qcom_glink_send()
1352 if (ret && intent) { in __qcom_glink_send()
1353 intent->in_use = false; in __qcom_glink_send()
1374 if (ret && intent) { in __qcom_glink_send()
1375 intent->in_use = false; in __qcom_glink_send()