Lines Matching refs:asd_ha
36 static void asd_can_dequeue(struct asd_ha_struct *asd_ha, int num) in asd_can_dequeue() argument
40 spin_lock_irqsave(&asd_ha->seq.pend_q_lock, flags); in asd_can_dequeue()
41 asd_ha->seq.can_queue += num; in asd_can_dequeue()
42 spin_unlock_irqrestore(&asd_ha->seq.pend_q_lock, flags); in asd_can_dequeue()
59 struct asd_ha_struct *asd_ha = ascb->ha; in asd_map_scatterlist() local
68 dma_addr_t dma = pci_map_single(asd_ha->pcidev, p, in asd_map_scatterlist()
82 num_sg = pci_map_sg(asd_ha->pcidev, task->scatter, in asd_map_scatterlist()
90 ascb->sg_arr = asd_alloc_coherent(asd_ha, in asd_map_scatterlist()
129 pci_unmap_sg(asd_ha->pcidev, task->scatter, task->num_scatter, in asd_map_scatterlist()
136 struct asd_ha_struct *asd_ha = ascb->ha; in asd_unmap_scatterlist() local
150 asd_free_coherent(asd_ha, ascb->sg_arr); in asd_unmap_scatterlist()
152 pci_unmap_sg(asd_ha->pcidev, task->scatter, task->num_scatter, in asd_unmap_scatterlist()
161 struct asd_ha_struct *asd_ha = ascb->ha; in asd_get_response_tasklet() local
177 spin_lock_irqsave(&asd_ha->seq.tc_index_lock, flags); in asd_get_response_tasklet()
178 escb = asd_tc_index_find(&asd_ha->seq, in asd_get_response_tasklet()
180 spin_unlock_irqrestore(&asd_ha->seq.tc_index_lock, flags); in asd_get_response_tasklet()
188 edb = asd_ha->seq.edb_arr[edb_id + escb->edb_index]; in asd_get_response_tasklet()
196 sas_ssp_task_response(&asd_ha->pcidev->dev, task, iu); in asd_get_response_tasklet()
435 struct asd_ha_struct *asd_ha = ascb->ha; in asd_build_smp_ascb() local
439 pci_map_sg(asd_ha->pcidev, &task->smp_task.smp_req, 1, in asd_build_smp_ascb()
441 pci_map_sg(asd_ha->pcidev, &task->smp_task.smp_resp, 1, in asd_build_smp_ascb()
531 static int asd_can_queue(struct asd_ha_struct *asd_ha, int num) in asd_can_queue() argument
536 spin_lock_irqsave(&asd_ha->seq.pend_q_lock, flags); in asd_can_queue()
537 if ((asd_ha->seq.can_queue - num) < 0) in asd_can_queue()
540 asd_ha->seq.can_queue -= num; in asd_can_queue()
541 spin_unlock_irqrestore(&asd_ha->seq.pend_q_lock, flags); in asd_can_queue()
552 struct asd_ha_struct *asd_ha = task->dev->port->ha->lldd_ha; in asd_execute_task() local
555 res = asd_can_queue(asd_ha, 1); in asd_execute_task()
560 ascb = asd_ascb_alloc_list(asd_ha, &res, gfp_flags); in asd_execute_task()
603 res = asd_post_ascb_list(asd_ha, ascb, 1); in asd_execute_task()
641 asd_can_dequeue(asd_ha, 1); in asd_execute_task()