Lines Matching refs:cmd

96 megadev_unlocked_ioctl(struct file *filep, unsigned int cmd, unsigned long arg);
240 mbox.cmd = MEGA_MBOXCMD_ADPEXTINQ; in mega_query_adapter()
426 mega_allocate_scb(adapter_t *adapter, struct scsi_cmnd *cmd) in DEF_SCSI_QCMD()
439 scb->cmd = cmd; in DEF_SCSI_QCMD()
458 mega_get_ldrv_num(adapter_t *adapter, struct scsi_cmnd *cmd, int channel) in mega_get_ldrv_num() argument
463 tgt = cmd->device->id; in mega_get_ldrv_num()
496 switch (cmd->cmnd[0]) { in mega_get_ldrv_num()
521 mega_build_cmd(adapter_t *adapter, struct scsi_cmnd *cmd, int *busy) in mega_build_cmd() argument
536 islogical = adapter->logdrv_chan[cmd->device->channel]; in mega_build_cmd()
548 channel = cmd->device->channel - in mega_build_cmd()
553 channel = cmd->device->channel; in mega_build_cmd()
554 target = cmd->device->id; in mega_build_cmd()
572 channel = cmd->device->channel; in mega_build_cmd()
576 channel = cmd->device->channel - NVIRT_CHAN; in mega_build_cmd()
577 target = cmd->device->id; in mega_build_cmd()
585 if (cmd->device->lun) { in mega_build_cmd()
586 cmd->result = (DID_BAD_TARGET << 16); in mega_build_cmd()
587 scsi_done(cmd); in mega_build_cmd()
591 ldrv_num = mega_get_ldrv_num(adapter, cmd, channel); in mega_build_cmd()
605 cmd->result = (DID_BAD_TARGET << 16); in mega_build_cmd()
606 scsi_done(cmd); in mega_build_cmd()
612 if( cmd->device->lun > 7) { in mega_build_cmd()
617 cmd->result = (DID_BAD_TARGET << 16); in mega_build_cmd()
618 scsi_done(cmd); in mega_build_cmd()
629 switch (cmd->cmnd[0]) { in mega_build_cmd()
637 cmd->result = (DID_OK << 16); in mega_build_cmd()
638 scsi_done(cmd); in mega_build_cmd()
642 if(!(scb = mega_allocate_scb(adapter, cmd))) { in mega_build_cmd()
655 cmd->result = (DID_OK << 16); in mega_build_cmd()
656 scsi_done(cmd); in mega_build_cmd()
664 sg = scsi_sglist(cmd); in mega_build_cmd()
667 memset(buf, 0, cmd->cmnd[4]); in mega_build_cmd()
670 cmd->result = (DID_OK << 16); in mega_build_cmd()
671 scsi_done(cmd); in mega_build_cmd()
678 if(!(adapter->flag & (1L << cmd->device->channel))) { in mega_build_cmd()
684 cmd->device->channel); in mega_build_cmd()
686 adapter->flag |= (1L << cmd->device->channel); in mega_build_cmd()
690 if(!(scb = mega_allocate_scb(adapter, cmd))) { in mega_build_cmd()
705 pthru->cdblen = cmd->cmd_len; in mega_build_cmd()
706 memcpy(pthru->cdb, cmd->cmnd, cmd->cmd_len); in mega_build_cmd()
709 mbox->m_out.cmd = MEGA_MBOXCMD_PASSTHRU64; in mega_build_cmd()
712 mbox->m_out.cmd = MEGA_MBOXCMD_PASSTHRU; in mega_build_cmd()
732 if(!(scb = mega_allocate_scb(adapter, cmd))) { in mega_build_cmd()
746 mbox->m_out.cmd = (*cmd->cmnd & 0x02) ? in mega_build_cmd()
751 mbox->m_out.cmd = (*cmd->cmnd & 0x02) ? in mega_build_cmd()
759 if( cmd->cmd_len == 6 ) { in mega_build_cmd()
760 mbox->m_out.numsectors = (u32) cmd->cmnd[4]; in mega_build_cmd()
762 ((u32)cmd->cmnd[1] << 16) | in mega_build_cmd()
763 ((u32)cmd->cmnd[2] << 8) | in mega_build_cmd()
764 (u32)cmd->cmnd[3]; in mega_build_cmd()
774 if (*cmd->cmnd == READ_6) { in mega_build_cmd()
789 if( cmd->cmd_len == 10 ) { in mega_build_cmd()
791 (u32)cmd->cmnd[8] | in mega_build_cmd()
792 ((u32)cmd->cmnd[7] << 8); in mega_build_cmd()
794 ((u32)cmd->cmnd[2] << 24) | in mega_build_cmd()
795 ((u32)cmd->cmnd[3] << 16) | in mega_build_cmd()
796 ((u32)cmd->cmnd[4] << 8) | in mega_build_cmd()
797 (u32)cmd->cmnd[5]; in mega_build_cmd()
800 if (*cmd->cmnd == READ_10) { in mega_build_cmd()
815 if( cmd->cmd_len == 12 ) { in mega_build_cmd()
817 ((u32)cmd->cmnd[2] << 24) | in mega_build_cmd()
818 ((u32)cmd->cmnd[3] << 16) | in mega_build_cmd()
819 ((u32)cmd->cmnd[4] << 8) | in mega_build_cmd()
820 (u32)cmd->cmnd[5]; in mega_build_cmd()
823 ((u32)cmd->cmnd[6] << 24) | in mega_build_cmd()
824 ((u32)cmd->cmnd[7] << 16) | in mega_build_cmd()
825 ((u32)cmd->cmnd[8] << 8) | in mega_build_cmd()
826 (u32)cmd->cmnd[9]; in mega_build_cmd()
829 if (*cmd->cmnd == READ_12) { in mega_build_cmd()
844 if( (*cmd->cmnd & 0x0F) == 0x08 ) { in mega_build_cmd()
866 cmd->result = (DID_BAD_TARGET << 16); in mega_build_cmd()
867 scsi_done(cmd); in mega_build_cmd()
872 if(!(scb = mega_allocate_scb(adapter, cmd))) { in mega_build_cmd()
878 scb->raw_mbox[2] = ( *cmd->cmnd == RESERVE ) ? in mega_build_cmd()
889 cmd->result = (DID_BAD_TARGET << 16); in mega_build_cmd()
890 scsi_done(cmd); in mega_build_cmd()
900 if(!(scb = mega_allocate_scb(adapter, cmd))) { in mega_build_cmd()
910 mega_prepare_extpassthru(adapter, scb, cmd, in mega_build_cmd()
913 mbox->m_out.cmd = MEGA_MBOXCMD_EXTPTHRU; in mega_build_cmd()
920 pthru = mega_prepare_passthru(adapter, scb, cmd, in mega_build_cmd()
925 mbox->m_out.cmd = MEGA_MBOXCMD_PASSTHRU64; in mega_build_cmd()
928 mbox->m_out.cmd = MEGA_MBOXCMD_PASSTHRU; in mega_build_cmd()
951 mega_prepare_passthru(adapter_t *adapter, scb_t *scb, struct scsi_cmnd *cmd, in mega_prepare_passthru() argument
971 pthru->cdblen = cmd->cmd_len; in mega_prepare_passthru()
972 pthru->logdrv = cmd->device->lun; in mega_prepare_passthru()
974 memcpy(pthru->cdb, cmd->cmnd, cmd->cmd_len); in mega_prepare_passthru()
980 switch (cmd->cmnd[0]) { in mega_prepare_passthru()
983 if(!(adapter->flag & (1L << cmd->device->channel))) { in mega_prepare_passthru()
989 cmd->device->channel, channel); in mega_prepare_passthru()
991 adapter->flag |= (1L << cmd->device->channel); in mega_prepare_passthru()
1016 struct scsi_cmnd *cmd, in mega_prepare_extpassthru() argument
1035 epthru->cdblen = cmd->cmd_len; in mega_prepare_extpassthru()
1036 epthru->logdrv = cmd->device->lun; in mega_prepare_extpassthru()
1038 memcpy(epthru->cdb, cmd->cmnd, cmd->cmd_len); in mega_prepare_extpassthru()
1043 switch(cmd->cmnd[0]) { in mega_prepare_extpassthru()
1046 if(!(adapter->flag & (1L << cmd->device->channel))) { in mega_prepare_extpassthru()
1052 cmd->device->channel, channel); in mega_prepare_extpassthru()
1054 adapter->flag |= (1L << cmd->device->channel); in mega_prepare_extpassthru()
1126 switch (mbox->m_out.cmd) { in issue_scb()
1418 struct scsi_cmnd *cmd = NULL; in mega_cmd_done() local
1444 cmd = scb->cmd; in mega_cmd_done()
1457 if( !(scb->state & SCB_ISSUED) || scb->cmd == NULL ) { in mega_cmd_done()
1460 cmdid, scb->state, scb->cmd); in mega_cmd_done()
1474 scb->cmd->result = (DID_ABORT << 16); in mega_cmd_done()
1476 list_add_tail(SCSI_LIST(scb->cmd), in mega_cmd_done()
1493 scb->cmd->result = (DID_RESET << 16); in mega_cmd_done()
1495 list_add_tail(SCSI_LIST(scb->cmd), in mega_cmd_done()
1503 cmd = scb->cmd; in mega_cmd_done()
1513 islogical = adapter->logdrv_chan[cmd->channel]; in mega_cmd_done()
1519 if( status && islogical && (cmd->cmnd[0] == READ_6 || in mega_cmd_done()
1520 cmd->cmnd[0] == READ_10 || in mega_cmd_done()
1521 cmd->cmnd[0] == READ_12)) { in mega_cmd_done()
1529 if( status && islogical && (cmd->cmnd[0] == WRITE_6 || in mega_cmd_done()
1530 cmd->cmnd[0] == WRITE_10 || in mega_cmd_done()
1531 cmd->cmnd[0] == WRITE_12)) { in mega_cmd_done()
1549 islogical = adapter->logdrv_chan[cmd->device->channel]; in mega_cmd_done()
1550 if( cmd->cmnd[0] == INQUIRY && !islogical ) { in mega_cmd_done()
1552 sgl = scsi_sglist(cmd); in mega_cmd_done()
1560 if(IS_RAID_CH(adapter, cmd->device->channel) && in mega_cmd_done()
1567 cmd->result = 0; in mega_cmd_done()
1572 cmd->result |= (DID_OK << 16); in mega_cmd_done()
1579 if( mbox->m_out.cmd == MEGA_MBOXCMD_PASSTHRU || in mega_cmd_done()
1580 mbox->m_out.cmd == MEGA_MBOXCMD_PASSTHRU64 ) { in mega_cmd_done()
1582 memcpy(cmd->sense_buffer, pthru->reqsensearea, in mega_cmd_done()
1585 cmd->result = SAM_STAT_CHECK_CONDITION; in mega_cmd_done()
1588 if (mbox->m_out.cmd == MEGA_MBOXCMD_EXTPTHRU) { in mega_cmd_done()
1590 memcpy(cmd->sense_buffer, in mega_cmd_done()
1593 cmd->result = SAM_STAT_CHECK_CONDITION; in mega_cmd_done()
1595 scsi_build_sense(cmd, 0, in mega_cmd_done()
1602 cmd->result |= (DID_BUS_BUSY << 16) | status; in mega_cmd_done()
1611 if( cmd->cmnd[0] == TEST_UNIT_READY ) { in mega_cmd_done()
1612 cmd->result |= (DID_ERROR << 16) | in mega_cmd_done()
1621 (cmd->cmnd[0] == RESERVE || in mega_cmd_done()
1622 cmd->cmnd[0] == RELEASE) ) { in mega_cmd_done()
1624 cmd->result |= (DID_ERROR << 16) | in mega_cmd_done()
1629 cmd->result |= (DID_BAD_TARGET << 16)|status; in mega_cmd_done()
1635 list_add_tail(SCSI_LIST(cmd), &adapter->completed_list); in mega_cmd_done()
1670 scsi_dma_unmap(scb->cmd); in mega_free_scb()
1683 scb->cmd = NULL; in mega_free_scb()
1712 struct scsi_cmnd *cmd; in mega_build_sglist() local
1716 cmd = scb->cmd; in mega_build_sglist()
1723 sgcnt = scsi_dma_map(cmd); in mega_build_sglist()
1731 if (scsi_sg_count(cmd) == 1 && !adapter->has_64bit_addr) { in mega_build_sglist()
1732 sg = scsi_sglist(cmd); in mega_build_sglist()
1739 scsi_for_each_sg(cmd, sg, sgcnt, idx) { in mega_build_sglist()
1859 megaraid_abort(struct scsi_cmnd *cmd) in megaraid_abort() argument
1864 adapter = (adapter_t *)cmd->device->host->hostdata; in megaraid_abort()
1866 rval = megaraid_abort_and_reset(adapter, cmd, SCB_ABORT); in megaraid_abort()
1879 megaraid_reset(struct scsi_cmnd *cmd) in megaraid_reset() argument
1885 adapter = (adapter_t *)cmd->device->host->hostdata; in megaraid_reset()
1888 mc.cmd = MEGA_CLUSTER_CMD; in megaraid_reset()
1901 rval = megaraid_abort_and_reset(adapter, cmd, SCB_RESET); in megaraid_reset()
1923 megaraid_abort_and_reset(adapter_t *adapter, struct scsi_cmnd *cmd, int aor) in megaraid_abort_and_reset() argument
1930 cmd->cmnd[0], cmd->device->channel, in megaraid_abort_and_reset()
1931 cmd->device->id, (u32)cmd->device->lun); in megaraid_abort_and_reset()
1940 if (scb->cmd == cmd) { /* Found command */ in megaraid_abort_and_reset()
1973 cmd->result = (DID_ABORT << 16); in megaraid_abort_and_reset()
1976 cmd->result = (DID_RESET << 16); in megaraid_abort_and_reset()
1979 list_add_tail(SCSI_LIST(cmd), in megaraid_abort_and_reset()
2152 seq_printf(m, " Fw Command = 0x%02x\n", mbox->m_out.cmd); in proc_show_mbox()
2551 mc.cmd = FC_NEW_CONFIG; in proc_show_rdrv()
2561 mc.cmd = NEW_READ_CONFIG_8LD; in proc_show_rdrv()
2564 mc.cmd = READ_CONFIG_8LD; in proc_show_rdrv()
2921 scb->cmd = NULL; in mega_init_scb()
2961 megadev_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) in megadev_ioctl() argument
2984 if( (_IOC_TYPE(cmd) != MEGAIOC_MAGIC) && (cmd != USCSICMD) ) { in megadev_ioctl()
3217 mc.cmd = MEGA_MBOXCMD_PASSTHRU; in megadev_ioctl()
3354 megadev_unlocked_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) in megadev_unlocked_ioctl() argument
3359 ret = megadev_ioctl(filep, cmd, arg); in megadev_unlocked_ioctl()
3523 if( mc->cmd == MEGA_MBOXCMD_PASSTHRU ) { in mega_n_to_m()
3540 if( mc->cmd == MEGA_MBOXCMD_PASSTHRU ) { in mega_n_to_m()
3823 mc.cmd = FC_DEL_LOGDRV; in mega_do_del_logdrv()
3946 mc.cmd = FC_NEW_CONFIG; in mega_adapinq()
3951 mc.cmd = MEGA_MBOXCMD_ADPEXTINQ; in mega_adapinq()
4022 mc.cmd = MEGA_MBOXCMD_PASSTHRU; in mega_internal_dev_inquiry()
4073 if (mc->cmd == MEGA_MBOXCMD_PASSTHRU) in mega_internal_command()
4097 mc->cmd, mc->opcode, mc->subopcode, rval); in mega_internal_command()