Lines Matching full:ecb

81 	struct ecb ecb[AHA1740_ECBS];  member
92 static inline struct ecb *ecb_dma_to_cpu (struct Scsi_Host *host, in ecb_dma_to_cpu()
100 return (struct ecb *)(((char *) hdata->ecb) + (unsigned int) offset); in ecb_dma_to_cpu()
108 offset = (char *) cpu - (char *) hdata->ecb; in ecb_cpu_to_dma()
218 struct ecb *ecbptr; in aha1740_intr_handle()
287 memset(ecbptr,0,sizeof(struct ecb)); in aha1740_intr_handle()
355 /* locate an available ecb */ in aha1740_queuecommand_lck()
361 if (!host->ecb[ecbno].cmdw) in aha1740_queuecommand_lck()
368 if (host->ecb[ecbno].cmdw) in aha1740_queuecommand_lck()
369 panic("Unable to find empty ecb for aha1740.\n"); in aha1740_queuecommand_lck()
371 host->ecb[ecbno].cmdw = AHA1740CMD_INIT; /* SCSI Initiator Command in aha1740_queuecommand_lck()
381 host->ecb[ecbno].cdblen = SCpnt->cmd_len; /* SCSI Command in aha1740_queuecommand_lck()
391 memcpy(host->ecb[ecbno].cdb, cmd, SCpnt->cmd_len); in aha1740_queuecommand_lck()
411 host->ecb[ecbno].sg = 1; /* SCSI Initiator Command in aha1740_queuecommand_lck()
418 host->ecb[ecbno].datalen = nseg * sizeof(struct aha1740_chain); in aha1740_queuecommand_lck()
419 host->ecb[ecbno].dataptr = sg_dma; in aha1740_queuecommand_lck()
426 host->ecb[ecbno].datalen = 0; in aha1740_queuecommand_lck()
427 host->ecb[ecbno].dataptr = 0; in aha1740_queuecommand_lck()
429 host->ecb[ecbno].lun = SCpnt->device->lun; in aha1740_queuecommand_lck()
430 host->ecb[ecbno].ses = 1; /* Suppress underrun errors */ in aha1740_queuecommand_lck()
431 host->ecb[ecbno].dir = direction; in aha1740_queuecommand_lck()
432 host->ecb[ecbno].ars = 1; /* Yes, get the sense on an error */ in aha1740_queuecommand_lck()
433 host->ecb[ecbno].senselen = 12; in aha1740_queuecommand_lck()
434 host->ecb[ecbno].senseptr = ecb_cpu_to_dma (SCpnt->device->host, in aha1740_queuecommand_lck()
435 host->ecb[ecbno].sense); in aha1740_queuecommand_lck()
436 host->ecb[ecbno].statusptr = ecb_cpu_to_dma (SCpnt->device->host, in aha1740_queuecommand_lck()
437 host->ecb[ecbno].status); in aha1740_queuecommand_lck()
438 host->ecb[ecbno].done = done; in aha1740_queuecommand_lck()
439 host->ecb[ecbno].SCpnt = SCpnt; in aha1740_queuecommand_lck()
444 for (i = 0; i < sizeof(host->ecb[ecbno]) - 10; i++) in aha1740_queuecommand_lck()
445 printk("%02x ", ((unchar *)&host->ecb[ecbno])[i]); in aha1740_queuecommand_lck()
477 outl (ecb_cpu_to_dma (SCpnt->device->host, host->ecb + ecbno), in aha1740_queuecommand_lck()
598 host->ecb_dma_addr = dma_map_single (&edev->dev, host->ecb, in aha1740_probe()
599 sizeof (host->ecb), in aha1740_probe()
602 printk (KERN_ERR "aha1740_probe: Couldn't map ECB, giving up\n"); in aha1740_probe()
627 sizeof (host->ecb), DMA_BIDIRECTIONAL); in aha1740_probe()
645 sizeof (host->ecb), DMA_BIDIRECTIONAL); in aha1740_remove()