Lines Matching refs:ascb

67 static void asd_phy_event_tasklet(struct asd_ascb *ascb,  in asd_phy_event_tasklet()  argument
70 struct asd_ha_struct *asd_ha = ascb->ha; in asd_phy_event_tasklet()
217 static void asd_bytes_dmaed_tasklet(struct asd_ascb *ascb, in asd_bytes_dmaed_tasklet() argument
222 int edb_el = edb_id + ascb->edb_index; in asd_bytes_dmaed_tasklet()
223 struct asd_dma_tok *edb = ascb->ha->seq.edb_arr[edb_el]; in asd_bytes_dmaed_tasklet()
224 struct asd_phy *phy = &ascb->ha->phys[phy_id]; in asd_bytes_dmaed_tasklet()
236 asd_form_port(ascb->ha, phy); in asd_bytes_dmaed_tasklet()
240 static void asd_link_reset_err_tasklet(struct asd_ascb *ascb, in asd_link_reset_err_tasklet() argument
244 struct asd_ha_struct *asd_ha = ascb->ha; in asd_link_reset_err_tasklet()
277 struct asd_ascb *cp = asd_ascb_alloc_list(ascb->ha, &num, in asd_link_reset_err_tasklet()
286 if (asd_post_ascb_list(ascb->ha, cp, 1) != 0) in asd_link_reset_err_tasklet()
293 static void asd_primitive_rcvd_tasklet(struct asd_ascb *ascb, in asd_primitive_rcvd_tasklet() argument
298 struct sas_ha_struct *sas_ha = &ascb->ha->sas_ha; in asd_primitive_rcvd_tasklet()
300 struct asd_ha_struct *asd_ha = ascb->ha; in asd_primitive_rcvd_tasklet()
364 void asd_invalidate_edb(struct asd_ascb *ascb, int edb_id) in asd_invalidate_edb() argument
366 struct asd_seq_data *seq = &ascb->ha->seq; in asd_invalidate_edb()
367 struct empty_scb *escb = &ascb->scb->escb; in asd_invalidate_edb()
369 struct asd_dma_tok *edb = seq->edb_arr[ascb->edb_index + edb_id]; in asd_invalidate_edb()
389 if (!list_empty(&ascb->list)) in asd_invalidate_edb()
390 list_del_init(&ascb->list); in asd_invalidate_edb()
391 i = asd_post_escb_list(ascb->ha, ascb, 1); in asd_invalidate_edb()
397 static void escb_tasklet_complete(struct asd_ascb *ascb, in escb_tasklet_complete() argument
400 struct asd_ha_struct *asd_ha = ascb->ha; in escb_tasklet_complete()
416 ascb->dma_scb.vaddr, in escb_tasklet_complete()
417 (unsigned long long)ascb->dma_scb.dma_handle, in escb_tasklet_complete()
419 le64_to_cpu(ascb->scb->header.next_scb), in escb_tasklet_complete()
420 le16_to_cpu(ascb->scb->header.index), in escb_tasklet_complete()
421 ascb->scb->header.opcode); in escb_tasklet_complete()
547 asd_bytes_dmaed_tasklet(ascb, dl, edb, phy_id); in escb_tasklet_complete()
552 asd_primitive_rcvd_tasklet(ascb, dl, phy_id); in escb_tasklet_complete()
556 asd_phy_event_tasklet(ascb, dl); in escb_tasklet_complete()
561 asd_link_reset_err_tasklet(ascb, dl, phy_id); in escb_tasklet_complete()
582 ascb->dma_scb.vaddr, in escb_tasklet_complete()
583 (unsigned long long)ascb->dma_scb.dma_handle, in escb_tasklet_complete()
585 le64_to_cpu(ascb->scb->header.next_scb), in escb_tasklet_complete()
586 le16_to_cpu(ascb->scb->header.index), in escb_tasklet_complete()
587 ascb->scb->header.opcode); in escb_tasklet_complete()
592 asd_invalidate_edb(ascb, edb); in escb_tasklet_complete()
624 static void control_phy_tasklet_complete(struct asd_ascb *ascb, in control_phy_tasklet_complete() argument
627 struct asd_ha_struct *asd_ha = ascb->ha; in control_phy_tasklet_complete()
628 struct scb *scb = ascb->scb; in control_phy_tasklet_complete()
631 struct asd_phy *phy = &ascb->ha->phys[phy_id]; in control_phy_tasklet_complete()
697 asd_ascb_free(ascb); in control_phy_tasklet_complete()
762 void asd_build_control_phy(struct asd_ascb *ascb, int phy_id, u8 subfunc) in asd_build_control_phy() argument
764 struct asd_phy *phy = &ascb->ha->phys[phy_id]; in asd_build_control_phy()
765 struct scb *scb = ascb->scb; in asd_build_control_phy()
805 ascb->tasklet_complete = control_phy_tasklet_complete; in asd_build_control_phy()
812 static void link_adm_tasklet_complete(struct asd_ascb *ascb,
816 struct initiate_link_adm *link_adm = &ascb->scb->link_adm;
826 asd_ascb_free(ascb);
829 void asd_build_initiate_link_adm_task(struct asd_ascb *ascb, int phy_id,
832 struct scb *scb = ascb->scb;
841 ascb->tasklet_complete = link_adm_tasklet_complete;
861 struct asd_ascb *ascb = from_timer(ascb, t, timer); in asd_ascb_timedout() local
862 struct asd_seq_data *seq = &ascb->ha->seq; in asd_ascb_timedout()
865 ASD_DPRINTK("scb:0x%x timed out\n", ascb->scb->header.opcode); in asd_ascb_timedout()
869 list_del_init(&ascb->list); in asd_ascb_timedout()
872 asd_ascb_free(ascb); in asd_ascb_timedout()
890 struct asd_ascb *ascb; in asd_control_phy() local
914 ascb = asd_ascb_alloc_list(asd_ha, &res, GFP_KERNEL); in asd_control_phy()
915 if (!ascb) in asd_control_phy()
918 asd_build_control_phy(ascb, phy->id, phy_func_table[func]); in asd_control_phy()
919 res = asd_post_ascb_list(asd_ha, ascb , 1); in asd_control_phy()
921 asd_ascb_free(ascb); in asd_control_phy()