Lines Matching refs:ccb

1365 static void arcmsr_ccb_complete(struct CommandControlBlock *ccb)
1367 struct AdapterControlBlock *acb = ccb->acb;
1368 struct scsi_cmnd *pcmd = ccb->pcmd;
1371 scsi_dma_unmap(ccb->pcmd);
1372 ccb->startdone = ARCMSR_CCB_DONE;
1374 list_add_tail(&ccb->list, &acb->ccb_free_list);
1379 static void arcmsr_report_sense_info(struct CommandControlBlock *ccb)
1381 struct scsi_cmnd *pcmd = ccb->pcmd;
1389 ccb->arcmsr_cdb.SenseData,
1390 sizeof(ccb->arcmsr_cdb.SenseData),
1442 struct CommandControlBlock *ccb, bool error)
1445 id = ccb->pcmd->device->id;
1446 lun = ccb->pcmd->device->lun;
1450 ccb->pcmd->result = DID_OK << 16;
1451 arcmsr_ccb_complete(ccb);
1453 switch (ccb->arcmsr_cdb.DeviceStatus) {
1456 ccb->pcmd->result = DID_NO_CONNECT << 16;
1457 arcmsr_ccb_complete(ccb);
1465 ccb->pcmd->result = DID_BAD_TARGET << 16;
1466 arcmsr_ccb_complete(ccb);
1472 arcmsr_report_sense_info(ccb);
1473 arcmsr_ccb_complete(ccb);
1484 , ccb->arcmsr_cdb.DeviceStatus);
1486 ccb->pcmd->result = DID_NO_CONNECT << 16;
1487 arcmsr_ccb_complete(ccb);
1506 printk(KERN_NOTICE "arcmsr%d: isr get an illegal ccb command \
1508 "ccb = '0x%p' ccbacb = '0x%p' startdone = 0x%x"
1648 struct CommandControlBlock *ccb;
1652 ccb = acb->pccb_pool[i];
1653 if (ccb->startdone == ARCMSR_CCB_START) {
1654 ccb->pcmd->result = DID_NO_CONNECT << 16;
1655 scsi_dma_unmap(ccb->pcmd);
1656 scsi_done(ccb->pcmd);
1743 struct CommandControlBlock *ccb = acb->pccb_pool[i];
1744 if (ccb->startdone == ARCMSR_CCB_START) {
1745 ccb->startdone = ARCMSR_CCB_ABORTED;
1746 ccb->pcmd->result = DID_ABORT << 16;
1747 arcmsr_ccb_complete(ccb);
1844 struct CommandControlBlock *ccb, struct scsi_cmnd *pcmd)
1846 struct ARCMSR_CDB *arcmsr_cdb = (struct ARCMSR_CDB *)&ccb->arcmsr_cdb;
1854 ccb->pcmd = pcmd;
1894 ccb->arc_cdb_size = arccdbsize;
1898 static void arcmsr_post_ccb(struct AdapterControlBlock *acb, struct CommandControlBlock *ccb)
1900 uint32_t cdb_phyaddr = ccb->cdb_phyaddr;
1901 struct ARCMSR_CDB *arcmsr_cdb = (struct ARCMSR_CDB *)&ccb->arcmsr_cdb;
1903 ccb->startdone = ARCMSR_CCB_START;
1938 arc_cdb_size = (ccb->arc_cdb_size > 0x300) ? 0x300 : ccb->arc_cdb_size;
1940 writel(upper_32_bits(ccb->cdb_phyaddr), &phbcmu->inbound_queueport_high);
1954 pinbound_srb->addressHigh = upper_32_bits(ccb->cdb_phyaddr);
1956 pinbound_srb->length = ccb->arc_cdb_size >> 2;
1971 arc_cdb_size = (ccb->arc_cdb_size > 0x300) ? 0x300 : ccb->arc_cdb_size;
1972 ccb_post_stamp = (ccb->smid | ((arc_cdb_size - 1) >> 6));
1981 if (ccb->arc_cdb_size <= 0x300)
1982 arc_cdb_size = (ccb->arc_cdb_size - 1) >> 6 | 1;
1984 arc_cdb_size = ((ccb->arc_cdb_size + 0xff) >> 8) + 2;
1989 ccb_post_stamp = (ccb->smid | arc_cdb_size);
2586 struct CommandControlBlock *ccb;
2602 ccb = container_of(arcmsr_cdb, struct CommandControlBlock,
2607 arcmsr_drain_donequeue(acb, ccb, error);
2624 struct CommandControlBlock *ccb;
2646 ccb = container_of(arcmsr_cdb,
2650 arcmsr_drain_donequeue(acb, ccb, error);
2667 struct CommandControlBlock *ccb;
2675 ccb = acb->pccb_pool[cmdSMID];
2678 arcmsr_drain_donequeue(acb, ccb, error);
2694 struct CommandControlBlock *ccb;
2704 ccb = acb->pccb_pool[cmdSMID];
2707 arcmsr_drain_donequeue(acb, ccb, error);
3249 struct CommandControlBlock *ccb = NULL;
3255 ccb = list_entry(head->next, struct CommandControlBlock, list);
3256 list_del_init(&ccb->list);
3262 return ccb;
3319 struct CommandControlBlock *ccb;
3334 ccb = arcmsr_get_freeccb(acb);
3335 if (!ccb)
3337 if (arcmsr_build_ccb( acb, ccb, cmd ) == FAILED) {
3342 arcmsr_post_ccb(acb, ccb);
3577 struct CommandControlBlock *ccb;
3606 ccb = container_of(arcmsr_cdb, struct CommandControlBlock, arcmsr_cdb);
3607 poll_ccb_done |= (ccb == poll_ccb) ? 1 : 0;
3608 if ((ccb->acb != acb) || (ccb->startdone != ARCMSR_CCB_START)) {
3609 if ((ccb->startdone == ARCMSR_CCB_ABORTED) || (ccb == poll_ccb)) {
3610 printk(KERN_NOTICE "arcmsr%d: scsi id = %d lun = %d ccb = '0x%p'"
3613 , ccb->pcmd->device->id
3614 , (u32)ccb->pcmd->device->lun
3615 , ccb);
3616 ccb->pcmd->result = DID_ABORT << 16;
3617 arcmsr_ccb_complete(ccb);
3620 printk(KERN_NOTICE "arcmsr%d: polling get an illegal ccb"
3621 " command done ccb = '0x%p'"
3624 , ccb
3629 arcmsr_report_ccb_state(acb, ccb, error);
3639 struct CommandControlBlock *ccb;
3675 ccb = container_of(arcmsr_cdb, struct CommandControlBlock, arcmsr_cdb);
3676 poll_ccb_done |= (ccb == poll_ccb) ? 1 : 0;
3677 if ((ccb->acb != acb) || (ccb->startdone != ARCMSR_CCB_START)) {
3678 if ((ccb->startdone == ARCMSR_CCB_ABORTED) || (ccb == poll_ccb)) {
3679 printk(KERN_NOTICE "arcmsr%d: scsi id = %d lun = %d ccb = '0x%p'"
3682 ,ccb->pcmd->device->id
3683 ,(u32)ccb->pcmd->device->lun
3684 ,ccb);
3685 ccb->pcmd->result = DID_ABORT << 16;
3686 arcmsr_ccb_complete(ccb);
3689 printk(KERN_NOTICE "arcmsr%d: polling get an illegal ccb"
3690 " command done ccb = '0x%p'"
3693 , ccb
3698 arcmsr_report_ccb_state(acb, ccb, error);
3741 printk(KERN_NOTICE "arcmsr%d: scsi id = %d lun = %d ccb = '0x%p'"
3751 printk(KERN_NOTICE "arcmsr%d: polling get an illegal ccb"
3752 " command done ccb = '0x%p'"
3816 "lun = %d ccb = '0x%p' poll command "
3827 "ccb command done ccb = '0x%p' "
3884 "lun = %d ccb = '0x%p' poll command "
3895 "ccb command done ccb = '0x%p' "
4073 printk(KERN_NOTICE "arcmsr%d: ""set ccb high \
4103 /* ccb maxQ size must be --> [(256 + 8)*4]*/
4636 struct CommandControlBlock *ccb;
4650 ccb = acb->pccb_pool[i];
4651 if (ccb->startdone == ARCMSR_CCB_START) {
4652 scsi_dma_unmap(ccb->pcmd);
4653 ccb->startdone = ARCMSR_CCB_DONE;
4654 ccb->ccb_flags = 0;
4656 list_add_tail(&ccb->list, &acb->ccb_free_list);
4723 struct CommandControlBlock *ccb)
4726 rtn = arcmsr_polling_ccbdone(acb, ccb);
4758 struct CommandControlBlock *ccb = acb->pccb_pool[i];
4759 if (ccb->startdone == ARCMSR_CCB_START && ccb->pcmd == cmd) {
4760 ccb->startdone = ARCMSR_CCB_ABORTED;
4761 rtn = arcmsr_abort_one_cmd(acb, ccb);