Lines Matching refs:intent

244 	struct glink_core_rx_intent *intent;  in qcom_glink_channel_release()  local
254 list_for_each_entry_safe(intent, tmp, &channel->done_intents, node) { in qcom_glink_channel_release()
255 if (!intent->reuse) { in qcom_glink_channel_release()
256 kfree(intent->data); in qcom_glink_channel_release()
257 kfree(intent); in qcom_glink_channel_release()
478 struct glink_core_rx_intent *intent, *tmp; in qcom_glink_rx_done_work() local
491 list_for_each_entry_safe(intent, tmp, &channel->done_intents, node) { in qcom_glink_rx_done_work()
492 list_del(&intent->node); in qcom_glink_rx_done_work()
494 iid = intent->id; in qcom_glink_rx_done_work()
495 reuse = intent->reuse; in qcom_glink_rx_done_work()
503 kfree(intent->data); in qcom_glink_rx_done_work()
504 kfree(intent); in qcom_glink_rx_done_work()
513 struct glink_core_rx_intent *intent) in qcom_glink_rx_done() argument
517 kfree(intent->data); in qcom_glink_rx_done()
518 kfree(intent); in qcom_glink_rx_done()
523 if (!intent->reuse) { in qcom_glink_rx_done()
525 idr_remove(&channel->liids, intent->id); in qcom_glink_rx_done()
531 list_add_tail(&intent->node, &channel->done_intents); in qcom_glink_rx_done()
629 struct glink_core_rx_intent *intent) in qcom_glink_advertise_intent() argument
643 cmd.size = cpu_to_le32(intent->size); in qcom_glink_advertise_intent()
644 cmd.liid = cpu_to_le32(intent->id); in qcom_glink_advertise_intent()
657 struct glink_core_rx_intent *intent; in qcom_glink_alloc_intent() local
661 intent = kzalloc(sizeof(*intent), GFP_KERNEL); in qcom_glink_alloc_intent()
662 if (!intent) in qcom_glink_alloc_intent()
665 intent->data = kzalloc(size, GFP_KERNEL); in qcom_glink_alloc_intent()
666 if (!intent->data) in qcom_glink_alloc_intent()
670 ret = idr_alloc_cyclic(&channel->liids, intent, 1, -1, GFP_ATOMIC); in qcom_glink_alloc_intent()
677 intent->id = ret; in qcom_glink_alloc_intent()
678 intent->size = size; in qcom_glink_alloc_intent()
679 intent->reuse = reuseable; in qcom_glink_alloc_intent()
681 return intent; in qcom_glink_alloc_intent()
684 kfree(intent->data); in qcom_glink_alloc_intent()
686 kfree(intent); in qcom_glink_alloc_intent()
694 struct glink_core_rx_intent *intent; in qcom_glink_handle_rx_done() local
707 intent = idr_find(&channel->riids, iid); in qcom_glink_handle_rx_done()
709 if (!intent) { in qcom_glink_handle_rx_done()
715 intent->in_use = false; in qcom_glink_handle_rx_done()
718 idr_remove(&channel->riids, intent->id); in qcom_glink_handle_rx_done()
719 kfree(intent); in qcom_glink_handle_rx_done()
737 struct glink_core_rx_intent *intent; in qcom_glink_handle_intent_req() local
750 intent = qcom_glink_alloc_intent(glink, channel, size, false); in qcom_glink_handle_intent_req()
751 if (intent) in qcom_glink_handle_intent_req()
752 qcom_glink_advertise_intent(glink, channel, intent); in qcom_glink_handle_intent_req()
754 qcom_glink_send_intent_req_ack(glink, channel, !!intent); in qcom_glink_handle_intent_req()
788 struct glink_core_rx_intent *intent; in qcom_glink_rx_data() local
830 intent = kzalloc(sizeof(*intent), GFP_ATOMIC); in qcom_glink_rx_data()
831 if (!intent) in qcom_glink_rx_data()
834 intent->data = kmalloc(chunk_size + left_size, in qcom_glink_rx_data()
836 if (!intent->data) { in qcom_glink_rx_data()
837 kfree(intent); in qcom_glink_rx_data()
841 intent->id = 0xbabababa; in qcom_glink_rx_data()
842 intent->size = chunk_size + left_size; in qcom_glink_rx_data()
843 intent->offset = 0; in qcom_glink_rx_data()
845 channel->buf = intent; in qcom_glink_rx_data()
847 intent = channel->buf; in qcom_glink_rx_data()
853 intent = idr_find(&channel->liids, liid); in qcom_glink_rx_data()
856 if (!intent) { in qcom_glink_rx_data()
864 if (intent->size - intent->offset < chunk_size) { in qcom_glink_rx_data()
871 qcom_glink_rx_peak(glink, intent->data + intent->offset, in qcom_glink_rx_data()
873 intent->offset += chunk_size; in qcom_glink_rx_data()
880 intent->data, in qcom_glink_rx_data()
881 intent->offset, in qcom_glink_rx_data()
887 intent->offset = 0; in qcom_glink_rx_data()
890 qcom_glink_rx_done(glink, channel, intent); in qcom_glink_rx_data()
904 struct glink_core_rx_intent *intent; in qcom_glink_handle_intent() local
941 intent = kzalloc(sizeof(*intent), GFP_ATOMIC); in qcom_glink_handle_intent()
942 if (!intent) in qcom_glink_handle_intent()
945 intent->id = le32_to_cpu(msg->intents[i].iid); in qcom_glink_handle_intent()
946 intent->size = le32_to_cpu(msg->intents[i].size); in qcom_glink_handle_intent()
949 ret = idr_alloc(&channel->riids, intent, in qcom_glink_handle_intent()
950 intent->id, intent->id + 1, GFP_ATOMIC); in qcom_glink_handle_intent()
1173 struct glink_core_rx_intent *intent; in qcom_glink_announce_create() local
1195 intent = qcom_glink_alloc_intent(glink, channel, size, in qcom_glink_announce_create()
1197 if (!intent) in qcom_glink_announce_create()
1200 qcom_glink_advertise_intent(glink, channel, intent); in qcom_glink_announce_create()
1263 struct glink_core_rx_intent *intent = NULL; in __qcom_glink_send() local
1275 while (!intent) { in __qcom_glink_send()
1279 if (!intent) in __qcom_glink_send()
1280 intent = tmp; in __qcom_glink_send()
1281 else if (intent->size > tmp->size) in __qcom_glink_send()
1282 intent = tmp; in __qcom_glink_send()
1283 if (intent->size == len) in __qcom_glink_send()
1287 if (intent) in __qcom_glink_send()
1288 intent->in_use = true; in __qcom_glink_send()
1292 if (intent) in __qcom_glink_send()
1303 iid = intent->id; in __qcom_glink_send()
1315 if (ret && intent) in __qcom_glink_send()
1316 intent->in_use = false; in __qcom_glink_send()