• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/scsi/aic94xx/

Lines Matching defs:ascb

83 static inline void asd_phy_event_tasklet(struct asd_ascb *ascb,
86 struct asd_ha_struct *asd_ha = ascb->ha;
234 static inline void asd_bytes_dmaed_tasklet(struct asd_ascb *ascb,
239 int edb_el = edb_id + ascb->edb_index;
240 struct asd_dma_tok *edb = ascb->ha->seq.edb_arr[edb_el];
241 struct asd_phy *phy = &ascb->ha->phys[phy_id];
253 asd_form_port(ascb->ha, phy);
257 static inline void asd_link_reset_err_tasklet(struct asd_ascb *ascb,
261 struct asd_ha_struct *asd_ha = ascb->ha;
294 struct asd_ascb *cp = asd_ascb_alloc_list(ascb->ha, &num,
303 if (asd_post_ascb_list(ascb->ha, cp, 1) != 0)
310 static inline void asd_primitive_rcvd_tasklet(struct asd_ascb *ascb,
315 struct sas_ha_struct *sas_ha = &ascb->ha->sas_ha;
317 struct asd_ha_struct *asd_ha = ascb->ha;
374 * @ascb: pointer to Empty SCB
381 void asd_invalidate_edb(struct asd_ascb *ascb, int edb_id)
383 struct asd_seq_data *seq = &ascb->ha->seq;
384 struct empty_scb *escb = &ascb->scb->escb;
386 struct asd_dma_tok *edb = seq->edb_arr[ascb->edb_index + edb_id];
397 ascb->dma_scb.vaddr,
398 (u64)ascb->dma_scb.dma_handle,
399 le64_to_cpu(ascb->scb->header.next_scb),
400 le16_to_cpu(ascb->scb->header.index),
401 ascb->scb->header.opcode);
406 if (!list_empty(&ascb->list))
407 list_del_init(&ascb->list);
408 i = asd_post_escb_list(ascb->ha, ascb, 1);
414 static void escb_tasklet_complete(struct asd_ascb *ascb,
417 struct asd_ha_struct *asd_ha = ascb->ha;
433 ascb->dma_scb.vaddr,
434 (unsigned long long)ascb->dma_scb.dma_handle,
436 le64_to_cpu(ascb->scb->header.next_scb),
437 le16_to_cpu(ascb->scb->header.index),
438 ascb->scb->header.opcode);
460 struct sas_task *task = ascb->uldd_task;
480 struct sas_task *task = ascb->uldd_task;
558 asd_bytes_dmaed_tasklet(ascb, dl, edb, phy_id);
563 asd_primitive_rcvd_tasklet(ascb, dl, phy_id);
567 asd_phy_event_tasklet(ascb, dl);
572 asd_link_reset_err_tasklet(ascb, dl, phy_id);
593 ascb->dma_scb.vaddr,
594 (unsigned long long)ascb->dma_scb.dma_handle,
596 le64_to_cpu(ascb->scb->header.next_scb),
597 le16_to_cpu(ascb->scb->header.index),
598 ascb->scb->header.opcode);
603 asd_invalidate_edb(ascb, edb);
625 * control_phy_tasklet_complete -- tasklet complete for CONTROL PHY ascb
626 * @ascb: pointer to an ascb
629 * This function completes a CONTROL PHY scb and frees the ascb.
635 static void control_phy_tasklet_complete(struct asd_ascb *ascb,
638 struct asd_ha_struct *asd_ha = ascb->ha;
639 struct scb *scb = ascb->scb;
642 struct asd_phy *phy = &ascb->ha->phys[phy_id];
707 asd_ascb_free(ascb);
757 * @ascb: pointer to an ascb
762 * is performed. @ascb is allocated with the list function.
763 * The caller can override the ascb->tasklet_complete to point
768 void asd_build_control_phy(struct asd_ascb *ascb, int phy_id, u8 subfunc)
770 struct asd_phy *phy = &ascb->ha->phys[phy_id];
771 struct scb *scb = ascb->scb;
810 ascb->tasklet_complete = control_phy_tasklet_complete;
815 static void link_adm_tasklet_complete(struct asd_ascb *ascb,
819 struct initiate_link_adm *link_adm = &ascb->scb->link_adm;
829 asd_ascb_free(ascb);
832 void asd_build_initiate_link_adm_task(struct asd_ascb *ascb, int phy_id,
835 struct scb *scb = ascb->scb;
844 ascb->tasklet_complete = link_adm_tasklet_complete;
851 * @data: unsigned long, a pointer to the ascb in question
857 * the ascb->timer.{function, data, expires} prior to calling the post
862 struct asd_ascb *ascb = (void *) data;
863 struct asd_seq_data *seq = &ascb->ha->seq;
866 ASD_DPRINTK("scb:0x%x timed out\n", ascb->scb->header.opcode);
870 list_del_init(&ascb->list);
873 asd_ascb_free(ascb);
891 struct asd_ascb *ascb;
914 ascb = asd_ascb_alloc_list(asd_ha, &res, GFP_KERNEL);
915 if (!ascb)
918 asd_build_control_phy(ascb, phy->id, phy_func_table[func]);
919 res = asd_post_ascb_list(asd_ha, ascb , 1);
921 asd_ascb_free(ascb);