Lines Matching full:scp

1070 		scb->scp		= NULL;  in megaraid_alloc_cmd_packets()
1265 * @scp : pointer to the scsi command to be executed
1271 megaraid_alloc_scb(adapter_t *adapter, struct scsi_cmnd *scp) in megaraid_alloc_scb() argument
1291 scb->scp = scp; in megaraid_alloc_scb()
1315 scb->scp = NULL; in megaraid_dealloc_scb()
1338 struct scsi_cmnd *scp; in megaraid_mbox_mksgl() local
1343 scp = scb->scp; in megaraid_mbox_mksgl()
1346 sgcnt = scsi_dma_map(scp); in megaraid_mbox_mksgl()
1355 scsi_for_each_sg(scp, sgl, sgcnt, i) { in megaraid_mbox_mksgl()
1430 * @scp : pointer to the scsi command to be executed
1436 megaraid_queue_command_lck(struct scsi_cmnd *scp, void (*done)(struct scsi_cmnd *)) in megaraid_queue_command_lck() argument
1442 adapter = SCP2ADAPTER(scp); in megaraid_queue_command_lck()
1443 scp->scsi_done = done; in megaraid_queue_command_lck()
1444 scp->result = 0; in megaraid_queue_command_lck()
1455 scb = megaraid_mbox_build_cmd(adapter, scp, &if_busy); in megaraid_queue_command_lck()
1457 done(scp); in megaraid_queue_command_lck()
1470 * @scp : mid-layer scsi command pointer in DEF_SCSI_QCMD()
1479 megaraid_mbox_build_cmd(adapter_t *adapter, struct scsi_cmnd *scp, int *busy) in DEF_SCSI_QCMD()
1499 MRAID_GET_DEVICE_MAP(adapter, scp, channel, target, islogical); in DEF_SCSI_QCMD()
1505 switch (scp->cmnd[0]) { in DEF_SCSI_QCMD()
1512 scp->result = (DID_OK << 16); in DEF_SCSI_QCMD()
1516 if (!(scb = megaraid_alloc_scb(adapter, scp))) { in DEF_SCSI_QCMD()
1517 scp->result = (DID_ERROR << 16); in DEF_SCSI_QCMD()
1522 scb->dma_direction = scp->sc_data_direction; in DEF_SCSI_QCMD()
1542 sgl = scsi_sglist(scp); in DEF_SCSI_QCMD()
1546 memset(vaddr, 0, scp->cmnd[4]); in DEF_SCSI_QCMD()
1554 scp->result = (DID_OK << 16); in DEF_SCSI_QCMD()
1562 if (!(rdev->last_disp & (1L << SCP2CHANNEL(scp)))) { in DEF_SCSI_QCMD()
1567 SCP2CHANNEL(scp))); in DEF_SCSI_QCMD()
1572 rdev->last_disp |= (1L << SCP2CHANNEL(scp)); in DEF_SCSI_QCMD()
1575 if (scp->cmnd[1] & MEGA_SCSI_INQ_EVPD) { in DEF_SCSI_QCMD()
1576 scsi_build_sense(scp, 0, ILLEGAL_REQUEST, in DEF_SCSI_QCMD()
1588 if (SCP2LUN(scp)) { in DEF_SCSI_QCMD()
1589 scp->result = (DID_BAD_TARGET << 16); in DEF_SCSI_QCMD()
1593 scp->result = (DID_BAD_TARGET << 16); in DEF_SCSI_QCMD()
1599 if (!(scb = megaraid_alloc_scb(adapter, scp))) { in DEF_SCSI_QCMD()
1600 scp->result = (DID_ERROR << 16); in DEF_SCSI_QCMD()
1617 pthru->cdblen = scp->cmd_len; in DEF_SCSI_QCMD()
1618 memcpy(pthru->cdb, scp->cmnd, scp->cmd_len); in DEF_SCSI_QCMD()
1621 scb->dma_direction = scp->sc_data_direction; in DEF_SCSI_QCMD()
1623 pthru->dataxferlen = scsi_bufflen(scp); in DEF_SCSI_QCMD()
1644 if (!(scb = megaraid_alloc_scb(adapter, scp))) { in DEF_SCSI_QCMD()
1645 scp->result = (DID_ERROR << 16); in DEF_SCSI_QCMD()
1660 mbox->cmd = (scp->cmnd[0] & 0x02) ? MBOXCMD_LWRITE64: in DEF_SCSI_QCMD()
1666 if (scp->cmd_len == 6) { in DEF_SCSI_QCMD()
1667 mbox->numsectors = (uint32_t)scp->cmnd[4]; in DEF_SCSI_QCMD()
1669 ((uint32_t)scp->cmnd[1] << 16) | in DEF_SCSI_QCMD()
1670 ((uint32_t)scp->cmnd[2] << 8) | in DEF_SCSI_QCMD()
1671 (uint32_t)scp->cmnd[3]; in DEF_SCSI_QCMD()
1679 else if (scp->cmd_len == 10) { in DEF_SCSI_QCMD()
1681 (uint32_t)scp->cmnd[8] | in DEF_SCSI_QCMD()
1682 ((uint32_t)scp->cmnd[7] << 8); in DEF_SCSI_QCMD()
1684 ((uint32_t)scp->cmnd[2] << 24) | in DEF_SCSI_QCMD()
1685 ((uint32_t)scp->cmnd[3] << 16) | in DEF_SCSI_QCMD()
1686 ((uint32_t)scp->cmnd[4] << 8) | in DEF_SCSI_QCMD()
1687 (uint32_t)scp->cmnd[5]; in DEF_SCSI_QCMD()
1693 else if (scp->cmd_len == 12) { in DEF_SCSI_QCMD()
1695 ((uint32_t)scp->cmnd[2] << 24) | in DEF_SCSI_QCMD()
1696 ((uint32_t)scp->cmnd[3] << 16) | in DEF_SCSI_QCMD()
1697 ((uint32_t)scp->cmnd[4] << 8) | in DEF_SCSI_QCMD()
1698 (uint32_t)scp->cmnd[5]; in DEF_SCSI_QCMD()
1701 ((uint32_t)scp->cmnd[6] << 24) | in DEF_SCSI_QCMD()
1702 ((uint32_t)scp->cmnd[7] << 16) | in DEF_SCSI_QCMD()
1703 ((uint32_t)scp->cmnd[8] << 8) | in DEF_SCSI_QCMD()
1704 (uint32_t)scp->cmnd[9]; in DEF_SCSI_QCMD()
1712 scp->result = (DID_ERROR << 16); in DEF_SCSI_QCMD()
1716 scb->dma_direction = scp->sc_data_direction; in DEF_SCSI_QCMD()
1733 scp->result = (DID_BAD_TARGET << 16); in DEF_SCSI_QCMD()
1740 if (!(scb = megaraid_alloc_scb(adapter, scp))) { in DEF_SCSI_QCMD()
1741 scp->result = (DID_ERROR << 16); in DEF_SCSI_QCMD()
1750 ccb->raw_mbox[2] = (scp->cmnd[0] == RESERVE) ? in DEF_SCSI_QCMD()
1754 scb->dma_direction = scp->sc_data_direction; in DEF_SCSI_QCMD()
1759 scp->result = (DID_BAD_TARGET << 16); in DEF_SCSI_QCMD()
1766 if (target > 15 || SCP2LUN(scp) > 7) { in DEF_SCSI_QCMD()
1767 scp->result = (DID_BAD_TARGET << 16); in DEF_SCSI_QCMD()
1775 (SCP2CHANNEL(scp) == adapter->max_channel -1)) { in DEF_SCSI_QCMD()
1786 if (!(rdev->last_disp & (1L << SCP2CHANNEL(scp)))) { in DEF_SCSI_QCMD()
1792 adapter->host->host_no, ss, SCP2CHANNEL(scp), in DEF_SCSI_QCMD()
1798 rdev->last_disp |= (1L << SCP2CHANNEL(scp)); in DEF_SCSI_QCMD()
1803 scp->result = (DID_BAD_TARGET << 16); in DEF_SCSI_QCMD()
1808 if (!(scb = megaraid_alloc_scb(adapter, scp))) { in DEF_SCSI_QCMD()
1809 scp->result = (DID_ERROR << 16); in DEF_SCSI_QCMD()
1817 scb->dma_direction = scp->sc_data_direction; in DEF_SCSI_QCMD()
1825 megaraid_mbox_prepare_epthru(adapter, scb, scp); in DEF_SCSI_QCMD()
1834 megaraid_mbox_prepare_pthru(adapter, scb, scp); in DEF_SCSI_QCMD()
1927 * @scp : scsi command from the mid-layer
1933 struct scsi_cmnd *scp) in megaraid_mbox_prepare_pthru() argument
1951 pthru->logdrv = SCP2LUN(scp); in megaraid_mbox_prepare_pthru()
1953 pthru->cdblen = scp->cmd_len; in megaraid_mbox_prepare_pthru()
1955 memcpy(pthru->cdb, scp->cmnd, scp->cmd_len); in megaraid_mbox_prepare_pthru()
1957 if (scsi_bufflen(scp)) { in megaraid_mbox_prepare_pthru()
1958 pthru->dataxferlen = scsi_bufflen(scp); in megaraid_mbox_prepare_pthru()
1975 * @scp : scsi command from the mid-layer
1982 struct scsi_cmnd *scp) in megaraid_mbox_prepare_epthru() argument
2000 epthru->logdrv = SCP2LUN(scp); in megaraid_mbox_prepare_epthru()
2002 epthru->cdblen = scp->cmd_len; in megaraid_mbox_prepare_epthru()
2004 memcpy(epthru->cdb, scp->cmnd, scp->cmd_len); in megaraid_mbox_prepare_epthru()
2006 if (scsi_bufflen(scp)) { in megaraid_mbox_prepare_epthru()
2007 epthru->dataxferlen = scsi_bufflen(scp); in megaraid_mbox_prepare_epthru()
2176 struct scsi_cmnd *scp; in megaraid_mbox_dpc() local
2207 scp = scb->scp; in megaraid_mbox_dpc()
2217 scb->sno, scb->state, scp)); in megaraid_mbox_dpc()
2253 islogical = MRAID_IS_LOGICAL(adapter, scp); in megaraid_mbox_dpc()
2254 if (scp->cmnd[0] == INQUIRY && status == 0 && islogical == 0 in megaraid_mbox_dpc()
2257 sgl = scsi_sglist(scp); in megaraid_mbox_dpc()
2289 scp->result = (DID_OK << 16); in megaraid_mbox_dpc()
2298 memcpy(scp->sense_buffer, pthru->reqsensearea, in megaraid_mbox_dpc()
2301 scp->result = SAM_STAT_CHECK_CONDITION; in megaraid_mbox_dpc()
2306 memcpy(scp->sense_buffer, in megaraid_mbox_dpc()
2309 scp->result = SAM_STAT_CHECK_CONDITION; in megaraid_mbox_dpc()
2311 scsi_build_sense(scp, 0, in megaraid_mbox_dpc()
2318 scp->result = DID_BUS_BUSY << 16 | status; in megaraid_mbox_dpc()
2327 if (scp->cmnd[0] == TEST_UNIT_READY) { in megaraid_mbox_dpc()
2328 scp->result = DID_ERROR << 16 | in megaraid_mbox_dpc()
2336 if (status == 1 && (scp->cmnd[0] == RESERVE || in megaraid_mbox_dpc()
2337 scp->cmnd[0] == RELEASE)) { in megaraid_mbox_dpc()
2339 scp->result = DID_ERROR << 16 | in megaraid_mbox_dpc()
2343 scp->result = DID_BAD_TARGET << 16 | status; in megaraid_mbox_dpc()
2352 scsi_dma_unmap(scp); in megaraid_mbox_dpc()
2361 scp->scsi_done(scp); in megaraid_mbox_dpc()
2370 * @scp : command to be aborted
2376 megaraid_abort_handler(struct scsi_cmnd *scp) in megaraid_abort_handler() argument
2387 adapter = SCP2ADAPTER(scp); in megaraid_abort_handler()
2392 scp->cmnd[0], SCP2CHANNEL(scp), in megaraid_abort_handler()
2393 SCP2TARGET(scp), SCP2LUN(scp))); in megaraid_abort_handler()
2410 if (scb->scp == scp) { // Found command in megaraid_abort_handler()
2418 scp->result = (DID_ABORT << 16); in megaraid_abort_handler()
2419 scp->scsi_done(scp); in megaraid_abort_handler()
2438 if (scb->scp == scp) { // Found command in megaraid_abort_handler()
2448 scp->result = (DID_ABORT << 16); in megaraid_abort_handler()
2449 scp->scsi_done(scp); in megaraid_abort_handler()
2471 if (scb->scp == scp) { in megaraid_abort_handler()
2505 * @scp : reference command
2514 megaraid_reset_handler(struct scsi_cmnd *scp) in megaraid_reset_handler() argument
2527 adapter = SCP2ADAPTER(scp); in megaraid_reset_handler()
2558 if (scb->scp == scp) { // Found command in megaraid_reset_handler()
2568 scb->scp->result = (DID_RESET << 16); in megaraid_reset_handler()
2569 scb->scp->scsi_done(scb->scp); in megaraid_reset_handler()
3305 struct scsi_cmnd *scp; in megaraid_mbox_display_scb() local
3312 scp = scb->scp; in megaraid_mbox_display_scb()
3325 if (!scp) return; in megaraid_mbox_display_scb()
3329 for (i = 0; i < scp->cmd_len; i++) { in megaraid_mbox_display_scb()
3330 con_log(level, ("%#2.02x ", scp->cmnd[i])); in megaraid_mbox_display_scb()
3440 scb->scp = NULL; in megaraid_cmm_register()
3690 scb->scp = NULL; in megaraid_mbox_mm_done()