Lines Matching refs:ccb
1186 static void arcmsr_pci_unmap_dma(struct CommandControlBlock *ccb) in arcmsr_pci_unmap_dma() argument
1188 struct scsi_cmnd *pcmd = ccb->pcmd; in arcmsr_pci_unmap_dma()
1193 static void arcmsr_ccb_complete(struct CommandControlBlock *ccb) in arcmsr_ccb_complete() argument
1195 struct AdapterControlBlock *acb = ccb->acb; in arcmsr_ccb_complete()
1196 struct scsi_cmnd *pcmd = ccb->pcmd; in arcmsr_ccb_complete()
1199 arcmsr_pci_unmap_dma(ccb); in arcmsr_ccb_complete()
1200 ccb->startdone = ARCMSR_CCB_DONE; in arcmsr_ccb_complete()
1202 list_add_tail(&ccb->list, &acb->ccb_free_list); in arcmsr_ccb_complete()
1207 static void arcmsr_report_sense_info(struct CommandControlBlock *ccb) in arcmsr_report_sense_info() argument
1210 struct scsi_cmnd *pcmd = ccb->pcmd; in arcmsr_report_sense_info()
1218 memcpy(sensebuffer, ccb->arcmsr_cdb.SenseData, sense_data_length); in arcmsr_report_sense_info()
1267 struct CommandControlBlock *ccb, bool error) in arcmsr_report_ccb_state() argument
1270 id = ccb->pcmd->device->id; in arcmsr_report_ccb_state()
1271 lun = ccb->pcmd->device->lun; in arcmsr_report_ccb_state()
1275 ccb->pcmd->result = DID_OK << 16; in arcmsr_report_ccb_state()
1276 arcmsr_ccb_complete(ccb); in arcmsr_report_ccb_state()
1278 switch (ccb->arcmsr_cdb.DeviceStatus) { in arcmsr_report_ccb_state()
1281 ccb->pcmd->result = DID_NO_CONNECT << 16; in arcmsr_report_ccb_state()
1282 arcmsr_ccb_complete(ccb); in arcmsr_report_ccb_state()
1290 ccb->pcmd->result = DID_BAD_TARGET << 16; in arcmsr_report_ccb_state()
1291 arcmsr_ccb_complete(ccb); in arcmsr_report_ccb_state()
1297 arcmsr_report_sense_info(ccb); in arcmsr_report_ccb_state()
1298 arcmsr_ccb_complete(ccb); in arcmsr_report_ccb_state()
1309 , ccb->arcmsr_cdb.DeviceStatus); in arcmsr_report_ccb_state()
1311 ccb->pcmd->result = DID_NO_CONNECT << 16; in arcmsr_report_ccb_state()
1312 arcmsr_ccb_complete(ccb); in arcmsr_report_ccb_state()
1461 struct CommandControlBlock *ccb; in arcmsr_remove_scsi_devices() local
1465 ccb = acb->pccb_pool[i]; in arcmsr_remove_scsi_devices()
1466 if (ccb->startdone == ARCMSR_CCB_START) { in arcmsr_remove_scsi_devices()
1467 ccb->pcmd->result = DID_NO_CONNECT << 16; in arcmsr_remove_scsi_devices()
1468 arcmsr_pci_unmap_dma(ccb); in arcmsr_remove_scsi_devices()
1469 ccb->pcmd->scsi_done(ccb->pcmd); in arcmsr_remove_scsi_devices()
1555 struct CommandControlBlock *ccb = acb->pccb_pool[i]; in arcmsr_remove() local
1556 if (ccb->startdone == ARCMSR_CCB_START) { in arcmsr_remove()
1557 ccb->startdone = ARCMSR_CCB_ABORTED; in arcmsr_remove()
1558 ccb->pcmd->result = DID_ABORT << 16; in arcmsr_remove()
1559 arcmsr_ccb_complete(ccb); in arcmsr_remove()
1654 struct CommandControlBlock *ccb, struct scsi_cmnd *pcmd) in arcmsr_build_ccb() argument
1656 struct ARCMSR_CDB *arcmsr_cdb = (struct ARCMSR_CDB *)&ccb->arcmsr_cdb; in arcmsr_build_ccb()
1664 ccb->pcmd = pcmd; in arcmsr_build_ccb()
1704 ccb->arc_cdb_size = arccdbsize; in arcmsr_build_ccb()
1708 static void arcmsr_post_ccb(struct AdapterControlBlock *acb, struct CommandControlBlock *ccb) in arcmsr_post_ccb() argument
1710 uint32_t cdb_phyaddr = ccb->cdb_phyaddr; in arcmsr_post_ccb()
1711 struct ARCMSR_CDB *arcmsr_cdb = (struct ARCMSR_CDB *)&ccb->arcmsr_cdb; in arcmsr_post_ccb()
1713 ccb->startdone = ARCMSR_CCB_START; in arcmsr_post_ccb()
1748 arc_cdb_size = (ccb->arc_cdb_size > 0x300) ? 0x300 : ccb->arc_cdb_size; in arcmsr_post_ccb()
1770 pinbound_srb->length = ccb->arc_cdb_size >> 2; in arcmsr_post_ccb()
1785 arc_cdb_size = (ccb->arc_cdb_size > 0x300) ? 0x300 : ccb->arc_cdb_size; in arcmsr_post_ccb()
1786 ccb_post_stamp = (ccb->smid | ((arc_cdb_size - 1) >> 6)); in arcmsr_post_ccb()
2337 struct CommandControlBlock *ccb; in arcmsr_hbaC_postqueue_isr() local
2350 ccb = container_of(arcmsr_cdb, struct CommandControlBlock, in arcmsr_hbaC_postqueue_isr()
2355 arcmsr_drain_donequeue(acb, ccb, error); in arcmsr_hbaC_postqueue_isr()
2372 struct CommandControlBlock *ccb; in arcmsr_hbaD_postqueue_isr() local
2392 ccb = container_of(arcmsr_cdb, in arcmsr_hbaD_postqueue_isr()
2396 arcmsr_drain_donequeue(acb, ccb, error); in arcmsr_hbaD_postqueue_isr()
2413 struct CommandControlBlock *ccb; in arcmsr_hbaE_postqueue_isr() local
2421 ccb = acb->pccb_pool[cmdSMID]; in arcmsr_hbaE_postqueue_isr()
2424 arcmsr_drain_donequeue(acb, ccb, error); in arcmsr_hbaE_postqueue_isr()
2940 struct CommandControlBlock *ccb = NULL; in arcmsr_get_freeccb() local
2944 ccb = list_entry(head->next, struct CommandControlBlock, list); in arcmsr_get_freeccb()
2945 list_del_init(&ccb->list); in arcmsr_get_freeccb()
2951 return ccb; in arcmsr_get_freeccb()
3009 struct CommandControlBlock *ccb; in arcmsr_queue_command_lck() local
3025 ccb = arcmsr_get_freeccb(acb); in arcmsr_queue_command_lck()
3026 if (!ccb) in arcmsr_queue_command_lck()
3028 if (arcmsr_build_ccb( acb, ccb, cmd ) == FAILED) { in arcmsr_queue_command_lck()
3033 arcmsr_post_ccb(acb, ccb); in arcmsr_queue_command_lck()
3225 struct CommandControlBlock *ccb; in arcmsr_hbaA_polling_ccbdone() local
3249 ccb = container_of(arcmsr_cdb, struct CommandControlBlock, arcmsr_cdb); in arcmsr_hbaA_polling_ccbdone()
3250 poll_ccb_done |= (ccb == poll_ccb) ? 1 : 0; in arcmsr_hbaA_polling_ccbdone()
3251 if ((ccb->acb != acb) || (ccb->startdone != ARCMSR_CCB_START)) { in arcmsr_hbaA_polling_ccbdone()
3252 if ((ccb->startdone == ARCMSR_CCB_ABORTED) || (ccb == poll_ccb)) { in arcmsr_hbaA_polling_ccbdone()
3256 , ccb->pcmd->device->id in arcmsr_hbaA_polling_ccbdone()
3257 , (u32)ccb->pcmd->device->lun in arcmsr_hbaA_polling_ccbdone()
3258 , ccb); in arcmsr_hbaA_polling_ccbdone()
3259 ccb->pcmd->result = DID_ABORT << 16; in arcmsr_hbaA_polling_ccbdone()
3260 arcmsr_ccb_complete(ccb); in arcmsr_hbaA_polling_ccbdone()
3267 , ccb in arcmsr_hbaA_polling_ccbdone()
3272 arcmsr_report_ccb_state(acb, ccb, error); in arcmsr_hbaA_polling_ccbdone()
3282 struct CommandControlBlock *ccb; in arcmsr_hbaB_polling_ccbdone() local
3314 ccb = container_of(arcmsr_cdb, struct CommandControlBlock, arcmsr_cdb); in arcmsr_hbaB_polling_ccbdone()
3315 poll_ccb_done |= (ccb == poll_ccb) ? 1 : 0; in arcmsr_hbaB_polling_ccbdone()
3316 if ((ccb->acb != acb) || (ccb->startdone != ARCMSR_CCB_START)) { in arcmsr_hbaB_polling_ccbdone()
3317 if ((ccb->startdone == ARCMSR_CCB_ABORTED) || (ccb == poll_ccb)) { in arcmsr_hbaB_polling_ccbdone()
3321 ,ccb->pcmd->device->id in arcmsr_hbaB_polling_ccbdone()
3322 ,(u32)ccb->pcmd->device->lun in arcmsr_hbaB_polling_ccbdone()
3323 ,ccb); in arcmsr_hbaB_polling_ccbdone()
3324 ccb->pcmd->result = DID_ABORT << 16; in arcmsr_hbaB_polling_ccbdone()
3325 arcmsr_ccb_complete(ccb); in arcmsr_hbaB_polling_ccbdone()
3332 , ccb in arcmsr_hbaB_polling_ccbdone()
3337 arcmsr_report_ccb_state(acb, ccb, error); in arcmsr_hbaB_polling_ccbdone()
4235 struct CommandControlBlock *ccb; in arcmsr_iop_reset() local
4249 ccb = acb->pccb_pool[i]; in arcmsr_iop_reset()
4250 if (ccb->startdone == ARCMSR_CCB_START) { in arcmsr_iop_reset()
4251 scsi_dma_unmap(ccb->pcmd); in arcmsr_iop_reset()
4252 ccb->startdone = ARCMSR_CCB_DONE; in arcmsr_iop_reset()
4253 ccb->ccb_flags = 0; in arcmsr_iop_reset()
4255 list_add_tail(&ccb->list, &acb->ccb_free_list); in arcmsr_iop_reset()
4326 struct CommandControlBlock *ccb) in arcmsr_abort_one_cmd() argument
4329 rtn = arcmsr_polling_ccbdone(acb, ccb); in arcmsr_abort_one_cmd()
4361 struct CommandControlBlock *ccb = acb->pccb_pool[i]; in arcmsr_abort() local
4362 if (ccb->startdone == ARCMSR_CCB_START && ccb->pcmd == cmd) { in arcmsr_abort()
4363 ccb->startdone = ARCMSR_CCB_ABORTED; in arcmsr_abort()
4364 rtn = arcmsr_abort_one_cmd(acb, ccb); in arcmsr_abort()