Lines Matching refs:scb

224 ahd_print_path(struct ahd_softc *ahd, struct scb *scb)  in ahd_print_path()  argument
228 scb != NULL ? SCB_GET_CHANNEL(ahd, scb) : 'X', in ahd_print_path()
229 scb != NULL ? SCB_GET_TARGET(ahd, scb) : -1, in ahd_print_path()
230 scb != NULL ? SCB_GET_LUN(scb) : -1); in ahd_print_path()
354 struct scb *);
531 static void ahd_linux_unmap_scb(struct ahd_softc*, struct scb*);
534 ahd_linux_unmap_scb(struct ahd_softc *ahd, struct scb *scb) in ahd_linux_unmap_scb() argument
538 cmd = scb->io_ctx; in ahd_linux_unmap_scb()
539 ahd_sync_sglist(ahd, scb, BUS_DMASYNC_POSTWRITE); in ahd_linux_unmap_scb()
785 struct scb *reset_scb; in ahd_linux_dev_reset()
1394 ahd_platform_freeze_devq(struct ahd_softc *ahd, struct scb *scb) in ahd_platform_freeze_devq() argument
1396 ahd_platform_abort_scbs(ahd, SCB_GET_TARGET(ahd, scb), in ahd_platform_freeze_devq()
1397 SCB_GET_CHANNEL(ahd, scb), in ahd_platform_freeze_devq()
1398 SCB_GET_LUN(scb), SCB_LIST_NULL, in ahd_platform_freeze_devq()
1558 struct scb *scb; in ahd_linux_run_command() local
1585 if ((scb = ahd_get_scb(ahd, col_idx)) == NULL) { in ahd_linux_run_command()
1592 scb->io_ctx = cmd; in ahd_linux_run_command()
1593 scb->platform_data->dev = dev; in ahd_linux_run_command()
1594 hscb = scb->hscb; in ahd_linux_run_command()
1595 cmd->host_scribble = (char *)scb; in ahd_linux_run_command()
1603 scb->hscb->task_management = 0; in ahd_linux_run_command()
1604 mask = SCB_GET_TARGET_MASK(ahd, scb); in ahd_linux_run_command()
1610 scb->flags |= SCB_PACKETIZED; in ahd_linux_run_command()
1613 scb->flags |= SCB_AUTO_NEGOTIATE; in ahd_linux_run_command()
1614 scb->hscb->control |= MK_MESSAGE; in ahd_linux_run_command()
1630 scb->platform_data->xfer_len = 0; in ahd_linux_run_command()
1631 ahd_set_residual(scb, 0); in ahd_linux_run_command()
1632 ahd_set_sense_residual(scb, 0); in ahd_linux_run_command()
1633 scb->sg_count = 0; in ahd_linux_run_command()
1636 void *sg = scb->sg_list; in ahd_linux_run_command()
1640 scb->platform_data->xfer_len = 0; in ahd_linux_run_command()
1648 scb->platform_data->xfer_len += len; in ahd_linux_run_command()
1649 sg = ahd_sg_setup(ahd, scb, sg, addr, len, in ahd_linux_run_command()
1654 LIST_INSERT_HEAD(&ahd->pending_scbs, scb, pending_links); in ahd_linux_run_command()
1661 scb->flags |= SCB_ACTIVE; in ahd_linux_run_command()
1662 ahd_queue_scb(ahd, scb); in ahd_linux_run_command()
1775 ahd_done(struct ahd_softc *ahd, struct scb *scb) in ahd_done() argument
1780 if ((scb->flags & SCB_ACTIVE) == 0) { in ahd_done()
1781 printk("SCB %d done'd twice\n", SCB_GET_TAG(scb)); in ahd_done()
1785 LIST_REMOVE(scb, pending_links); in ahd_done()
1786 cmd = scb->io_ctx; in ahd_done()
1787 dev = scb->platform_data->dev; in ahd_done()
1794 ahd_linux_unmap_scb(ahd, scb); in ahd_done()
1803 if (ahd_get_transaction_status(scb) == CAM_REQ_INPROG) { in ahd_done()
1807 ahd_get_transfer_length(scb) - ahd_get_residual(scb); in ahd_done()
1808 if ((scb->flags & SCB_TRANSMISSION_ERROR) != 0) { in ahd_done()
1811 ahd_print_path(ahd, scb); in ahd_done()
1815 ahd_set_transaction_status(scb, CAM_UNCOR_PARITY); in ahd_done()
1826 } else if (amount_xferred < scb->io_ctx->underflow) { in ahd_done()
1829 ahd_print_path(ahd, scb); in ahd_done()
1831 for (i = 0; i < scb->io_ctx->cmd_len; i++) in ahd_done()
1832 printk(" 0x%x", scb->io_ctx->cmnd[i]); in ahd_done()
1834 ahd_print_path(ahd, scb); in ahd_done()
1837 ahd_get_residual(scb), in ahd_done()
1838 ahd_get_transfer_length(scb)); in ahd_done()
1839 ahd_set_transaction_status(scb, CAM_DATA_RUN_ERR); in ahd_done()
1842 ahd_set_transaction_status(scb, CAM_REQ_CMP); in ahd_done()
1844 } else if (ahd_get_transaction_status(scb) == CAM_SCSI_STATUS_ERROR) { in ahd_done()
1845 ahd_linux_handle_scsi_status(ahd, cmd->device, scb); in ahd_done()
1849 && ahd_get_transaction_status(scb) == CAM_REQ_CMP in ahd_done()
1850 && ahd_get_scsi_status(scb) != SCSI_STATUS_QUEUE_FULL) in ahd_done()
1867 if ((scb->flags & SCB_RECOVERY_SCB) != 0) { in ahd_done()
1869 if (ahd_get_transaction_status(scb) == CAM_BDR_SENT in ahd_done()
1870 || ahd_get_transaction_status(scb) == CAM_REQ_ABORTED) in ahd_done()
1871 ahd_set_transaction_status(scb, CAM_CMD_TIMEOUT); in ahd_done()
1877 ahd_free_scb(ahd, scb); in ahd_done()
1883 struct scsi_device *sdev, struct scb *scb) in ahd_linux_handle_scsi_status() argument
1904 switch (ahd_get_scsi_status(scb)) { in ahd_linux_handle_scsi_status()
1916 cmd = scb->io_ctx; in ahd_linux_handle_scsi_status()
1917 if ((scb->flags & (SCB_SENSE|SCB_PKT_SENSE)) != 0) { in ahd_linux_handle_scsi_status()
1922 if (scb->flags & SCB_SENSE) { in ahd_linux_handle_scsi_status()
1924 - ahd_get_sense_residual(scb), in ahd_linux_handle_scsi_status()
1933 scb->sense_data; in ahd_linux_handle_scsi_status()
1942 ahd_get_sense_buf(ahd, scb) in ahd_linux_handle_scsi_status()
1981 ahd_print_path(ahd, scb); in ahd_linux_handle_scsi_status()
2000 ahd_print_path(ahd, scb); in ahd_linux_handle_scsi_status()
2008 ahd_set_transaction_status(scb, CAM_REQUEUE_REQ); in ahd_linux_handle_scsi_status()
2009 ahd_set_scsi_status(scb, SCSI_STATUS_OK); in ahd_linux_handle_scsi_status()
2023 ahd_set_scsi_status(scb, SCSI_STATUS_BUSY); in ahd_linux_handle_scsi_status()
2152 struct scb *pending_scb; in ahd_linux_queue_abort_cmd()
2260 struct scb *bus_scb; in ahd_linux_queue_abort_cmd()