Lines Matching defs:ascb
17 static int asd_enqueue_internal(struct asd_ascb *ascb,
24 ascb->tasklet_complete = tasklet_complete;
25 ascb->uldd_timer = 1;
27 ascb->timer.function = timed_out;
28 ascb->timer.expires = jiffies + AIC94XX_SCB_TIMEOUT;
30 add_timer(&ascb->timer);
32 res = asd_post_ascb_list(ascb->ha, ascb, 1);
34 del_timer(&ascb->timer);
56 static void asd_clear_nexus_tasklet_complete(struct asd_ascb *ascb,
59 struct tasklet_completion_status *tcs = ascb->uldd_task;
61 if (!del_timer(&ascb->timer)) {
67 complete(ascb->completion);
68 asd_ascb_free(ascb);
73 struct asd_ascb *ascb = from_timer(ascb, t, timer);
74 struct tasklet_completion_status *tcs = ascb->uldd_task;
78 complete(ascb->completion);
82 struct asd_ascb *ascb; \
90 ascb = asd_ascb_alloc_list(asd_ha, &res, GFP_KERNEL); \
91 if (!ascb) \
94 ascb->completion = &completion; \
95 ascb->uldd_task = &tcs; \
96 scb = ascb->scb; \
101 res = asd_enqueue_internal(ascb, asd_clear_nexus_tasklet_complete, \
112 asd_ascb_free(ascb); \
247 struct asd_ascb *ascb = from_timer(ascb, t, timer);
248 struct tasklet_completion_status *tcs = ascb->uldd_task;
252 complete(ascb->completion);
255 static int asd_get_tmf_resp_tasklet(struct asd_ascb *ascb,
258 struct asd_ha_struct *asd_ha = ascb->ha;
286 ascb->tag = *(__be16 *)(edb->vaddr+4);
293 ascb->tag = fh->tag;
295 ascb->tag_valid = 1;
301 static void asd_tmf_tasklet_complete(struct asd_ascb *ascb,
306 if (!del_timer(&ascb->timer))
309 tcs = ascb->uldd_task;
315 tcs->tmf_state = asd_get_tmf_resp_tasklet(ascb, dl);
316 tcs->tag_valid = ascb->tag_valid;
317 tcs->tag = ascb->tag;
320 complete(ascb->completion);
321 asd_ascb_free(ascb);
392 struct asd_ascb *ascb = NULL;
410 ascb = asd_ascb_alloc_list(asd_ha, &res, GFP_KERNEL);
411 if (!ascb)
414 ascb->uldd_task = &tcs;
415 ascb->completion = &completion;
416 scb = ascb->scb;
455 res = asd_enqueue_internal(ascb, asd_tmf_tasklet_complete,
536 asd_ascb_free(ascb);
560 struct asd_ascb *ascb;
569 ascb = asd_ascb_alloc_list(asd_ha, &res, GFP_KERNEL);
570 if (!ascb)
573 ascb->completion = &completion;
574 ascb->uldd_task = &tcs;
575 scb = ascb->scb;
603 res = asd_enqueue_internal(ascb, asd_tmf_tasklet_complete,
634 asd_ascb_free(ascb);
677 struct asd_ascb *ascb = task->lldd_task;
680 if (ascb) {
681 index = ascb->tc_index;