• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/scsi/megaraid/

Lines Matching refs:scp

1108 		scb->scp		= NULL;
1306 * @scp : pointer to the scsi command to be executed
1312 megaraid_alloc_scb(adapter_t *adapter, struct scsi_cmnd *scp)
1332 scb->scp = scp;
1356 scb->scp = NULL;
1381 struct scsi_cmnd *scp;
1386 scp = scb->scp;
1390 if (!scp->request_buffer || !scp->request_bufflen)
1393 if (!scp->use_sg) { /* scatter-gather list not used */
1395 page = virt_to_page(scp->request_buffer);
1397 offset = ((unsigned long)scp->request_buffer & ~PAGE_MASK);
1400 scp->request_bufflen,
1410 ccb->sgl64[0].length = scp->request_bufflen;
1415 sgl = (struct scatterlist *)scp->request_buffer;
1418 sgcnt = pci_map_sg(adapter->pdev, sgl, scp->use_sg,
1491 if (!scb->scp->use_sg) { // sg list not used
1494 scb->scp->request_bufflen,
1499 scb->scp->request_buffer,
1500 scb->scp->use_sg, PCI_DMA_TODEVICE);
1519 * @scp : pointer to the scsi command to be executed
1525 megaraid_queue_command(struct scsi_cmnd *scp, void (*done)(struct scsi_cmnd *))
1531 adapter = SCP2ADAPTER(scp);
1532 scp->scsi_done = done;
1533 scp->result = 0;
1544 scb = megaraid_mbox_build_cmd(adapter, scp, &if_busy);
1546 done(scp);
1557 * @scp : mid-layer scsi command pointer
1566 megaraid_mbox_build_cmd(adapter_t *adapter, struct scsi_cmnd *scp, int *busy)
1586 MRAID_GET_DEVICE_MAP(adapter, scp, channel, target, islogical);
1592 switch (scp->cmnd[0]) {
1599 scp->result = (DID_OK << 16);
1603 if (!(scb = megaraid_alloc_scb(adapter, scp))) {
1604 scp->result = (DID_ERROR << 16);
1609 scb->dma_direction = scp->sc_data_direction;
1625 if (scp->use_sg) {
1629 sgl = (struct scatterlist *)scp->request_buffer;
1635 memset(vaddr, 0, scp->cmnd[4]);
1644 memset(scp->request_buffer, 0, scp->cmnd[4]);
1646 scp->result = (DID_OK << 16);
1654 if (!(rdev->last_disp & (1L << SCP2CHANNEL(scp)))) {
1659 SCP2CHANNEL(scp)));
1664 rdev->last_disp |= (1L << SCP2CHANNEL(scp));
1667 if (scp->cmnd[1] & MEGA_SCSI_INQ_EVPD) {
1668 scp->sense_buffer[0] = 0x70;
1669 scp->sense_buffer[2] = ILLEGAL_REQUEST;
1670 scp->sense_buffer[12] = MEGA_INVALID_FIELD_IN_CDB;
1671 scp->result = CHECK_CONDITION << 1;
1682 if (SCP2LUN(scp)) {
1683 scp->result = (DID_BAD_TARGET << 16);
1687 scp->result = (DID_BAD_TARGET << 16);
1693 if (!(scb = megaraid_alloc_scb(adapter, scp))) {
1694 scp->result = (DID_ERROR << 16);
1711 pthru->cdblen = scp->cmd_len;
1712 memcpy(pthru->cdb, scp->cmnd, scp->cmd_len);
1715 scb->dma_direction = scp->sc_data_direction;
1717 pthru->dataxferlen = scp->request_bufflen;
1738 if (!(scb = megaraid_alloc_scb(adapter, scp))) {
1739 scp->result = (DID_ERROR << 16);
1754 mbox->cmd = (scp->cmnd[0] & 0x02) ? MBOXCMD_LWRITE64:
1760 if (scp->cmd_len == 6) {
1761 mbox->numsectors = (uint32_t)scp->cmnd[4];
1763 ((uint32_t)scp->cmnd[1] << 16) |
1764 ((uint32_t)scp->cmnd[2] << 8) |
1765 (uint32_t)scp->cmnd[3];
1773 else if (scp->cmd_len == 10) {
1775 (uint32_t)scp->cmnd[8] |
1776 ((uint32_t)scp->cmnd[7] << 8);
1778 ((uint32_t)scp->cmnd[2] << 24) |
1779 ((uint32_t)scp->cmnd[3] << 16) |
1780 ((uint32_t)scp->cmnd[4] << 8) |
1781 (uint32_t)scp->cmnd[5];
1787 else if (scp->cmd_len == 12) {
1789 ((uint32_t)scp->cmnd[2] << 24) |
1790 ((uint32_t)scp->cmnd[3] << 16) |
1791 ((uint32_t)scp->cmnd[4] << 8) |
1792 (uint32_t)scp->cmnd[5];
1795 ((uint32_t)scp->cmnd[6] << 24) |
1796 ((uint32_t)scp->cmnd[7] << 16) |
1797 ((uint32_t)scp->cmnd[8] << 8) |
1798 (uint32_t)scp->cmnd[9];
1806 scp->result = (DID_ERROR << 16);
1810 scb->dma_direction = scp->sc_data_direction;
1827 scp->result = (DID_BAD_TARGET << 16);
1834 if (!(scb = megaraid_alloc_scb(adapter, scp))) {
1835 scp->result = (DID_ERROR << 16);
1844 ccb->raw_mbox[2] = (scp->cmnd[0] == RESERVE) ?
1848 scb->dma_direction = scp->sc_data_direction;
1853 scp->result = (DID_BAD_TARGET << 16);
1860 if (target > 15 || SCP2LUN(scp) > 7) {
1861 scp->result = (DID_BAD_TARGET << 16);
1869 (SCP2CHANNEL(scp) == adapter->max_channel -1)) {
1880 if (!(rdev->last_disp & (1L << SCP2CHANNEL(scp)))) {
1886 adapter->host->host_no, ss, SCP2CHANNEL(scp),
1892 rdev->last_disp |= (1L << SCP2CHANNEL(scp));
1897 scp->result = (DID_BAD_TARGET << 16);
1902 if (!(scb = megaraid_alloc_scb(adapter, scp))) {
1903 scp->result = (DID_ERROR << 16);
1911 scb->dma_direction = scp->sc_data_direction;
1919 megaraid_mbox_prepare_epthru(adapter, scb, scp);
1928 megaraid_mbox_prepare_pthru(adapter, scb, scp);
2021 * @scp : scsi command from the mid-layer
2027 struct scsi_cmnd *scp)
2045 pthru->logdrv = SCP2LUN(scp);
2047 pthru->cdblen = scp->cmd_len;
2049 memcpy(pthru->cdb, scp->cmnd, scp->cmd_len);
2051 if (scp->request_bufflen) {
2052 pthru->dataxferlen = scp->request_bufflen;
2069 * @scp : scsi command from the mid-layer
2076 struct scsi_cmnd *scp)
2094 epthru->logdrv = SCP2LUN(scp);
2096 epthru->cdblen = scp->cmd_len;
2098 memcpy(epthru->cdb, scp->cmnd, scp->cmd_len);
2100 if (scp->request_bufflen) {
2101 epthru->dataxferlen = scp->request_bufflen;
2273 scb->scp->request_bufflen,
2278 scb->scp->request_bufflen, scb->dma_direction);
2285 scb->scp->request_buffer,
2286 scb->scp->use_sg, PCI_DMA_FROMDEVICE);
2289 pci_unmap_sg(adapter->pdev, scb->scp->request_buffer,
2290 scb->scp->use_sg, scb->dma_direction);
2319 struct scsi_cmnd *scp;
2350 scp = scb->scp;
2360 scb->sno, scb->state, scp));
2385 scp->serial_number, scb->sno));
2396 islogical = MRAID_IS_LOGICAL(adapter, scp);
2397 if (scp->cmnd[0] == INQUIRY && status == 0 && islogical == 0
2400 if (scp->use_sg) {
2402 scp->request_buffer;
2417 c = *(uint8_t *)scp->request_buffer;
2442 scp->result = (DID_OK << 16);
2451 memcpy(scp->sense_buffer, pthru->reqsensearea,
2454 scp->result = DRIVER_SENSE << 24 |
2460 memcpy(scp->sense_buffer,
2463 scp->result = DRIVER_SENSE << 24 |
2467 scp->sense_buffer[0] = 0x70;
2468 scp->sense_buffer[2] = ABORTED_COMMAND;
2469 scp->result = CHECK_CONDITION << 1;
2476 scp->result = DID_BUS_BUSY << 16 | status;
2485 if (scp->cmnd[0] == TEST_UNIT_READY) {
2486 scp->result = DID_ERROR << 16 |
2494 if (status == 1 && (scp->cmnd[0] == RESERVE ||
2495 scp->cmnd[0] == RELEASE)) {
2497 scp->result = DID_ERROR << 16 |
2501 scp->result = DID_BAD_TARGET << 16 | status;
2521 scp->scsi_done(scp);
2530 * @scp : command to be aborted
2536 megaraid_abort_handler(struct scsi_cmnd *scp)
2547 adapter = SCP2ADAPTER(scp);
2552 scp->serial_number, scp->cmnd[0], SCP2CHANNEL(scp),
2553 SCP2TARGET(scp), SCP2LUN(scp)));
2570 if (scb->scp == scp) { // Found command
2576 scp->serial_number, scb->sno,
2579 scp->result = (DID_ABORT << 16);
2580 scp->scsi_done(scp);
2599 if (scb->scp == scp) { // Found command
2607 scp->serial_number, scb->dev_channel,
2610 scp->result = (DID_ABORT << 16);
2611 scp->scsi_done(scp);
2633 if (scb->scp == scp) {
2640 scp->serial_number, scb->sno, scb->dev_channel,
2647 scp->serial_number, scb->sno, scb->dev_channel,
2657 scp->serial_number));
2670 * @scp : reference command
2679 megaraid_reset_handler(struct scsi_cmnd *scp)
2693 adapter = SCP2ADAPTER(scp);
2725 if (scb->scp == scp) { // Found command
2728 scp->serial_number, scb->sno,
2736 scb->scp->result = (DID_RESET << 16);
2737 scb->scp->scsi_done(scb->scp);
3475 struct scsi_cmnd *scp;
3482 scp = scb->scp;
3495 if (!scp) return;
3499 for (i = 0; i < scp->cmd_len; i++) {
3500 con_log(level, ("%#2.02x ", scp->cmnd[i]));
3612 scb->scp = NULL;
3854 scb->scp = NULL;