Lines Matching refs:instance

297 static void NCR5380_print(struct Scsi_Host *instance)  in NCR5380_print()  argument
299 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_print()
346 static void NCR5380_print_phase(struct Scsi_Host *instance) in NCR5380_print_phase() argument
348 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_print_phase()
354 shost_printk(KERN_DEBUG, instance, "REQ not asserted, phase unknown.\n"); in NCR5380_print_phase()
359 shost_printk(KERN_DEBUG, instance, "phase %s\n", phases[i].name); in NCR5380_print_phase()
371 static const char *NCR5380_info(struct Scsi_Host *instance) in NCR5380_info() argument
373 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_info()
392 static int NCR5380_init(struct Scsi_Host *instance, int flags) in NCR5380_init() argument
394 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_init()
399 instance->max_lun = 7; in NCR5380_init()
401 hostdata->host = instance; in NCR5380_init()
402 hostdata->id_mask = 1 << instance->this_id; in NCR5380_init()
423 1, instance->host_no); in NCR5380_init()
429 instance->hostt->name, instance->irq, hostdata->io_port, in NCR5380_init()
430 hostdata->base, instance->can_queue, instance->cmd_per_lun, in NCR5380_init()
431 instance->sg_tablesize, instance->this_id, in NCR5380_init()
473 static int NCR5380_maybe_reset_bus(struct Scsi_Host *instance) in NCR5380_maybe_reset_bus() argument
475 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_maybe_reset_bus()
483 shost_printk(KERN_ERR, instance, "SCSI bus busy, waiting up to five seconds\n"); in NCR5380_maybe_reset_bus()
488 shost_printk(KERN_ERR, instance, "bus busy, attempting abort\n"); in NCR5380_maybe_reset_bus()
489 do_abort(instance, 1); in NCR5380_maybe_reset_bus()
492 shost_printk(KERN_ERR, instance, "bus busy, attempting reset\n"); in NCR5380_maybe_reset_bus()
493 do_reset(instance); in NCR5380_maybe_reset_bus()
504 shost_printk(KERN_ERR, instance, "bus locked solid\n"); in NCR5380_maybe_reset_bus()
518 static void NCR5380_exit(struct Scsi_Host *instance) in NCR5380_exit() argument
520 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_exit()
532 static void complete_cmd(struct Scsi_Host *instance, in complete_cmd() argument
535 struct NCR5380_hostdata *hostdata = shost_priv(instance); in complete_cmd()
537 dsprintk(NDEBUG_QUEUES, instance, "complete_cmd: cmd %p\n", cmd); in complete_cmd()
563 static int NCR5380_queue_command(struct Scsi_Host *instance, in NCR5380_queue_command() argument
566 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_queue_command()
574 shost_printk(KERN_DEBUG, instance, "WRITE attempted with NDEBUG_NO_WRITE set\n"); in NCR5380_queue_command()
585 if (!NCR5380_acquire_dma_irq(instance)) { in NCR5380_queue_command()
605 dsprintk(NDEBUG_QUEUES, instance, "command %p added to %s of queue\n", in NCR5380_queue_command()
613 static inline void maybe_release_dma_irq(struct Scsi_Host *instance) in maybe_release_dma_irq() argument
615 struct NCR5380_hostdata *hostdata = shost_priv(instance); in maybe_release_dma_irq()
623 NCR5380_release_dma_irq(instance); in maybe_release_dma_irq()
638 static struct scsi_cmnd *dequeue_next_cmd(struct Scsi_Host *instance) in dequeue_next_cmd() argument
640 struct NCR5380_hostdata *hostdata = shost_priv(instance); in dequeue_next_cmd()
647 dsprintk(NDEBUG_QUEUES, instance, "dequeue: cmd=%p target=%d busy=0x%02x lun=%llu\n", in dequeue_next_cmd()
652 dsprintk(NDEBUG_QUEUES, instance, in dequeue_next_cmd()
663 dsprintk(NDEBUG_QUEUES, instance, in dequeue_next_cmd()
672 static void requeue_cmd(struct Scsi_Host *instance, struct scsi_cmnd *cmd) in requeue_cmd() argument
674 struct NCR5380_hostdata *hostdata = shost_priv(instance); in requeue_cmd()
698 struct Scsi_Host *instance = hostdata->host; in NCR5380_main() local
706 struct scsi_cmnd *cmd = dequeue_next_cmd(instance); in NCR5380_main()
711 dsprintk(NDEBUG_MAIN, instance, "main: dequeued %p\n", cmd); in NCR5380_main()
726 if (!NCR5380_select(instance, cmd)) { in NCR5380_main()
727 dsprintk(NDEBUG_MAIN, instance, "main: select complete\n"); in NCR5380_main()
729 dsprintk(NDEBUG_MAIN | NDEBUG_QUEUES, instance, in NCR5380_main()
731 requeue_cmd(instance, cmd); in NCR5380_main()
735 dsprintk(NDEBUG_MAIN, instance, "main: performing information transfer\n"); in NCR5380_main()
736 NCR5380_information_transfer(instance); in NCR5380_main()
741 maybe_release_dma_irq(instance); in NCR5380_main()
757 static void NCR5380_dma_complete(struct Scsi_Host *instance) in NCR5380_dma_complete() argument
759 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_dma_complete()
775 dsprintk(NDEBUG_DMA, instance, "read overrun handled\n"); in NCR5380_dma_complete()
783 instance->host_no); in NCR5380_dma_complete()
789 pr_err("scsi%d: BASR %02x\n", instance->host_no, in NCR5380_dma_complete()
792 instance->host_no); in NCR5380_dma_complete()
815 dsprintk(NDEBUG_DMA, instance, in NCR5380_dma_complete()
823 dsprintk(NDEBUG_DMA, instance, in NCR5380_dma_complete()
825 NCR5380_transfer_pio(instance, &p, &cnt, data, 0); in NCR5380_dma_complete()
868 struct Scsi_Host *instance = dev_id; in NCR5380_intr() local
869 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_intr()
881 dsprintk(NDEBUG_INTR, instance, "IRQ %d, BASR 0x%02x, SR 0x%02x, MR 0x%02x\n", in NCR5380_intr()
890 dsprintk(NDEBUG_INTR, instance, "interrupt in DMA mode\n"); in NCR5380_intr()
893 NCR5380_dma_complete(instance); in NCR5380_intr()
905 dsprintk(NDEBUG_INTR, instance, "interrupt with SEL and IO\n"); in NCR5380_intr()
908 NCR5380_reselect(instance); in NCR5380_intr()
919 shost_printk(KERN_WARNING, instance, in NCR5380_intr()
921 bus_reset_cleanup(instance); in NCR5380_intr()
923 dsprintk(NDEBUG_INTR, instance, "unknown interrupt\n"); in NCR5380_intr()
931 dsprintk(NDEBUG_INTR, instance, "interrupt without IRQ bit\n"); in NCR5380_intr()
967 static bool NCR5380_select(struct Scsi_Host *instance, struct scsi_cmnd *cmd) in NCR5380_select() argument
970 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_select()
976 bool can_disconnect = instance->irq != NO_IRQ && in NCR5380_select()
980 NCR5380_dprint(NDEBUG_ARBITRATION, instance); in NCR5380_select()
981 dsprintk(NDEBUG_ARBITRATION, instance, "starting arbitration, id = %d\n", in NCR5380_select()
982 instance->this_id); in NCR5380_select()
1027 shost_printk(KERN_ERR, instance, in NCR5380_select()
1041 dsprintk(NDEBUG_ARBITRATION, instance, "lost arbitration, deasserting MR_ARBITRATE\n"); in NCR5380_select()
1075 dsprintk(NDEBUG_ARBITRATION, instance, "won arbitration\n"); in NCR5380_select()
1131 dsprintk(NDEBUG_SELECTION, instance, "selecting target %d\n", scmd_id(cmd)); in NCR5380_select()
1144 NCR5380_reselect(instance); in NCR5380_select()
1145 shost_printk(KERN_ERR, instance, "reselection after won arbitration?\n"); in NCR5380_select()
1158 complete_cmd(instance, cmd); in NCR5380_select()
1159 dsprintk(NDEBUG_SELECTION, instance, in NCR5380_select()
1187 shost_printk(KERN_ERR, instance, "select: REQ timeout\n"); in NCR5380_select()
1192 do_abort(instance, 0); in NCR5380_select()
1196 dsprintk(NDEBUG_SELECTION, instance, "target %d selected, going into MESSAGE OUT phase.\n", in NCR5380_select()
1203 NCR5380_transfer_pio(instance, &phase, &len, &data, 0); in NCR5380_select()
1207 complete_cmd(instance, cmd); in NCR5380_select()
1208 dsprintk(NDEBUG_SELECTION, instance, "IDENTIFY message transfer failed\n"); in NCR5380_select()
1213 dsprintk(NDEBUG_SELECTION, instance, "nexus established.\n"); in NCR5380_select()
1259 static int NCR5380_transfer_pio(struct Scsi_Host *instance, in NCR5380_transfer_pio() argument
1263 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_transfer_pio()
1286 dsprintk(NDEBUG_HANDSHAKE, instance, "REQ asserted\n"); in NCR5380_transfer_pio()
1290 dsprintk(NDEBUG_PIO, instance, "phase mismatch\n"); in NCR5380_transfer_pio()
1291 NCR5380_dprint_phase(NDEBUG_PIO, instance); in NCR5380_transfer_pio()
1313 NCR5380_dprint(NDEBUG_PIO, instance); in NCR5380_transfer_pio()
1319 NCR5380_dprint(NDEBUG_PIO, instance); in NCR5380_transfer_pio()
1324 NCR5380_dprint(NDEBUG_PIO, instance); in NCR5380_transfer_pio()
1332 dsprintk(NDEBUG_HANDSHAKE, instance, "REQ negated, handshake complete\n"); in NCR5380_transfer_pio()
1353 dsprintk(NDEBUG_PIO, instance, "residual %d\n", c); in NCR5380_transfer_pio()
1385 static void do_reset(struct Scsi_Host *instance) in do_reset() argument
1387 struct NCR5380_hostdata __maybe_unused *hostdata = shost_priv(instance); in do_reset()
1409 static int do_abort(struct Scsi_Host *instance, unsigned int can_sleep) in do_abort() argument
1411 struct NCR5380_hostdata *hostdata = shost_priv(instance); in do_abort()
1452 NCR5380_transfer_pio(instance, &phase, &len, &msgptr, can_sleep); in do_abort()
1485 static int NCR5380_transfer_dma(struct Scsi_Host *instance, in NCR5380_transfer_dma() argument
1489 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_transfer_dma()
1510 dsprintk(NDEBUG_DMA, instance, "initializing DMA %s: length %d, address %p\n", in NCR5380_transfer_dma()
1633 shost_printk(KERN_ERR, instance, "PDMA read: DRQ timeout\n"); in NCR5380_transfer_dma()
1638 shost_printk(KERN_ERR, instance, "PDMA read: !REQ timeout\n"); in NCR5380_transfer_dma()
1650 shost_printk(KERN_ERR, instance, "PDMA write: DRQ and phase timeout\n"); in NCR5380_transfer_dma()
1655 NCR5380_dma_complete(instance); in NCR5380_transfer_dma()
1676 static void NCR5380_information_transfer(struct Scsi_Host *instance) in NCR5380_information_transfer() argument
1679 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_information_transfer()
1701 NCR5380_dprint_phase(NDEBUG_INFORMATION, instance); in NCR5380_information_transfer()
1743 shost_printk(KERN_DEBUG, instance, "NDEBUG_NO_DATAOUT set, attempted DATAOUT aborted\n"); in NCR5380_information_transfer()
1745 do_abort(instance, 0); in NCR5380_information_transfer()
1747 complete_cmd(instance, cmd); in NCR5380_information_transfer()
1759 dsprintk(NDEBUG_INFORMATION, instance, in NCR5380_information_transfer()
1780 if (NCR5380_transfer_dma(instance, &phase, in NCR5380_information_transfer()
1790 do_reset(instance); in NCR5380_information_transfer()
1791 bus_reset_cleanup(instance); in NCR5380_information_transfer()
1800 NCR5380_transfer_pio(instance, &phase, &len, in NCR5380_information_transfer()
1813 NCR5380_transfer_pio(instance, &phase, &len, &data, 0); in NCR5380_information_transfer()
1824 dsprintk(NDEBUG_QUEUES, instance, in NCR5380_information_transfer()
1836 complete_cmd(instance, cmd); in NCR5380_information_transfer()
1840 dsprintk(NDEBUG_QUEUES, instance, "autosense: adding cmd %p to tail of autosense queue\n", in NCR5380_information_transfer()
1845 complete_cmd(instance, cmd); in NCR5380_information_transfer()
1875 instance, "connected command %p for target %d lun %llu moved to disconnected queue\n", in NCR5380_information_transfer()
1914 dsprintk(NDEBUG_EXTENDED, instance, "receiving extended message\n"); in NCR5380_information_transfer()
1919 NCR5380_transfer_pio(instance, &phase, &len, &data, 1); in NCR5380_information_transfer()
1920 dsprintk(NDEBUG_EXTENDED, instance, "length %d, code 0x%02x\n", in NCR5380_information_transfer()
1932 NCR5380_transfer_pio(instance, &phase, &len, &data, 1); in NCR5380_information_transfer()
1933 dsprintk(NDEBUG_EXTENDED, instance, "message received, residual %d\n", in NCR5380_information_transfer()
1942 shost_printk(KERN_ERR, instance, "error receiving extended message\n"); in NCR5380_information_transfer()
1945 shost_printk(KERN_NOTICE, instance, "extended message code %02x length %d is too long\n", in NCR5380_information_transfer()
1979 NCR5380_transfer_pio(instance, &phase, &len, &data, 0); in NCR5380_information_transfer()
1984 complete_cmd(instance, cmd); in NCR5380_information_transfer()
1997 NCR5380_transfer_pio(instance, &phase, &len, &data, 0); in NCR5380_information_transfer()
2002 NCR5380_transfer_pio(instance, &phase, &len, &data, 0); in NCR5380_information_transfer()
2006 shost_printk(KERN_ERR, instance, "unknown phase\n"); in NCR5380_information_transfer()
2007 NCR5380_dprint(NDEBUG_ANY, instance); in NCR5380_information_transfer()
2027 static void NCR5380_reselect(struct Scsi_Host *instance) in NCR5380_reselect() argument
2029 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_reselect()
2045 shost_printk(KERN_WARNING, instance, in NCR5380_reselect()
2062 shost_printk(KERN_ERR, instance, "reselect: !SEL timeout\n"); in NCR5380_reselect()
2077 shost_printk(KERN_ERR, instance, "reselect: REQ timeout\n"); in NCR5380_reselect()
2078 do_abort(instance, 0); in NCR5380_reselect()
2094 NCR5380_transfer_pio(instance, &phase, &len, &data, 0); in NCR5380_reselect()
2097 do_abort(instance, 0); in NCR5380_reselect()
2104 shost_printk(KERN_ERR, instance, "expecting IDENTIFY message, got "); in NCR5380_reselect()
2107 do_abort(instance, 0); in NCR5380_reselect()
2136 dsprintk(NDEBUG_RESELECTION | NDEBUG_QUEUES, instance, in NCR5380_reselect()
2141 shost_printk(KERN_ERR, instance, "target bitmask 0x%02x lun %d not in disconnected queue.\n", in NCR5380_reselect()
2147 if (do_abort(instance, 0) == 0) in NCR5380_reselect()
2178 dsprintk(NDEBUG_RESELECTION, instance, "nexus established, target %d, lun %llu\n", in NCR5380_reselect()
2248 struct Scsi_Host *instance = cmd->device->host; in NCR5380_abort() local
2249 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_abort()
2258 NCR5380_dprint(NDEBUG_ANY, instance); in NCR5380_abort()
2259 NCR5380_dprint_phase(NDEBUG_ANY, instance); in NCR5380_abort()
2262 dsprintk(NDEBUG_ABORT, instance, in NCR5380_abort()
2270 dsprintk(NDEBUG_ABORT, instance, in NCR5380_abort()
2274 complete_cmd(instance, cmd); in NCR5380_abort()
2279 dsprintk(NDEBUG_ABORT, instance, in NCR5380_abort()
2285 complete_cmd(instance, cmd); in NCR5380_abort()
2291 dsprintk(NDEBUG_ABORT, instance, "abort: cmd %p is connected\n", cmd); in NCR5380_abort()
2294 if (do_abort(instance, 0) < 0) { in NCR5380_abort()
2296 complete_cmd(instance, cmd); in NCR5380_abort()
2301 complete_cmd(instance, cmd); in NCR5380_abort()
2306 dsprintk(NDEBUG_ABORT, instance, in NCR5380_abort()
2308 complete_cmd(instance, cmd); in NCR5380_abort()
2313 dsprintk(NDEBUG_ABORT, instance, "abort: failed to abort %p\n", cmd); in NCR5380_abort()
2316 dsprintk(NDEBUG_ABORT, instance, "abort: successfully aborted %p\n", cmd); in NCR5380_abort()
2326 static void bus_reset_cleanup(struct Scsi_Host *instance) in bus_reset_cleanup() argument
2328 struct NCR5380_hostdata *hostdata = shost_priv(instance); in bus_reset_cleanup()
2345 complete_cmd(instance, hostdata->selecting); in bus_reset_cleanup()
2353 complete_cmd(instance, cmd); in bus_reset_cleanup()
2366 complete_cmd(instance, hostdata->connected); in bus_reset_cleanup()
2386 struct Scsi_Host *instance = cmd->device->host; in NCR5380_host_reset() local
2387 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_host_reset()
2394 shost_printk(KERN_INFO, instance, __func__); in NCR5380_host_reset()
2396 NCR5380_dprint(NDEBUG_ANY, instance); in NCR5380_host_reset()
2397 NCR5380_dprint_phase(NDEBUG_ANY, instance); in NCR5380_host_reset()
2407 do_reset(instance); in NCR5380_host_reset()
2408 bus_reset_cleanup(instance); in NCR5380_host_reset()