Lines Matching refs:scb
966 scb_t *scb; in megaraid_alloc_cmd_packets() local
1053 scb = adapter->kscb_list + i; in megaraid_alloc_cmd_packets()
1080 scb->ccb = (caddr_t)ccb; in megaraid_alloc_cmd_packets()
1081 scb->gp = 0; in megaraid_alloc_cmd_packets()
1083 scb->sno = i; // command index in megaraid_alloc_cmd_packets()
1085 scb->scp = NULL; in megaraid_alloc_cmd_packets()
1086 scb->state = SCB_FREE; in megaraid_alloc_cmd_packets()
1087 scb->dma_direction = PCI_DMA_NONE; in megaraid_alloc_cmd_packets()
1088 scb->dma_type = MRAID_DMA_NONE; in megaraid_alloc_cmd_packets()
1089 scb->dev_channel = -1; in megaraid_alloc_cmd_packets()
1090 scb->dev_target = -1; in megaraid_alloc_cmd_packets()
1093 list_add_tail(&scb->list, &adapter->kscb_pool); in megaraid_alloc_cmd_packets()
1292 scb_t *scb = NULL; in megaraid_alloc_scb() local
1303 scb = list_entry(head->next, scb_t, list); in megaraid_alloc_scb()
1304 list_del_init(&scb->list); in megaraid_alloc_scb()
1308 scb->state = SCB_ACTIVE; in megaraid_alloc_scb()
1309 scb->scp = scp; in megaraid_alloc_scb()
1310 scb->dma_type = MRAID_DMA_NONE; in megaraid_alloc_scb()
1312 return scb; in megaraid_alloc_scb()
1327 megaraid_dealloc_scb(adapter_t *adapter, scb_t *scb) in megaraid_dealloc_scb() argument
1332 scb->state = SCB_FREE; in megaraid_dealloc_scb()
1333 scb->scp = NULL; in megaraid_dealloc_scb()
1336 list_add(&scb->list, &adapter->kscb_pool); in megaraid_dealloc_scb()
1352 megaraid_mbox_mksgl(adapter_t *adapter, scb_t *scb) in megaraid_mbox_mksgl() argument
1361 scp = scb->scp; in megaraid_mbox_mksgl()
1362 ccb = (mbox_ccb_t *)scb->ccb; in megaraid_mbox_mksgl()
1371 scb->dma_type = MRAID_DMA_WSG; in megaraid_mbox_mksgl()
1391 mbox_post_cmd(adapter_t *adapter, scb_t *scb) in mbox_post_cmd() argument
1401 ccb = (mbox_ccb_t *)scb->ccb; in mbox_post_cmd()
1429 mbox->cmdid = scb->sno; in mbox_post_cmd()
1433 if (scb->dma_direction == PCI_DMA_TODEVICE) in mbox_post_cmd()
1435 scsi_sglist(scb->scp), in mbox_post_cmd()
1436 scsi_sg_count(scb->scp), in mbox_post_cmd()
1463 scb_t *scb; in megaraid_queue_command_lck() local
1479 scb = megaraid_mbox_build_cmd(adapter, scp, &if_busy); in megaraid_queue_command_lck()
1480 if (!scb) { // command already completed in megaraid_queue_command_lck()
1485 megaraid_mbox_runpendq(adapter, scb); in megaraid_queue_command_lck()
1513 scb_t *scb; in DEF_SCSI_QCMD() local
1540 if (!(scb = megaraid_alloc_scb(adapter, scp))) { in DEF_SCSI_QCMD()
1546 scb->dma_direction = scp->sc_data_direction; in DEF_SCSI_QCMD()
1547 scb->dev_channel = 0xFF; in DEF_SCSI_QCMD()
1548 scb->dev_target = target; in DEF_SCSI_QCMD()
1549 ccb = (mbox_ccb_t *)scb->ccb; in DEF_SCSI_QCMD()
1559 return scb; in DEF_SCSI_QCMD()
1625 if (!(scb = megaraid_alloc_scb(adapter, scp))) { in DEF_SCSI_QCMD()
1631 ccb = (mbox_ccb_t *)scb->ccb; in DEF_SCSI_QCMD()
1632 scb->dev_channel = 0xFF; in DEF_SCSI_QCMD()
1633 scb->dev_target = target; in DEF_SCSI_QCMD()
1647 scb->dma_direction = scp->sc_data_direction; in DEF_SCSI_QCMD()
1652 scb); in DEF_SCSI_QCMD()
1658 return scb; in DEF_SCSI_QCMD()
1670 if (!(scb = megaraid_alloc_scb(adapter, scp))) { in DEF_SCSI_QCMD()
1675 ccb = (mbox_ccb_t *)scb->ccb; in DEF_SCSI_QCMD()
1676 scb->dev_channel = 0xFF; in DEF_SCSI_QCMD()
1677 scb->dev_target = target; in DEF_SCSI_QCMD()
1736 megaraid_dealloc_scb(adapter, scb); in DEF_SCSI_QCMD()
1742 scb->dma_direction = scp->sc_data_direction; in DEF_SCSI_QCMD()
1747 scb); in DEF_SCSI_QCMD()
1751 return scb; in DEF_SCSI_QCMD()
1766 if (!(scb = megaraid_alloc_scb(adapter, scp))) { in DEF_SCSI_QCMD()
1772 ccb = (mbox_ccb_t *)scb->ccb; in DEF_SCSI_QCMD()
1773 scb->dev_channel = 0xFF; in DEF_SCSI_QCMD()
1774 scb->dev_target = target; in DEF_SCSI_QCMD()
1780 scb->dma_direction = scp->sc_data_direction; in DEF_SCSI_QCMD()
1782 return scb; in DEF_SCSI_QCMD()
1834 if (!(scb = megaraid_alloc_scb(adapter, scp))) { in DEF_SCSI_QCMD()
1840 ccb = (mbox_ccb_t *)scb->ccb; in DEF_SCSI_QCMD()
1841 scb->dev_channel = channel; in DEF_SCSI_QCMD()
1842 scb->dev_target = target; in DEF_SCSI_QCMD()
1843 scb->dma_direction = scp->sc_data_direction; in DEF_SCSI_QCMD()
1851 megaraid_mbox_prepare_epthru(adapter, scb, scp); in DEF_SCSI_QCMD()
1860 megaraid_mbox_prepare_pthru(adapter, scb, scp); in DEF_SCSI_QCMD()
1866 return scb; in DEF_SCSI_QCMD()
1889 scb_t *scb; in megaraid_mbox_runpendq() local
1909 scb = list_entry(adapter->pend_list.next, scb_t, list); in megaraid_mbox_runpendq()
1915 list_del_init(&scb->list); in megaraid_mbox_runpendq()
1923 scb->state = SCB_ISSUED; in megaraid_mbox_runpendq()
1925 if (mbox_post_cmd(adapter, scb) != 0) { in megaraid_mbox_runpendq()
1929 scb->state = SCB_PENDQ; in megaraid_mbox_runpendq()
1931 list_add(&scb->list, &adapter->pend_list); in megaraid_mbox_runpendq()
1958 megaraid_mbox_prepare_pthru(adapter_t *adapter, scb_t *scb, in megaraid_mbox_prepare_pthru() argument
1966 ccb = (mbox_ccb_t *)scb->ccb; in megaraid_mbox_prepare_pthru()
1968 channel = scb->dev_channel; in megaraid_mbox_prepare_pthru()
1969 target = scb->dev_target; in megaraid_mbox_prepare_pthru()
1986 pthru->numsge = megaraid_mbox_mksgl(adapter, scb); in megaraid_mbox_prepare_pthru()
2007 megaraid_mbox_prepare_epthru(adapter_t *adapter, scb_t *scb, in megaraid_mbox_prepare_epthru() argument
2015 ccb = (mbox_ccb_t *)scb->ccb; in megaraid_mbox_prepare_epthru()
2017 channel = scb->dev_channel; in megaraid_mbox_prepare_epthru()
2018 target = scb->dev_target; in megaraid_mbox_prepare_epthru()
2035 epthru->numsge = megaraid_mbox_mksgl(adapter, scb); in megaraid_mbox_prepare_epthru()
2060 scb_t *scb; in megaraid_ack_sequence() local
2124 scb = adapter->uscb_list + (completed[i] - in megaraid_ack_sequence()
2129 scb = adapter->kscb_list + completed[i]; in megaraid_ack_sequence()
2132 scb->status = mbox->status; in megaraid_ack_sequence()
2133 list_add_tail(&scb->list, &clist); in megaraid_ack_sequence()
2193 megaraid_mbox_sync_scb(adapter_t *adapter, scb_t *scb) in megaraid_mbox_sync_scb() argument
2197 ccb = (mbox_ccb_t *)scb->ccb; in megaraid_mbox_sync_scb()
2199 if (scb->dma_direction == PCI_DMA_FROMDEVICE) in megaraid_mbox_sync_scb()
2201 scsi_sglist(scb->scp), in megaraid_mbox_sync_scb()
2202 scsi_sg_count(scb->scp), in megaraid_mbox_sync_scb()
2205 scsi_dma_unmap(scb->scp); in megaraid_mbox_sync_scb()
2225 scb_t *scb; in megaraid_mbox_dpc() local
2255 list_for_each_entry_safe(scb, tmp, &clist, list) { in megaraid_mbox_dpc()
2257 status = scb->status; in megaraid_mbox_dpc()
2258 scp = scb->scp; in megaraid_mbox_dpc()
2259 ccb = (mbox_ccb_t *)scb->ccb; in megaraid_mbox_dpc()
2265 if (scb->state != SCB_ISSUED) { in megaraid_mbox_dpc()
2268 scb->sno, scb->state, scp)); in megaraid_mbox_dpc()
2274 if (scb->sno >= MBOX_MAX_SCSI_CMDS) { in megaraid_mbox_dpc()
2275 scb->state = SCB_FREE; in megaraid_mbox_dpc()
2276 scb->status = status; in megaraid_mbox_dpc()
2279 list_del_init(&scb->list); in megaraid_mbox_dpc()
2281 kioc = (uioc_t *)scb->gp; in megaraid_mbox_dpc()
2284 megaraid_mbox_mm_done(adapter, scb); in megaraid_mbox_dpc()
2290 if (scb->state & SCB_ABORT) { in megaraid_mbox_dpc()
2293 scb->sno)); in megaraid_mbox_dpc()
2306 && IS_RAID_CH(raid_dev, scb->dev_channel)) { in megaraid_mbox_dpc()
2319 pdev_index = (scb->dev_channel * 16) + in megaraid_mbox_dpc()
2320 scb->dev_target; in megaraid_mbox_dpc()
2405 megaraid_mbox_display_scb(adapter, scb); in megaraid_mbox_dpc()
2410 megaraid_mbox_sync_scb(adapter, scb); in megaraid_mbox_dpc()
2413 list_del_init(&scb->list); in megaraid_mbox_dpc()
2416 megaraid_dealloc_scb(adapter, scb); in megaraid_mbox_dpc()
2438 scb_t *scb; in megaraid_abort_handler() local
2464 scb = NULL; in megaraid_abort_handler()
2466 list_for_each_entry_safe(scb, tmp, &adapter->completed_list, list) { in megaraid_abort_handler()
2468 if (scb->scp == scp) { // Found command in megaraid_abort_handler()
2470 list_del_init(&scb->list); // from completed list in megaraid_abort_handler()
2474 scb->sno, scb->dev_channel, scb->dev_target)); in megaraid_abort_handler()
2479 megaraid_dealloc_scb(adapter, scb); in megaraid_abort_handler()
2494 list_for_each_entry_safe(scb, tmp, &adapter->pend_list, list) { in megaraid_abort_handler()
2496 if (scb->scp == scp) { // Found command in megaraid_abort_handler()
2498 list_del_init(&scb->list); // from pending list in megaraid_abort_handler()
2500 ASSERT(!(scb->state & SCB_ISSUED)); in megaraid_abort_handler()
2504 scb->dev_channel, scb->dev_target)); in megaraid_abort_handler()
2509 megaraid_dealloc_scb(adapter, scb); in megaraid_abort_handler()
2527 scb = adapter->kscb_list + i; in megaraid_abort_handler()
2529 if (scb->scp == scp) { in megaraid_abort_handler()
2533 if (!(scb->state & SCB_ISSUED)) { in megaraid_abort_handler()
2536 scb->sno, scb->dev_channel, scb->dev_target)); in megaraid_abort_handler()
2542 scb->sno, scb->dev_channel, scb->dev_target)); in megaraid_abort_handler()
2575 scb_t *scb; in megaraid_reset_handler() local
2603 list_for_each_entry_safe(scb, tmp, &adapter->pend_list, list) { in megaraid_reset_handler()
2604 list_del_init(&scb->list); // from pending list in megaraid_reset_handler()
2606 if (scb->sno >= MBOX_MAX_SCSI_CMDS) { in megaraid_reset_handler()
2609 scb->sno, scb->dev_channel, scb->dev_target)); in megaraid_reset_handler()
2611 scb->status = -1; in megaraid_reset_handler()
2613 kioc = (uioc_t *)scb->gp; in megaraid_reset_handler()
2616 megaraid_mbox_mm_done(adapter, scb); in megaraid_reset_handler()
2618 if (scb->scp == scp) { // Found command in megaraid_reset_handler()
2621 scb->sno, scb->dev_channel, scb->dev_target)); in megaraid_reset_handler()
2625 scb->sno, scb->dev_channel, scb->dev_target)); in megaraid_reset_handler()
2628 scb->scp->result = (DID_RESET << 16); in megaraid_reset_handler()
2629 scb->scp->scsi_done(scb->scp); in megaraid_reset_handler()
2631 megaraid_dealloc_scb(adapter, scb); in megaraid_reset_handler()
3380 megaraid_mbox_display_scb(adapter_t *adapter, scb_t *scb) in megaraid_mbox_display_scb() argument
3389 ccb = (mbox_ccb_t *)scb->ccb; in megaraid_mbox_display_scb()
3390 scp = scb->scp; in megaraid_mbox_display_scb()
3396 "megaraid mailbox: status:%#x cmd:%#x id:%#x ", scb->status, in megaraid_mbox_display_scb()
3397 mbox->cmd, scb->sno)); in megaraid_mbox_display_scb()
3474 scb_t *scb; in megaraid_cmm_register() local
3504 scb = adapter->uscb_list + i; in megaraid_cmm_register()
3507 scb->ccb = (caddr_t)ccb; in megaraid_cmm_register()
3512 scb->gp = 0; in megaraid_cmm_register()
3516 scb->sno = i + MBOX_MAX_SCSI_CMDS; in megaraid_cmm_register()
3518 scb->scp = NULL; in megaraid_cmm_register()
3519 scb->state = SCB_FREE; in megaraid_cmm_register()
3520 scb->dma_direction = PCI_DMA_NONE; in megaraid_cmm_register()
3521 scb->dma_type = MRAID_DMA_NONE; in megaraid_cmm_register()
3522 scb->dev_channel = -1; in megaraid_cmm_register()
3523 scb->dev_target = -1; in megaraid_cmm_register()
3526 list_add_tail(&scb->list, &adapter->uscb_pool); in megaraid_cmm_register()
3634 scb_t *scb; in megaraid_mbox_mm_command() local
3651 scb = list_entry(head->next, scb_t, list); in megaraid_mbox_mm_command()
3652 list_del_init(&scb->list); in megaraid_mbox_mm_command()
3656 scb->state = SCB_ACTIVE; in megaraid_mbox_mm_command()
3657 scb->dma_type = MRAID_DMA_NONE; in megaraid_mbox_mm_command()
3658 scb->dma_direction = PCI_DMA_NONE; in megaraid_mbox_mm_command()
3660 ccb = (mbox_ccb_t *)scb->ccb; in megaraid_mbox_mm_command()
3666 scb->gp = (unsigned long)kioc; in megaraid_mbox_mm_command()
3680 scb->status = -1; in megaraid_mbox_mm_command()
3682 megaraid_mbox_mm_done(adapter, scb); in megaraid_mbox_mm_command()
3687 INIT_LIST_HEAD(&scb->list); in megaraid_mbox_mm_command()
3689 scb->state = SCB_ISSUED; in megaraid_mbox_mm_command()
3690 if (mbox_post_cmd(adapter, scb) != 0) { in megaraid_mbox_mm_command()
3697 scb->status = -1; in megaraid_mbox_mm_command()
3699 megaraid_mbox_mm_done(adapter, scb); in megaraid_mbox_mm_command()
3708 megaraid_mbox_runpendq(adapter, scb); in megaraid_mbox_mm_command()
3753 megaraid_mbox_mm_done(adapter_t *adapter, scb_t *scb) in megaraid_mbox_mm_done() argument
3760 kioc = (uioc_t *)scb->gp; in megaraid_mbox_mm_done()
3762 mbox64->mbox32.status = scb->status; in megaraid_mbox_mm_done()
3767 scb->state = SCB_FREE; in megaraid_mbox_mm_done()
3768 scb->scp = NULL; in megaraid_mbox_mm_done()
3772 list_add(&scb->list, &adapter->uscb_pool); in megaraid_mbox_mm_done()