Lines Matching refs:t

78 static int try_cancel_split_timeout(struct fw_transaction *t)  in try_cancel_split_timeout()  argument
80 if (t->is_split_transaction) in try_cancel_split_timeout()
81 return del_timer(&t->split_timeout_timer); in try_cancel_split_timeout()
89 struct fw_transaction *t; in close_transaction() local
93 list_for_each_entry(t, &card->transaction_list, link) { in close_transaction()
94 if (t == transaction) { in close_transaction()
95 if (!try_cancel_split_timeout(t)) { in close_transaction()
99 list_del_init(&t->link); in close_transaction()
100 card->tlabel_mask &= ~(1ULL << t->tlabel); in close_transaction()
106 if (&t->link != &card->transaction_list) { in close_transaction()
107 t->callback(card, rcode, NULL, 0, t->callback_data); in close_transaction()
142 struct fw_transaction *t = (struct fw_transaction *)data; in split_transaction_timeout_callback() local
143 struct fw_card *card = t->card; in split_transaction_timeout_callback()
147 if (list_empty(&t->link)) { in split_transaction_timeout_callback()
151 list_del(&t->link); in split_transaction_timeout_callback()
152 card->tlabel_mask &= ~(1ULL << t->tlabel); in split_transaction_timeout_callback()
155 t->callback(card, RCODE_CANCELLED, NULL, 0, t->callback_data); in split_transaction_timeout_callback()
158 static void start_split_transaction_timeout(struct fw_transaction *t, in start_split_transaction_timeout() argument
165 if (list_empty(&t->link) || WARN_ON(t->is_split_transaction)) { in start_split_transaction_timeout()
170 t->is_split_transaction = true; in start_split_transaction_timeout()
171 mod_timer(&t->split_timeout_timer, in start_split_transaction_timeout()
180 struct fw_transaction *t = in transmit_complete_callback() local
185 close_transaction(t, card, RCODE_COMPLETE); in transmit_complete_callback()
188 start_split_transaction_timeout(t, card); in transmit_complete_callback()
193 close_transaction(t, card, RCODE_BUSY); in transmit_complete_callback()
196 close_transaction(t, card, RCODE_DATA_ERROR); in transmit_complete_callback()
199 close_transaction(t, card, RCODE_TYPE_ERROR); in transmit_complete_callback()
206 close_transaction(t, card, status); in transmit_complete_callback()
350 void fw_send_request(struct fw_card *card, struct fw_transaction *t, int tcode, in fw_send_request() argument
372 t->node_id = destination_id; in fw_send_request()
373 t->tlabel = tlabel; in fw_send_request()
374 t->card = card; in fw_send_request()
375 t->is_split_transaction = false; in fw_send_request()
376 setup_timer(&t->split_timeout_timer, in fw_send_request()
377 split_transaction_timeout_callback, (unsigned long)t); in fw_send_request()
378 t->callback = callback; in fw_send_request()
379 t->callback_data = callback_data; in fw_send_request()
381 fw_fill_request(&t->packet, tcode, t->tlabel, in fw_send_request()
384 t->packet.callback = transmit_complete_callback; in fw_send_request()
386 list_add_tail(&t->link, &card->transaction_list); in fw_send_request()
390 card->driver->send_request(card, &t->packet); in fw_send_request()
424 struct fw_transaction t; in fw_run_transaction() local
426 init_timer_on_stack(&t.split_timeout_timer); in fw_run_transaction()
429 fw_send_request(card, &t, tcode, destination_id, generation, speed, in fw_run_transaction()
432 destroy_timer_on_stack(&t.split_timeout_timer); in fw_run_transaction()
941 struct fw_transaction *t; in fw_core_handle_response() local
953 list_for_each_entry(t, &card->transaction_list, link) { in fw_core_handle_response()
954 if (t->node_id == source && t->tlabel == tlabel) { in fw_core_handle_response()
955 if (!try_cancel_split_timeout(t)) { in fw_core_handle_response()
959 list_del_init(&t->link); in fw_core_handle_response()
960 card->tlabel_mask &= ~(1ULL << t->tlabel); in fw_core_handle_response()
966 if (&t->link == &card->transaction_list) { in fw_core_handle_response()
1006 card->driver->cancel_packet(card, &t->packet); in fw_core_handle_response()
1008 t->callback(card, rcode, data, data_length, t->callback_data); in fw_core_handle_response()