Lines Matching refs:instance
271 static void NCR5380_print(struct Scsi_Host *instance) in NCR5380_print() argument
273 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_print()
321 static void NCR5380_print_phase(struct Scsi_Host *instance) in NCR5380_print_phase() argument
323 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_print_phase()
329 shost_printk(KERN_DEBUG, instance, "REQ not asserted, phase unknown.\n"); in NCR5380_print_phase()
334 shost_printk(KERN_DEBUG, instance, "phase %s\n", phases[i].name); in NCR5380_print_phase()
346 static const char *NCR5380_info(struct Scsi_Host *instance) in NCR5380_info() argument
348 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_info()
367 static int NCR5380_init(struct Scsi_Host *instance, int flags) in NCR5380_init() argument
369 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_init()
374 instance->max_lun = 7; in NCR5380_init()
376 hostdata->host = instance; in NCR5380_init()
377 hostdata->id_mask = 1 << instance->this_id; in NCR5380_init()
398 1, instance->host_no); in NCR5380_init()
404 instance->hostt->name, instance->irq, hostdata->io_port, in NCR5380_init()
405 hostdata->base, instance->can_queue, instance->cmd_per_lun, in NCR5380_init()
406 instance->sg_tablesize, instance->this_id, in NCR5380_init()
448 static int NCR5380_maybe_reset_bus(struct Scsi_Host *instance) in NCR5380_maybe_reset_bus() argument
450 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_maybe_reset_bus()
458 shost_printk(KERN_ERR, instance, "SCSI bus busy, waiting up to five seconds\n"); in NCR5380_maybe_reset_bus()
463 shost_printk(KERN_ERR, instance, "bus busy, attempting abort\n"); in NCR5380_maybe_reset_bus()
464 do_abort(instance); in NCR5380_maybe_reset_bus()
467 shost_printk(KERN_ERR, instance, "bus busy, attempting reset\n"); in NCR5380_maybe_reset_bus()
468 do_reset(instance); in NCR5380_maybe_reset_bus()
479 shost_printk(KERN_ERR, instance, "bus locked solid\n"); in NCR5380_maybe_reset_bus()
493 static void NCR5380_exit(struct Scsi_Host *instance) in NCR5380_exit() argument
495 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_exit()
507 static void complete_cmd(struct Scsi_Host *instance, in complete_cmd() argument
510 struct NCR5380_hostdata *hostdata = shost_priv(instance); in complete_cmd()
512 dsprintk(NDEBUG_QUEUES, instance, "complete_cmd: cmd %p\n", cmd); in complete_cmd()
539 static int NCR5380_queue_command(struct Scsi_Host *instance, in NCR5380_queue_command() argument
542 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_queue_command()
550 shost_printk(KERN_DEBUG, instance, "WRITE attempted with NDEBUG_NO_WRITE set\n"); in NCR5380_queue_command()
559 if (!NCR5380_acquire_dma_irq(instance)) in NCR5380_queue_command()
578 dsprintk(NDEBUG_QUEUES, instance, "command %p added to %s of queue\n", in NCR5380_queue_command()
586 static inline void maybe_release_dma_irq(struct Scsi_Host *instance) in maybe_release_dma_irq() argument
588 struct NCR5380_hostdata *hostdata = shost_priv(instance); in maybe_release_dma_irq()
596 NCR5380_release_dma_irq(instance); in maybe_release_dma_irq()
611 static struct scsi_cmnd *dequeue_next_cmd(struct Scsi_Host *instance) in dequeue_next_cmd() argument
613 struct NCR5380_hostdata *hostdata = shost_priv(instance); in dequeue_next_cmd()
620 dsprintk(NDEBUG_QUEUES, instance, "dequeue: cmd=%p target=%d busy=0x%02x lun=%llu\n", in dequeue_next_cmd()
625 dsprintk(NDEBUG_QUEUES, instance, in dequeue_next_cmd()
636 dsprintk(NDEBUG_QUEUES, instance, in dequeue_next_cmd()
645 static void requeue_cmd(struct Scsi_Host *instance, struct scsi_cmnd *cmd) in requeue_cmd() argument
647 struct NCR5380_hostdata *hostdata = shost_priv(instance); in requeue_cmd()
671 struct Scsi_Host *instance = hostdata->host; in NCR5380_main() local
679 struct scsi_cmnd *cmd = dequeue_next_cmd(instance); in NCR5380_main()
684 dsprintk(NDEBUG_MAIN, instance, "main: dequeued %p\n", cmd); in NCR5380_main()
699 if (!NCR5380_select(instance, cmd)) { in NCR5380_main()
700 dsprintk(NDEBUG_MAIN, instance, "main: select complete\n"); in NCR5380_main()
701 maybe_release_dma_irq(instance); in NCR5380_main()
703 dsprintk(NDEBUG_MAIN | NDEBUG_QUEUES, instance, in NCR5380_main()
705 requeue_cmd(instance, cmd); in NCR5380_main()
709 dsprintk(NDEBUG_MAIN, instance, "main: performing information transfer\n"); in NCR5380_main()
710 NCR5380_information_transfer(instance); in NCR5380_main()
727 static void NCR5380_dma_complete(struct Scsi_Host *instance) in NCR5380_dma_complete() argument
729 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_dma_complete()
745 dsprintk(NDEBUG_DMA, instance, "read overrun handled\n"); in NCR5380_dma_complete()
753 instance->host_no); in NCR5380_dma_complete()
759 pr_err("scsi%d: BASR %02x\n", instance->host_no, in NCR5380_dma_complete()
762 instance->host_no); in NCR5380_dma_complete()
785 dsprintk(NDEBUG_DMA, instance, in NCR5380_dma_complete()
793 dsprintk(NDEBUG_DMA, instance, in NCR5380_dma_complete()
795 NCR5380_transfer_pio(instance, &p, &cnt, data); in NCR5380_dma_complete()
838 struct Scsi_Host *instance = dev_id; in NCR5380_intr() local
839 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_intr()
851 dsprintk(NDEBUG_INTR, instance, "IRQ %d, BASR 0x%02x, SR 0x%02x, MR 0x%02x\n", in NCR5380_intr()
860 dsprintk(NDEBUG_INTR, instance, "interrupt in DMA mode\n"); in NCR5380_intr()
863 NCR5380_dma_complete(instance); in NCR5380_intr()
875 dsprintk(NDEBUG_INTR, instance, "interrupt with SEL and IO\n"); in NCR5380_intr()
878 NCR5380_reselect(instance); in NCR5380_intr()
887 dsprintk(NDEBUG_INTR, instance, "unknown interrupt\n"); in NCR5380_intr()
894 dsprintk(NDEBUG_INTR, instance, "interrupt without IRQ bit\n"); in NCR5380_intr()
934 static struct scsi_cmnd *NCR5380_select(struct Scsi_Host *instance, in NCR5380_select() argument
938 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_select()
944 NCR5380_dprint(NDEBUG_ARBITRATION, instance); in NCR5380_select()
945 dsprintk(NDEBUG_ARBITRATION, instance, "starting arbitration, id = %d\n", in NCR5380_select()
946 instance->this_id); in NCR5380_select()
991 shost_printk(KERN_ERR, instance, in NCR5380_select()
1005 dsprintk(NDEBUG_ARBITRATION, instance, "lost arbitration, deasserting MR_ARBITRATE\n"); in NCR5380_select()
1039 dsprintk(NDEBUG_ARBITRATION, instance, "won arbitration\n"); in NCR5380_select()
1095 dsprintk(NDEBUG_SELECTION, instance, "selecting target %d\n", scmd_id(cmd)); in NCR5380_select()
1108 NCR5380_reselect(instance); in NCR5380_select()
1111 shost_printk(KERN_ERR, instance, "reselection after won arbitration?\n"); in NCR5380_select()
1122 complete_cmd(instance, cmd); in NCR5380_select()
1123 dsprintk(NDEBUG_SELECTION, instance, "target did not respond within 250ms\n"); in NCR5380_select()
1151 shost_printk(KERN_ERR, instance, "select: REQ timeout\n"); in NCR5380_select()
1157 do_abort(instance); in NCR5380_select()
1161 dsprintk(NDEBUG_SELECTION, instance, "target %d selected, going into MESSAGE OUT phase.\n", in NCR5380_select()
1163 tmp[0] = IDENTIFY(((instance->irq == NO_IRQ) ? 0 : 1), cmd->device->lun); in NCR5380_select()
1168 NCR5380_transfer_pio(instance, &phase, &len, &data); in NCR5380_select()
1172 complete_cmd(instance, cmd); in NCR5380_select()
1173 dsprintk(NDEBUG_SELECTION, instance, "IDENTIFY message transfer failed\n"); in NCR5380_select()
1178 dsprintk(NDEBUG_SELECTION, instance, "nexus established.\n"); in NCR5380_select()
1223 static int NCR5380_transfer_pio(struct Scsi_Host *instance, in NCR5380_transfer_pio() argument
1227 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_transfer_pio()
1249 dsprintk(NDEBUG_HANDSHAKE, instance, "REQ asserted\n"); in NCR5380_transfer_pio()
1253 dsprintk(NDEBUG_PIO, instance, "phase mismatch\n"); in NCR5380_transfer_pio()
1254 NCR5380_dprint_phase(NDEBUG_PIO, instance); in NCR5380_transfer_pio()
1276 NCR5380_dprint(NDEBUG_PIO, instance); in NCR5380_transfer_pio()
1282 NCR5380_dprint(NDEBUG_PIO, instance); in NCR5380_transfer_pio()
1287 NCR5380_dprint(NDEBUG_PIO, instance); in NCR5380_transfer_pio()
1295 dsprintk(NDEBUG_HANDSHAKE, instance, "REQ negated, handshake complete\n"); in NCR5380_transfer_pio()
1316 dsprintk(NDEBUG_PIO, instance, "residual %d\n", c); in NCR5380_transfer_pio()
1348 static void do_reset(struct Scsi_Host *instance) in do_reset() argument
1350 struct NCR5380_hostdata __maybe_unused *hostdata = shost_priv(instance); in do_reset()
1371 static int do_abort(struct Scsi_Host *instance) in do_abort() argument
1373 struct NCR5380_hostdata *hostdata = shost_priv(instance); in do_abort()
1412 NCR5380_transfer_pio(instance, &phase, &len, &msgptr); in do_abort()
1445 static int NCR5380_transfer_dma(struct Scsi_Host *instance, in NCR5380_transfer_dma() argument
1449 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_transfer_dma()
1470 dsprintk(NDEBUG_DMA, instance, "initializing DMA %s: length %d, address %p\n", in NCR5380_transfer_dma()
1593 shost_printk(KERN_ERR, instance, "PDMA read: DRQ timeout\n"); in NCR5380_transfer_dma()
1598 shost_printk(KERN_ERR, instance, "PDMA read: !REQ timeout\n"); in NCR5380_transfer_dma()
1610 shost_printk(KERN_ERR, instance, "PDMA write: DRQ and phase timeout\n"); in NCR5380_transfer_dma()
1615 NCR5380_dma_complete(instance); in NCR5380_transfer_dma()
1636 static void NCR5380_information_transfer(struct Scsi_Host *instance) in NCR5380_information_transfer() argument
1639 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_information_transfer()
1661 NCR5380_dprint_phase(NDEBUG_INFORMATION, instance); in NCR5380_information_transfer()
1708 shost_printk(KERN_DEBUG, instance, "NDEBUG_NO_DATAOUT set, attempted DATAOUT aborted\n"); in NCR5380_information_transfer()
1710 do_abort(instance); in NCR5380_information_transfer()
1712 complete_cmd(instance, cmd); in NCR5380_information_transfer()
1727 dsprintk(NDEBUG_INFORMATION, instance, "%d bytes and %d buffers left\n", in NCR5380_information_transfer()
1748 if (NCR5380_transfer_dma(instance, &phase, in NCR5380_information_transfer()
1759 do_abort(instance); in NCR5380_information_transfer()
1770 NCR5380_transfer_pio(instance, &phase, &len, in NCR5380_information_transfer()
1782 NCR5380_transfer_pio(instance, &phase, &len, &data); in NCR5380_information_transfer()
1791 dsprintk(NDEBUG_QUEUES, instance, in NCR5380_information_transfer()
1802 complete_cmd(instance, cmd); in NCR5380_information_transfer()
1806 dsprintk(NDEBUG_QUEUES, instance, "autosense: adding cmd %p to tail of autosense queue\n", in NCR5380_information_transfer()
1811 complete_cmd(instance, cmd); in NCR5380_information_transfer()
1823 maybe_release_dma_irq(instance); in NCR5380_information_transfer()
1845 instance, "connected command %p for target %d lun %llu moved to disconnected queue\n", in NCR5380_information_transfer()
1886 dsprintk(NDEBUG_EXTENDED, instance, "receiving extended message\n"); in NCR5380_information_transfer()
1891 NCR5380_transfer_pio(instance, &phase, &len, &data); in NCR5380_information_transfer()
1892 dsprintk(NDEBUG_EXTENDED, instance, "length %d, code 0x%02x\n", in NCR5380_information_transfer()
1904 NCR5380_transfer_pio(instance, &phase, &len, &data); in NCR5380_information_transfer()
1905 dsprintk(NDEBUG_EXTENDED, instance, "message received, residual %d\n", in NCR5380_information_transfer()
1914 shost_printk(KERN_ERR, instance, "error receiving extended message\n"); in NCR5380_information_transfer()
1917 shost_printk(KERN_NOTICE, instance, "extended message code %02x length %d is too long\n", in NCR5380_information_transfer()
1951 NCR5380_transfer_pio(instance, &phase, &len, &data); in NCR5380_information_transfer()
1955 complete_cmd(instance, cmd); in NCR5380_information_transfer()
1956 maybe_release_dma_irq(instance); in NCR5380_information_transfer()
1970 NCR5380_transfer_pio(instance, &phase, &len, &data); in NCR5380_information_transfer()
1975 NCR5380_transfer_pio(instance, &phase, &len, &data); in NCR5380_information_transfer()
1979 shost_printk(KERN_ERR, instance, "unknown phase\n"); in NCR5380_information_transfer()
1980 NCR5380_dprint(NDEBUG_ANY, instance); in NCR5380_information_transfer()
2000 static void NCR5380_reselect(struct Scsi_Host *instance) in NCR5380_reselect() argument
2002 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_reselect()
2018 dsprintk(NDEBUG_RESELECTION, instance, "reselect\n"); in NCR5380_reselect()
2043 do_abort(instance); in NCR5380_reselect()
2059 NCR5380_transfer_pio(instance, &phase, &len, &data); in NCR5380_reselect()
2062 do_abort(instance); in NCR5380_reselect()
2069 shost_printk(KERN_ERR, instance, "expecting IDENTIFY message, got "); in NCR5380_reselect()
2072 do_abort(instance); in NCR5380_reselect()
2101 dsprintk(NDEBUG_RESELECTION | NDEBUG_QUEUES, instance, in NCR5380_reselect()
2104 shost_printk(KERN_ERR, instance, "target bitmask 0x%02x lun %d not in disconnected queue.\n", in NCR5380_reselect()
2110 do_abort(instance); in NCR5380_reselect()
2145 dsprintk(NDEBUG_RESELECTION, instance, "nexus established, target %d, lun %llu\n", in NCR5380_reselect()
2215 struct Scsi_Host *instance = cmd->device->host; in NCR5380_abort() local
2216 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_abort()
2225 NCR5380_dprint(NDEBUG_ANY, instance); in NCR5380_abort()
2226 NCR5380_dprint_phase(NDEBUG_ANY, instance); in NCR5380_abort()
2229 dsprintk(NDEBUG_ABORT, instance, in NCR5380_abort()
2237 dsprintk(NDEBUG_ABORT, instance, in NCR5380_abort()
2241 complete_cmd(instance, cmd); in NCR5380_abort()
2246 dsprintk(NDEBUG_ABORT, instance, in NCR5380_abort()
2252 complete_cmd(instance, cmd); in NCR5380_abort()
2258 dsprintk(NDEBUG_ABORT, instance, "abort: cmd %p is connected\n", cmd); in NCR5380_abort()
2261 if (do_abort(instance)) { in NCR5380_abort()
2263 complete_cmd(instance, cmd); in NCR5380_abort()
2268 complete_cmd(instance, cmd); in NCR5380_abort()
2273 dsprintk(NDEBUG_ABORT, instance, in NCR5380_abort()
2276 complete_cmd(instance, cmd); in NCR5380_abort()
2281 dsprintk(NDEBUG_ABORT, instance, "abort: failed to abort %p\n", cmd); in NCR5380_abort()
2283 dsprintk(NDEBUG_ABORT, instance, "abort: successfully aborted %p\n", cmd); in NCR5380_abort()
2286 maybe_release_dma_irq(instance); in NCR5380_abort()
2302 struct Scsi_Host *instance = cmd->device->host; in NCR5380_host_reset() local
2303 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_host_reset()
2313 NCR5380_dprint(NDEBUG_ANY, instance); in NCR5380_host_reset()
2314 NCR5380_dprint_phase(NDEBUG_ANY, instance); in NCR5380_host_reset()
2316 do_reset(instance); in NCR5380_host_reset()
2336 complete_cmd(instance, hostdata->selecting); in NCR5380_host_reset()
2344 complete_cmd(instance, cmd); in NCR5380_host_reset()
2358 complete_cmd(instance, hostdata->connected); in NCR5380_host_reset()
2367 maybe_release_dma_irq(instance); in NCR5380_host_reset()