Lines Matching defs:ccb
1312 static void arcmsr_pci_unmap_dma(struct CommandControlBlock *ccb)
1314 struct scsi_cmnd *pcmd = ccb->pcmd;
1319 static void arcmsr_ccb_complete(struct CommandControlBlock *ccb)
1321 struct AdapterControlBlock *acb = ccb->acb;
1322 struct scsi_cmnd *pcmd = ccb->pcmd;
1325 arcmsr_pci_unmap_dma(ccb);
1326 ccb->startdone = ARCMSR_CCB_DONE;
1328 list_add_tail(&ccb->list, &acb->ccb_free_list);
1333 static void arcmsr_report_sense_info(struct CommandControlBlock *ccb)
1336 struct scsi_cmnd *pcmd = ccb->pcmd;
1344 memcpy(sensebuffer, ccb->arcmsr_cdb.SenseData, sense_data_length);
1394 struct CommandControlBlock *ccb, bool error)
1397 id = ccb->pcmd->device->id;
1398 lun = ccb->pcmd->device->lun;
1402 ccb->pcmd->result = DID_OK << 16;
1403 arcmsr_ccb_complete(ccb);
1405 switch (ccb->arcmsr_cdb.DeviceStatus) {
1408 ccb->pcmd->result = DID_NO_CONNECT << 16;
1409 arcmsr_ccb_complete(ccb);
1417 ccb->pcmd->result = DID_BAD_TARGET << 16;
1418 arcmsr_ccb_complete(ccb);
1424 arcmsr_report_sense_info(ccb);
1425 arcmsr_ccb_complete(ccb);
1436 , ccb->arcmsr_cdb.DeviceStatus);
1438 ccb->pcmd->result = DID_NO_CONNECT << 16;
1439 arcmsr_ccb_complete(ccb);
1458 printk(KERN_NOTICE "arcmsr%d: isr get an illegal ccb command \
1460 "ccb = '0x%p' ccbacb = '0x%p' startdone = 0x%x"
1600 struct CommandControlBlock *ccb;
1604 ccb = acb->pccb_pool[i];
1605 if (ccb->startdone == ARCMSR_CCB_START) {
1606 ccb->pcmd->result = DID_NO_CONNECT << 16;
1607 arcmsr_pci_unmap_dma(ccb);
1608 ccb->pcmd->scsi_done(ccb->pcmd);
1695 struct CommandControlBlock *ccb = acb->pccb_pool[i];
1696 if (ccb->startdone == ARCMSR_CCB_START) {
1697 ccb->startdone = ARCMSR_CCB_ABORTED;
1698 ccb->pcmd->result = DID_ABORT << 16;
1699 arcmsr_ccb_complete(ccb);
1796 struct CommandControlBlock *ccb, struct scsi_cmnd *pcmd)
1798 struct ARCMSR_CDB *arcmsr_cdb = (struct ARCMSR_CDB *)&ccb->arcmsr_cdb;
1806 ccb->pcmd = pcmd;
1846 ccb->arc_cdb_size = arccdbsize;
1850 static void arcmsr_post_ccb(struct AdapterControlBlock *acb, struct CommandControlBlock *ccb)
1852 uint32_t cdb_phyaddr = ccb->cdb_phyaddr;
1853 struct ARCMSR_CDB *arcmsr_cdb = (struct ARCMSR_CDB *)&ccb->arcmsr_cdb;
1855 ccb->startdone = ARCMSR_CCB_START;
1890 arc_cdb_size = (ccb->arc_cdb_size > 0x300) ? 0x300 : ccb->arc_cdb_size;
1892 writel(upper_32_bits(ccb->cdb_phyaddr), &phbcmu->inbound_queueport_high);
1906 pinbound_srb->addressHigh = upper_32_bits(ccb->cdb_phyaddr);
1908 pinbound_srb->length = ccb->arc_cdb_size >> 2;
1923 arc_cdb_size = (ccb->arc_cdb_size > 0x300) ? 0x300 : ccb->arc_cdb_size;
1924 ccb_post_stamp = (ccb->smid | ((arc_cdb_size - 1) >> 6));
1933 if (ccb->arc_cdb_size <= 0x300)
1934 arc_cdb_size = (ccb->arc_cdb_size - 1) >> 6 | 1;
1936 arc_cdb_size = ((ccb->arc_cdb_size + 0xff) >> 8) + 2;
1941 ccb_post_stamp = (ccb->smid | arc_cdb_size);
2512 struct CommandControlBlock *ccb;
2528 ccb = container_of(arcmsr_cdb, struct CommandControlBlock,
2533 arcmsr_drain_donequeue(acb, ccb, error);
2550 struct CommandControlBlock *ccb;
2572 ccb = container_of(arcmsr_cdb,
2576 arcmsr_drain_donequeue(acb, ccb, error);
2593 struct CommandControlBlock *ccb;
2601 ccb = acb->pccb_pool[cmdSMID];
2604 arcmsr_drain_donequeue(acb, ccb, error);
2620 struct CommandControlBlock *ccb;
2630 ccb = acb->pccb_pool[cmdSMID];
2633 arcmsr_drain_donequeue(acb, ccb, error);
3175 struct CommandControlBlock *ccb = NULL;
3179 ccb = list_entry(head->next, struct CommandControlBlock, list);
3180 list_del_init(&ccb->list);
3186 return ccb;
3244 struct CommandControlBlock *ccb;
3260 ccb = arcmsr_get_freeccb(acb);
3261 if (!ccb)
3263 if (arcmsr_build_ccb( acb, ccb, cmd ) == FAILED) {
3268 arcmsr_post_ccb(acb, ccb);
3488 struct CommandControlBlock *ccb;
3517 ccb = container_of(arcmsr_cdb, struct CommandControlBlock, arcmsr_cdb);
3518 poll_ccb_done |= (ccb == poll_ccb) ? 1 : 0;
3519 if ((ccb->acb != acb) || (ccb->startdone != ARCMSR_CCB_START)) {
3520 if ((ccb->startdone == ARCMSR_CCB_ABORTED) || (ccb == poll_ccb)) {
3521 printk(KERN_NOTICE "arcmsr%d: scsi id = %d lun = %d ccb = '0x%p'"
3524 , ccb->pcmd->device->id
3525 , (u32)ccb->pcmd->device->lun
3526 , ccb);
3527 ccb->pcmd->result = DID_ABORT << 16;
3528 arcmsr_ccb_complete(ccb);
3531 printk(KERN_NOTICE "arcmsr%d: polling get an illegal ccb"
3532 " command done ccb = '0x%p'"
3535 , ccb
3540 arcmsr_report_ccb_state(acb, ccb, error);
3550 struct CommandControlBlock *ccb;
3586 ccb = container_of(arcmsr_cdb, struct CommandControlBlock, arcmsr_cdb);
3587 poll_ccb_done |= (ccb == poll_ccb) ? 1 : 0;
3588 if ((ccb->acb != acb) || (ccb->startdone != ARCMSR_CCB_START)) {
3589 if ((ccb->startdone == ARCMSR_CCB_ABORTED) || (ccb == poll_ccb)) {
3590 printk(KERN_NOTICE "arcmsr%d: scsi id = %d lun = %d ccb = '0x%p'"
3593 ,ccb->pcmd->device->id
3594 ,(u32)ccb->pcmd->device->lun
3595 ,ccb);
3596 ccb->pcmd->result = DID_ABORT << 16;
3597 arcmsr_ccb_complete(ccb);
3600 printk(KERN_NOTICE "arcmsr%d: polling get an illegal ccb"
3601 " command done ccb = '0x%p'"
3604 , ccb
3609 arcmsr_report_ccb_state(acb, ccb, error);
3652 printk(KERN_NOTICE "arcmsr%d: scsi id = %d lun = %d ccb = '0x%p'"
3662 printk(KERN_NOTICE "arcmsr%d: polling get an illegal ccb"
3663 " command done ccb = '0x%p'"
3727 "lun = %d ccb = '0x%p' poll command "
3738 "ccb command done ccb = '0x%p' "
3795 "lun = %d ccb = '0x%p' poll command "
3806 "ccb command done ccb = '0x%p' "
3984 printk(KERN_NOTICE "arcmsr%d: ""set ccb high \
4014 /* ccb maxQ size must be --> [(256 + 8)*4]*/
4541 struct CommandControlBlock *ccb;
4555 ccb = acb->pccb_pool[i];
4556 if (ccb->startdone == ARCMSR_CCB_START) {
4557 scsi_dma_unmap(ccb->pcmd);
4558 ccb->startdone = ARCMSR_CCB_DONE;
4559 ccb->ccb_flags = 0;
4561 list_add_tail(&ccb->list, &acb->ccb_free_list);
4628 struct CommandControlBlock *ccb)
4631 rtn = arcmsr_polling_ccbdone(acb, ccb);
4663 struct CommandControlBlock *ccb = acb->pccb_pool[i];
4664 if (ccb->startdone == ARCMSR_CCB_START && ccb->pcmd == cmd) {
4665 ccb->startdone = ARCMSR_CCB_ABORTED;
4666 rtn = arcmsr_abort_one_cmd(acb, ccb);