Lines Matching refs:intent
240 struct glink_core_rx_intent *intent; in qcom_glink_channel_release() local
250 list_for_each_entry_safe(intent, tmp, &channel->done_intents, node) { in qcom_glink_channel_release()
251 if (!intent->reuse) { in qcom_glink_channel_release()
252 kfree(intent->data); in qcom_glink_channel_release()
253 kfree(intent); in qcom_glink_channel_release()
515 struct glink_core_rx_intent *intent, *tmp; in qcom_glink_rx_done_work() local
528 list_for_each_entry_safe(intent, tmp, &channel->done_intents, node) { in qcom_glink_rx_done_work()
529 list_del(&intent->node); in qcom_glink_rx_done_work()
531 iid = intent->id; in qcom_glink_rx_done_work()
532 reuse = intent->reuse; in qcom_glink_rx_done_work()
540 kfree(intent->data); in qcom_glink_rx_done_work()
541 kfree(intent); in qcom_glink_rx_done_work()
550 struct glink_core_rx_intent *intent) in qcom_glink_rx_done() argument
554 kfree(intent->data); in qcom_glink_rx_done()
555 kfree(intent); in qcom_glink_rx_done()
560 if (!intent->reuse) { in qcom_glink_rx_done()
562 idr_remove(&channel->liids, intent->id); in qcom_glink_rx_done()
568 list_add_tail(&intent->node, &channel->done_intents); in qcom_glink_rx_done()
666 struct glink_core_rx_intent *intent) in qcom_glink_advertise_intent() argument
680 cmd.size = cpu_to_le32(intent->size); in qcom_glink_advertise_intent()
681 cmd.liid = cpu_to_le32(intent->id); in qcom_glink_advertise_intent()
694 struct glink_core_rx_intent *intent; in qcom_glink_alloc_intent() local
698 intent = kzalloc(sizeof(*intent), GFP_KERNEL); in qcom_glink_alloc_intent()
699 if (!intent) in qcom_glink_alloc_intent()
702 intent->data = kzalloc(size, GFP_KERNEL); in qcom_glink_alloc_intent()
703 if (!intent->data) in qcom_glink_alloc_intent()
707 ret = idr_alloc_cyclic(&channel->liids, intent, 1, -1, GFP_ATOMIC); in qcom_glink_alloc_intent()
714 intent->id = ret; in qcom_glink_alloc_intent()
715 intent->size = size; in qcom_glink_alloc_intent()
716 intent->reuse = reuseable; in qcom_glink_alloc_intent()
718 return intent; in qcom_glink_alloc_intent()
721 kfree(intent->data); in qcom_glink_alloc_intent()
723 kfree(intent); in qcom_glink_alloc_intent()
731 struct glink_core_rx_intent *intent; in qcom_glink_handle_rx_done() local
744 intent = idr_find(&channel->riids, iid); in qcom_glink_handle_rx_done()
746 if (!intent) { in qcom_glink_handle_rx_done()
752 intent->in_use = false; in qcom_glink_handle_rx_done()
755 idr_remove(&channel->riids, intent->id); in qcom_glink_handle_rx_done()
756 kfree(intent); in qcom_glink_handle_rx_done()
774 struct glink_core_rx_intent *intent; in qcom_glink_handle_intent_req() local
787 intent = qcom_glink_alloc_intent(glink, channel, size, false); in qcom_glink_handle_intent_req()
788 if (intent) in qcom_glink_handle_intent_req()
789 qcom_glink_advertise_intent(glink, channel, intent); in qcom_glink_handle_intent_req()
791 qcom_glink_send_intent_req_ack(glink, channel, !!intent); in qcom_glink_handle_intent_req()
825 struct glink_core_rx_intent *intent; in qcom_glink_rx_data() local
867 intent = kzalloc(sizeof(*intent), GFP_ATOMIC); in qcom_glink_rx_data()
868 if (!intent) in qcom_glink_rx_data()
871 intent->data = kmalloc(chunk_size + left_size, in qcom_glink_rx_data()
873 if (!intent->data) { in qcom_glink_rx_data()
874 kfree(intent); in qcom_glink_rx_data()
878 intent->id = 0xbabababa; in qcom_glink_rx_data()
879 intent->size = chunk_size + left_size; in qcom_glink_rx_data()
880 intent->offset = 0; in qcom_glink_rx_data()
882 channel->buf = intent; in qcom_glink_rx_data()
884 intent = channel->buf; in qcom_glink_rx_data()
890 intent = idr_find(&channel->liids, liid); in qcom_glink_rx_data()
893 if (!intent) { in qcom_glink_rx_data()
902 if (intent->size - intent->offset < chunk_size) { in qcom_glink_rx_data()
909 qcom_glink_rx_peek(glink, intent->data + intent->offset, in qcom_glink_rx_data()
911 intent->offset += chunk_size; in qcom_glink_rx_data()
918 intent->data, in qcom_glink_rx_data()
919 intent->offset, in qcom_glink_rx_data()
925 intent->offset = 0; in qcom_glink_rx_data()
928 qcom_glink_rx_done(glink, channel, intent); in qcom_glink_rx_data()
942 struct glink_core_rx_intent *intent; in qcom_glink_handle_intent() local
980 intent = kzalloc(sizeof(*intent), GFP_ATOMIC); in qcom_glink_handle_intent()
981 if (!intent) in qcom_glink_handle_intent()
984 intent->id = le32_to_cpu(msg->intents[i].iid); in qcom_glink_handle_intent()
985 intent->size = le32_to_cpu(msg->intents[i].size); in qcom_glink_handle_intent()
988 ret = idr_alloc(&channel->riids, intent, in qcom_glink_handle_intent()
989 intent->id, intent->id + 1, GFP_ATOMIC); in qcom_glink_handle_intent()
1211 struct glink_core_rx_intent *intent; in qcom_glink_announce_create() local
1233 intent = qcom_glink_alloc_intent(glink, channel, size, in qcom_glink_announce_create()
1235 if (!intent) in qcom_glink_announce_create()
1238 qcom_glink_advertise_intent(glink, channel, intent); in qcom_glink_announce_create()
1301 struct glink_core_rx_intent *intent = NULL; in __qcom_glink_send() local
1315 while (!intent) { in __qcom_glink_send()
1319 if (!intent) in __qcom_glink_send()
1320 intent = tmp; in __qcom_glink_send()
1321 else if (intent->size > tmp->size) in __qcom_glink_send()
1322 intent = tmp; in __qcom_glink_send()
1323 if (intent->size == len) in __qcom_glink_send()
1327 if (intent) in __qcom_glink_send()
1328 intent->in_use = true; in __qcom_glink_send()
1332 if (intent) in __qcom_glink_send()
1343 iid = intent->id; in __qcom_glink_send()
1359 if (ret && intent) { in __qcom_glink_send()
1360 intent->in_use = false; in __qcom_glink_send()
1381 if (ret && intent) { in __qcom_glink_send()
1382 intent->in_use = false; in __qcom_glink_send()