Lines Matching +full:module +full:- +full:instance

1 // SPDX-License-Identifier: GPL-2.0-only
19 #include <linux/module.h>
38 #define NCR5380_read(reg) in_8(hostdata->io + ((reg) << 4))
39 #define NCR5380_write(reg, value) out_8(hostdata->io + ((reg) << 4), value)
54 static int setup_can_queue = -1;
56 static int setup_cmd_per_lun = -1;
58 static int setup_sg_tablesize = -1;
62 static int setup_hostid = -1;
64 static int setup_toshiba_delay = -1;
67 #ifndef MODULE
95 #endif /* !MODULE */
113 * caused the bus error. Post-increment addressing can't be used.
235 return start - addr; /* Negated to indicate uncertain length */ in mac_pdma_recv()
239 return addr - start; in mac_pdma_recv()
250 return -1; in mac_pdma_send()
255 return -2; in mac_pdma_send()
262 return start - addr - 1; /* Negated to indicate uncertain length */ in mac_pdma_send()
265 return addr - start; in mac_pdma_send()
275 out_be32(hostdata->io + (CTRL_REG << 4), value); in write_ctrl_reg()
290 return -1; in macscsi_wait_for_drq()
295 if (n-- == 0) { in macscsi_wait_for_drq()
296 NCR5380_dprint(NDEBUG_PSEUDO_DMA, hostdata->host); in macscsi_wait_for_drq()
297 dsprintk(NDEBUG_PSEUDO_DMA, hostdata->host, in macscsi_wait_for_drq()
299 return -1; in macscsi_wait_for_drq()
311 u8 __iomem *s = hostdata->pdma_io + (INPUT_DATA_REG << 4); in macscsi_pread()
314 hostdata->pdma_residual = len; in macscsi_pread()
319 if (macintosh_config->ident == MAC_MODEL_IIFX) in macscsi_pread()
323 chunk_bytes = min(hostdata->pdma_residual, 512); in macscsi_pread()
326 if (macintosh_config->ident == MAC_MODEL_IIFX) in macscsi_pread()
331 hostdata->pdma_residual -= bytes; in macscsi_pread()
334 if (hostdata->pdma_residual == 0) in macscsi_pread()
340 NCR5380_dprint(NDEBUG_PSEUDO_DMA, hostdata->host); in macscsi_pread()
341 dsprintk(NDEBUG_PSEUDO_DMA, hostdata->host, in macscsi_pread()
343 __func__, d - dst, len, bytes, chunk_bytes); in macscsi_pread()
349 set_host_byte(hostdata->connected, DID_ERROR); in macscsi_pread()
360 u8 __iomem *d = hostdata->pdma_io + (OUTPUT_DATA_REG << 4); in macscsi_pwrite()
362 hostdata->pdma_residual = len; in macscsi_pwrite()
367 if (macintosh_config->ident == MAC_MODEL_IIFX) in macscsi_pwrite()
371 chunk_bytes = min(hostdata->pdma_residual, 512); in macscsi_pwrite()
374 if (macintosh_config->ident == MAC_MODEL_IIFX) in macscsi_pwrite()
379 hostdata->pdma_residual -= bytes; in macscsi_pwrite()
382 if (hostdata->pdma_residual == 0) in macscsi_pwrite()
388 NCR5380_dprint(NDEBUG_PSEUDO_DMA, hostdata->host); in macscsi_pwrite()
389 dsprintk(NDEBUG_PSEUDO_DMA, hostdata->host, in macscsi_pwrite()
391 __func__, s - src, len, bytes, chunk_bytes); in macscsi_pwrite()
397 set_host_byte(hostdata->connected, DID_ERROR); in macscsi_pwrite()
407 int resid = NCR5380_to_ncmd(cmd)->this_residual; in macscsi_dma_xfer_len()
409 if (hostdata->flags & FLAG_NO_PSEUDO_DMA || resid < setup_use_pdma) in macscsi_dma_xfer_len()
417 return hostdata->pdma_residual; in macscsi_dma_residual()
426 .module = THIS_MODULE,
437 .dma_boundary = PAGE_SIZE - 1,
444 struct Scsi_Host *instance; in mac_scsi_probe() local
452 return -ENODEV; in mac_scsi_probe()
458 if (!hwreg_present((unsigned char *)pio_mem->start + in mac_scsi_probe()
460 pr_info(PFX "no device detected at %pap\n", &pio_mem->start); in mac_scsi_probe()
461 return -ENODEV; in mac_scsi_probe()
473 instance = scsi_host_alloc(&mac_scsi_template, in mac_scsi_probe()
475 if (!instance) in mac_scsi_probe()
476 return -ENOMEM; in mac_scsi_probe()
479 instance->irq = irq->start; in mac_scsi_probe()
481 instance->irq = NO_IRQ; in mac_scsi_probe()
483 hostdata = shost_priv(instance); in mac_scsi_probe()
484 hostdata->base = pio_mem->start; in mac_scsi_probe()
485 hostdata->io = (u8 __iomem *)pio_mem->start; in mac_scsi_probe()
488 hostdata->pdma_io = (u8 __iomem *)pdma_mem->start; in mac_scsi_probe()
494 error = NCR5380_init(instance, host_flags | FLAG_LATE_DMA_SETUP); in mac_scsi_probe()
498 if (instance->irq != NO_IRQ) { in mac_scsi_probe()
499 error = request_irq(instance->irq, macscsi_intr, IRQF_SHARED, in mac_scsi_probe()
500 "NCR5380", instance); in mac_scsi_probe()
505 NCR5380_maybe_reset_bus(instance); in mac_scsi_probe()
507 error = scsi_add_host(instance, NULL); in mac_scsi_probe()
511 platform_set_drvdata(pdev, instance); in mac_scsi_probe()
513 scsi_scan_host(instance); in mac_scsi_probe()
517 if (instance->irq != NO_IRQ) in mac_scsi_probe()
518 free_irq(instance->irq, instance); in mac_scsi_probe()
520 NCR5380_exit(instance); in mac_scsi_probe()
522 scsi_host_put(instance); in mac_scsi_probe()
528 struct Scsi_Host *instance = platform_get_drvdata(pdev); in mac_scsi_remove() local
530 scsi_remove_host(instance); in mac_scsi_remove()
531 if (instance->irq != NO_IRQ) in mac_scsi_remove()
532 free_irq(instance->irq, instance); in mac_scsi_remove()
533 NCR5380_exit(instance); in mac_scsi_remove()
534 scsi_host_put(instance); in mac_scsi_remove()