Lines Matching refs:ccb

961 static void arcmsr_pci_unmap_dma(struct CommandControlBlock *ccb)  in arcmsr_pci_unmap_dma()  argument
963 struct scsi_cmnd *pcmd = ccb->pcmd; in arcmsr_pci_unmap_dma()
968 static void arcmsr_ccb_complete(struct CommandControlBlock *ccb) in arcmsr_ccb_complete() argument
970 struct AdapterControlBlock *acb = ccb->acb; in arcmsr_ccb_complete()
971 struct scsi_cmnd *pcmd = ccb->pcmd; in arcmsr_ccb_complete()
974 arcmsr_pci_unmap_dma(ccb); in arcmsr_ccb_complete()
975 ccb->startdone = ARCMSR_CCB_DONE; in arcmsr_ccb_complete()
977 list_add_tail(&ccb->list, &acb->ccb_free_list); in arcmsr_ccb_complete()
982 static void arcmsr_report_sense_info(struct CommandControlBlock *ccb) in arcmsr_report_sense_info() argument
985 struct scsi_cmnd *pcmd = ccb->pcmd; in arcmsr_report_sense_info()
993 memcpy(sensebuffer, ccb->arcmsr_cdb.SenseData, sense_data_length); in arcmsr_report_sense_info()
1034 struct CommandControlBlock *ccb, bool error) in arcmsr_report_ccb_state() argument
1037 id = ccb->pcmd->device->id; in arcmsr_report_ccb_state()
1038 lun = ccb->pcmd->device->lun; in arcmsr_report_ccb_state()
1042 ccb->pcmd->result = DID_OK << 16; in arcmsr_report_ccb_state()
1043 arcmsr_ccb_complete(ccb); in arcmsr_report_ccb_state()
1045 switch (ccb->arcmsr_cdb.DeviceStatus) { in arcmsr_report_ccb_state()
1048 ccb->pcmd->result = DID_NO_CONNECT << 16; in arcmsr_report_ccb_state()
1049 arcmsr_ccb_complete(ccb); in arcmsr_report_ccb_state()
1057 ccb->pcmd->result = DID_BAD_TARGET << 16; in arcmsr_report_ccb_state()
1058 arcmsr_ccb_complete(ccb); in arcmsr_report_ccb_state()
1064 arcmsr_report_sense_info(ccb); in arcmsr_report_ccb_state()
1065 arcmsr_ccb_complete(ccb); in arcmsr_report_ccb_state()
1076 , ccb->arcmsr_cdb.DeviceStatus); in arcmsr_report_ccb_state()
1078 ccb->pcmd->result = DID_NO_CONNECT << 16; in arcmsr_report_ccb_state()
1079 arcmsr_ccb_complete(ccb); in arcmsr_report_ccb_state()
1249 struct CommandControlBlock *ccb = acb->pccb_pool[i]; in arcmsr_remove() local
1250 if (ccb->startdone == ARCMSR_CCB_START) { in arcmsr_remove()
1251 ccb->startdone = ARCMSR_CCB_ABORTED; in arcmsr_remove()
1252 ccb->pcmd->result = DID_ABORT << 16; in arcmsr_remove()
1253 arcmsr_ccb_complete(ccb); in arcmsr_remove()
1337 struct CommandControlBlock *ccb, struct scsi_cmnd *pcmd) in arcmsr_build_ccb() argument
1339 struct ARCMSR_CDB *arcmsr_cdb = (struct ARCMSR_CDB *)&ccb->arcmsr_cdb; in arcmsr_build_ccb()
1347 ccb->pcmd = pcmd; in arcmsr_build_ccb()
1387 ccb->arc_cdb_size = arccdbsize; in arcmsr_build_ccb()
1391 static void arcmsr_post_ccb(struct AdapterControlBlock *acb, struct CommandControlBlock *ccb) in arcmsr_post_ccb() argument
1393 uint32_t cdb_phyaddr = ccb->cdb_phyaddr; in arcmsr_post_ccb()
1394 struct ARCMSR_CDB *arcmsr_cdb = (struct ARCMSR_CDB *)&ccb->arcmsr_cdb; in arcmsr_post_ccb()
1396 ccb->startdone = ARCMSR_CCB_START; in arcmsr_post_ccb()
1431 arc_cdb_size = (ccb->arc_cdb_size > 0x300) ? 0x300 : ccb->arc_cdb_size; in arcmsr_post_ccb()
1453 pinbound_srb->length = ccb->arc_cdb_size >> 2; in arcmsr_post_ccb()
1944 struct CommandControlBlock *ccb; in arcmsr_hbaC_postqueue_isr() local
1957 ccb = container_of(arcmsr_cdb, struct CommandControlBlock, in arcmsr_hbaC_postqueue_isr()
1962 arcmsr_drain_donequeue(acb, ccb, error); in arcmsr_hbaC_postqueue_isr()
1979 struct CommandControlBlock *ccb; in arcmsr_hbaD_postqueue_isr() local
1999 ccb = container_of(arcmsr_cdb, in arcmsr_hbaD_postqueue_isr()
2003 arcmsr_drain_donequeue(acb, ccb, error); in arcmsr_hbaD_postqueue_isr()
2472 struct CommandControlBlock *ccb = NULL; in arcmsr_get_freeccb() local
2476 ccb = list_entry(head->next, struct CommandControlBlock, list); in arcmsr_get_freeccb()
2477 list_del_init(&ccb->list); in arcmsr_get_freeccb()
2483 return ccb; in arcmsr_get_freeccb()
2541 struct CommandControlBlock *ccb; in arcmsr_queue_command_lck() local
2560 ccb = arcmsr_get_freeccb(acb); in arcmsr_queue_command_lck()
2561 if (!ccb) in arcmsr_queue_command_lck()
2563 if (arcmsr_build_ccb( acb, ccb, cmd ) == FAILED) { in arcmsr_queue_command_lck()
2568 arcmsr_post_ccb(acb, ccb); in arcmsr_queue_command_lck()
2936 struct CommandControlBlock *ccb; in arcmsr_hbaA_polling_ccbdone() local
2960 ccb = container_of(arcmsr_cdb, struct CommandControlBlock, arcmsr_cdb); in arcmsr_hbaA_polling_ccbdone()
2961 poll_ccb_done |= (ccb == poll_ccb) ? 1 : 0; in arcmsr_hbaA_polling_ccbdone()
2962 if ((ccb->acb != acb) || (ccb->startdone != ARCMSR_CCB_START)) { in arcmsr_hbaA_polling_ccbdone()
2963 if ((ccb->startdone == ARCMSR_CCB_ABORTED) || (ccb == poll_ccb)) { in arcmsr_hbaA_polling_ccbdone()
2967 , ccb->pcmd->device->id in arcmsr_hbaA_polling_ccbdone()
2968 , (u32)ccb->pcmd->device->lun in arcmsr_hbaA_polling_ccbdone()
2969 , ccb); in arcmsr_hbaA_polling_ccbdone()
2970 ccb->pcmd->result = DID_ABORT << 16; in arcmsr_hbaA_polling_ccbdone()
2971 arcmsr_ccb_complete(ccb); in arcmsr_hbaA_polling_ccbdone()
2978 , ccb in arcmsr_hbaA_polling_ccbdone()
2983 arcmsr_report_ccb_state(acb, ccb, error); in arcmsr_hbaA_polling_ccbdone()
2993 struct CommandControlBlock *ccb; in arcmsr_hbaB_polling_ccbdone() local
3025 ccb = container_of(arcmsr_cdb, struct CommandControlBlock, arcmsr_cdb); in arcmsr_hbaB_polling_ccbdone()
3026 poll_ccb_done |= (ccb == poll_ccb) ? 1 : 0; in arcmsr_hbaB_polling_ccbdone()
3027 if ((ccb->acb != acb) || (ccb->startdone != ARCMSR_CCB_START)) { in arcmsr_hbaB_polling_ccbdone()
3028 if ((ccb->startdone == ARCMSR_CCB_ABORTED) || (ccb == poll_ccb)) { in arcmsr_hbaB_polling_ccbdone()
3032 ,ccb->pcmd->device->id in arcmsr_hbaB_polling_ccbdone()
3033 ,(u32)ccb->pcmd->device->lun in arcmsr_hbaB_polling_ccbdone()
3034 ,ccb); in arcmsr_hbaB_polling_ccbdone()
3035 ccb->pcmd->result = DID_ABORT << 16; in arcmsr_hbaB_polling_ccbdone()
3036 arcmsr_ccb_complete(ccb); in arcmsr_hbaB_polling_ccbdone()
3043 , ccb in arcmsr_hbaB_polling_ccbdone()
3048 arcmsr_report_ccb_state(acb, ccb, error); in arcmsr_hbaB_polling_ccbdone()
3709 struct CommandControlBlock *ccb; in arcmsr_iop_reset() local
3723 ccb = acb->pccb_pool[i]; in arcmsr_iop_reset()
3724 if (ccb->startdone == ARCMSR_CCB_START) { in arcmsr_iop_reset()
3725 scsi_dma_unmap(ccb->pcmd); in arcmsr_iop_reset()
3726 ccb->startdone = ARCMSR_CCB_DONE; in arcmsr_iop_reset()
3727 ccb->ccb_flags = 0; in arcmsr_iop_reset()
3729 list_add_tail(&ccb->list, &acb->ccb_free_list); in arcmsr_iop_reset()
3940 struct CommandControlBlock *ccb) in arcmsr_abort_one_cmd() argument
3943 rtn = arcmsr_polling_ccbdone(acb, ccb); in arcmsr_abort_one_cmd()
3973 struct CommandControlBlock *ccb = acb->pccb_pool[i]; in arcmsr_abort() local
3974 if (ccb->startdone == ARCMSR_CCB_START && ccb->pcmd == cmd) { in arcmsr_abort()
3975 ccb->startdone = ARCMSR_CCB_ABORTED; in arcmsr_abort()
3976 rtn = arcmsr_abort_one_cmd(acb, ccb); in arcmsr_abort()