Lines Matching refs:scb

375 	scb_t	*scb;  in megaraid_queue_lck()  local
394 scb = mega_build_cmd(adapter, scmd, &busy); in megaraid_queue_lck()
395 if (!scb) in megaraid_queue_lck()
398 scb->state |= SCB_PENDQ; in megaraid_queue_lck()
399 list_add_tail(&scb->list, &adapter->pending_list); in megaraid_queue_lck()
429 scb_t *scb; in DEF_SCSI_QCMD() local
434 scb = list_entry(head->next, scb_t, list); in DEF_SCSI_QCMD()
438 scb->state = SCB_ACTIVE; in DEF_SCSI_QCMD()
439 scb->cmd = cmd; in DEF_SCSI_QCMD()
440 scb->dma_type = MEGA_DMA_TYPE_NONE; in DEF_SCSI_QCMD()
442 return scb; in DEF_SCSI_QCMD()
525 scb_t *scb; in mega_build_cmd() local
643 if(!(scb = mega_allocate_scb(adapter, cmd))) { in mega_build_cmd()
648 scb->raw_mbox[0] = MEGA_CLUSTER_CMD; in mega_build_cmd()
649 scb->raw_mbox[2] = MEGA_RESERVATION_STATUS; in mega_build_cmd()
650 scb->raw_mbox[3] = ldrv_num; in mega_build_cmd()
652 scb->dma_direction = PCI_DMA_NONE; in mega_build_cmd()
654 return scb; in mega_build_cmd()
691 if(!(scb = mega_allocate_scb(adapter, cmd))) { in mega_build_cmd()
695 pthru = scb->pthru; in mega_build_cmd()
697 mbox = (mbox_t *)scb->raw_mbox; in mega_build_cmd()
698 memset(mbox, 0, sizeof(scb->raw_mbox)); in mega_build_cmd()
716 scb->dma_direction = PCI_DMA_FROMDEVICE; in mega_build_cmd()
718 pthru->numsgelements = mega_build_sglist(adapter, scb, in mega_build_cmd()
721 mbox->m_out.xferaddr = scb->pthru_dma_addr; in mega_build_cmd()
723 return scb; in mega_build_cmd()
733 if(!(scb = mega_allocate_scb(adapter, cmd))) { in mega_build_cmd()
737 mbox = (mbox_t *)scb->raw_mbox; in mega_build_cmd()
739 memset(mbox, 0, sizeof(scb->raw_mbox)); in mega_build_cmd()
846 scb->dma_direction = PCI_DMA_FROMDEVICE; in mega_build_cmd()
849 scb->dma_direction = PCI_DMA_TODEVICE; in mega_build_cmd()
853 mbox->m_out.numsgelements = mega_build_sglist(adapter, scb, in mega_build_cmd()
856 return scb; in mega_build_cmd()
873 if(!(scb = mega_allocate_scb(adapter, cmd))) { in mega_build_cmd()
878 scb->raw_mbox[0] = MEGA_CLUSTER_CMD; in mega_build_cmd()
879 scb->raw_mbox[2] = ( *cmd->cmnd == RESERVE ) ? in mega_build_cmd()
882 scb->raw_mbox[3] = ldrv_num; in mega_build_cmd()
884 scb->dma_direction = PCI_DMA_NONE; in mega_build_cmd()
886 return scb; in mega_build_cmd()
901 if(!(scb = mega_allocate_scb(adapter, cmd))) { in mega_build_cmd()
906 mbox = (mbox_t *)scb->raw_mbox; in mega_build_cmd()
907 memset(mbox, 0, sizeof(scb->raw_mbox)); in mega_build_cmd()
911 epthru = mega_prepare_extpassthru(adapter, scb, cmd, in mega_build_cmd()
916 mbox->m_out.xferaddr = scb->epthru_dma_addr; in mega_build_cmd()
921 pthru = mega_prepare_passthru(adapter, scb, cmd, in mega_build_cmd()
932 mbox->m_out.xferaddr = scb->pthru_dma_addr; in mega_build_cmd()
935 return scb; in mega_build_cmd()
952 mega_prepare_passthru(adapter_t *adapter, scb_t *scb, Scsi_Cmnd *cmd, in mega_prepare_passthru() argument
957 pthru = scb->pthru; in mega_prepare_passthru()
978 scb->dma_direction = PCI_DMA_BIDIRECTIONAL; in mega_prepare_passthru()
996 pthru->numsgelements = mega_build_sglist(adapter, scb, in mega_prepare_passthru()
1016 mega_prepare_extpassthru(adapter_t *adapter, scb_t *scb, Scsi_Cmnd *cmd, in mega_prepare_extpassthru() argument
1021 epthru = scb->epthru; in mega_prepare_extpassthru()
1041 scb->dma_direction = PCI_DMA_BIDIRECTIONAL; in mega_prepare_extpassthru()
1058 epthru->numsgelements = mega_build_sglist(adapter, scb, in mega_prepare_extpassthru()
1069 scb_t *scb; in __mega_runpendq() local
1075 scb = list_entry(pos, scb_t, list); in __mega_runpendq()
1077 if( !(scb->state & SCB_ISSUED) ) { in __mega_runpendq()
1079 if( issue_scb(adapter, scb) != 0 ) in __mega_runpendq()
1098 issue_scb(adapter_t *adapter, scb_t *scb) in issue_scb() argument
1114 memcpy((char *)&mbox->m_out, (char *)scb->raw_mbox, in issue_scb()
1117 mbox->m_out.cmdid = scb->idx; /* Set cmdid */ in issue_scb()
1143 scb->state |= SCB_ISSUED; in issue_scb()
1422 scb_t *scb; in mega_cmd_done() local
1443 scb = &adapter->int_scb; in mega_cmd_done()
1445 list_del_init(&scb->list); in mega_cmd_done()
1446 scb->state = SCB_FREE; in mega_cmd_done()
1451 scb = &adapter->scb_list[cmdid]; in mega_cmd_done()
1456 if( !(scb->state & SCB_ISSUED) || scb->cmd == NULL ) { in mega_cmd_done()
1459 cmdid, scb->state, scb->cmd); in mega_cmd_done()
1467 if( scb->state & SCB_ABORT ) { in mega_cmd_done()
1471 scb->idx); in mega_cmd_done()
1473 scb->cmd->result = (DID_ABORT << 16); in mega_cmd_done()
1475 list_add_tail(SCSI_LIST(scb->cmd), in mega_cmd_done()
1478 mega_free_scb(adapter, scb); in mega_cmd_done()
1486 if( scb->state & SCB_RESET ) { in mega_cmd_done()
1490 scb->idx); in mega_cmd_done()
1492 scb->cmd->result = (DID_RESET << 16); in mega_cmd_done()
1494 list_add_tail(SCSI_LIST(scb->cmd), in mega_cmd_done()
1497 mega_free_scb (adapter, scb); in mega_cmd_done()
1502 cmd = scb->cmd; in mega_cmd_done()
1503 pthru = scb->pthru; in mega_cmd_done()
1504 epthru = scb->epthru; in mega_cmd_done()
1505 mbox = (mbox_t *)scb->raw_mbox; in mega_cmd_done()
1637 mega_free_scb(adapter, scb); in mega_cmd_done()
1673 mega_free_scb(adapter_t *adapter, scb_t *scb) in mega_free_scb() argument
1675 switch( scb->dma_type ) { in mega_free_scb()
1681 scsi_dma_unmap(scb->cmd); in mega_free_scb()
1690 list_del_init(&scb->list); in mega_free_scb()
1693 scb->state = SCB_FREE; in mega_free_scb()
1694 scb->cmd = NULL; in mega_free_scb()
1696 list_add(&scb->list, &adapter->free_list); in mega_free_scb()
1720 mega_build_sglist(adapter_t *adapter, scb_t *scb, u32 *buf, u32 *len) in mega_build_sglist() argument
1727 cmd = scb->cmd; in mega_build_sglist()
1736 scb->dma_type = MEGA_SGLIST; in mega_build_sglist()
1744 scb->dma_h_bulkdata = sg_dma_address(sg); in mega_build_sglist()
1745 *buf = (u32)scb->dma_h_bulkdata; in mega_build_sglist()
1752 scb->sgl64[idx].address = sg_dma_address(sg); in mega_build_sglist()
1753 *len += scb->sgl64[idx].length = sg_dma_len(sg); in mega_build_sglist()
1755 scb->sgl[idx].address = sg_dma_address(sg); in mega_build_sglist()
1756 *len += scb->sgl[idx].length = sg_dma_len(sg); in mega_build_sglist()
1761 *buf = scb->sgl_dma_addr; in mega_build_sglist()
1811 scb_t *scb; in mega_free_sgl() local
1816 scb = &adapter->scb_list[i]; in mega_free_sgl()
1818 if( scb->sgl64 ) { in mega_free_sgl()
1821 scb->sgl64, in mega_free_sgl()
1822 scb->sgl_dma_addr); in mega_free_sgl()
1824 scb->sgl64 = NULL; in mega_free_sgl()
1827 if( scb->pthru ) { in mega_free_sgl()
1829 scb->pthru, scb->pthru_dma_addr); in mega_free_sgl()
1831 scb->pthru = NULL; in mega_free_sgl()
1834 if( scb->epthru ) { in mega_free_sgl()
1837 scb->epthru, scb->epthru_dma_addr); in mega_free_sgl()
1839 scb->epthru = NULL; in mega_free_sgl()
1937 scb_t *scb; in megaraid_abort_and_reset() local
1949 scb = list_entry(pos, scb_t, list); in megaraid_abort_and_reset()
1951 if (scb->cmd == cmd) { /* Found command */ in megaraid_abort_and_reset()
1953 scb->state |= aor; in megaraid_abort_and_reset()
1961 if( scb->state & SCB_ISSUED ) { in megaraid_abort_and_reset()
1966 scb->idx); in megaraid_abort_and_reset()
1979 scb->idx); in megaraid_abort_and_reset()
1981 mega_free_scb(adapter, scb); in megaraid_abort_and_reset()
2910 scb_t *scb; in mega_init_scb() local
2915 scb = &adapter->scb_list[i]; in mega_init_scb()
2917 scb->sgl64 = NULL; in mega_init_scb()
2918 scb->sgl = NULL; in mega_init_scb()
2919 scb->pthru = NULL; in mega_init_scb()
2920 scb->epthru = NULL; in mega_init_scb()
2925 scb = &adapter->scb_list[i]; in mega_init_scb()
2927 scb->idx = i; in mega_init_scb()
2929 scb->sgl64 = pci_alloc_consistent(adapter->dev, in mega_init_scb()
2931 &scb->sgl_dma_addr); in mega_init_scb()
2933 scb->sgl = (mega_sglist *)scb->sgl64; in mega_init_scb()
2935 if( !scb->sgl ) { in mega_init_scb()
2941 scb->pthru = pci_alloc_consistent(adapter->dev, in mega_init_scb()
2943 &scb->pthru_dma_addr); in mega_init_scb()
2945 if( !scb->pthru ) { in mega_init_scb()
2951 scb->epthru = pci_alloc_consistent(adapter->dev, in mega_init_scb()
2953 &scb->epthru_dma_addr); in mega_init_scb()
2955 if( !scb->epthru ) { in mega_init_scb()
2963 scb->dma_type = MEGA_DMA_TYPE_NONE; in mega_init_scb()
2970 scb->state = SCB_FREE; in mega_init_scb()
2971 scb->cmd = NULL; in mega_init_scb()
2972 list_add(&scb->list, &adapter->free_list); in mega_init_scb()
3833 scb_t *scb; in mega_del_logdrv() local
3861 scb = list_entry(pos, scb_t, list); in mega_del_logdrv()
3862 if (scb->pthru->logdrv < 0x80 ) in mega_del_logdrv()
3863 scb->pthru->logdrv += 0x80; in mega_del_logdrv()
4117 scb_t *scb; in mega_internal_command() local
4127 scb = &adapter->int_scb; in mega_internal_command()
4128 memset(scb, 0, sizeof(scb_t)); in mega_internal_command()
4130 scb->idx = CMDID_INT_CMDS; in mega_internal_command()
4131 scb->state |= SCB_ACTIVE | SCB_PENDQ; in mega_internal_command()
4133 memcpy(scb->raw_mbox, mc, sizeof(megacmd_t)); in mega_internal_command()
4139 scb->pthru = pthru; in mega_internal_command()
4142 list_add_tail(&scb->list, &adapter->pending_list); in mega_internal_command()