]> Git Repo - linux.git/blobdiff - drivers/scsi/atari_scsi.c
chardev: add helper function to register char devs with a struct device
[linux.git] / drivers / scsi / atari_scsi.c
index 105b35393ce91751d859948595ed70508d90e7d7..f792420c533ecee25036b0c16817eb0db3c564f4 100644 (file)
@@ -178,37 +178,6 @@ static int scsi_dma_is_ignored_buserr(unsigned char dma_stat)
 }
 
 
-#if 0
-/* Dead code... wasn't called anyway :-) and causes some trouble, because at
- * end-of-DMA, both SCSI ints are triggered simultaneously, so the NCR int has
- * to clear the DMA int pending bit before it allows other level 6 interrupts.
- */
-static void scsi_dma_buserr(int irq, void *dummy)
-{
-       unsigned char dma_stat = tt_scsi_dma.dma_ctrl;
-
-       /* Don't do anything if a NCR interrupt is pending. Probably it's just
-        * masked... */
-       if (atari_irq_pending(IRQ_TT_MFP_SCSI))
-               return;
-
-       printk("Bad SCSI DMA interrupt! dma_addr=0x%08lx dma_stat=%02x dma_cnt=%08lx\n",
-              SCSI_DMA_READ_P(dma_addr), dma_stat, SCSI_DMA_READ_P(dma_cnt));
-       if (dma_stat & 0x80) {
-               if (!scsi_dma_is_ignored_buserr(dma_stat))
-                       printk("SCSI DMA bus error -- bad DMA programming!\n");
-       } else {
-               /* Under normal circumstances we never should get to this point,
-                * since both interrupts are triggered simultaneously and the 5380
-                * int has higher priority. When this irq is handled, that DMA
-                * interrupt is cleared. So a warning message is printed here.
-                */
-               printk("SCSI DMA intr ?? -- this shouldn't happen!\n");
-       }
-}
-#endif
-
-
 static irqreturn_t scsi_tt_intr(int irq, void *dev)
 {
        struct Scsi_Host *instance = dev;
@@ -713,7 +682,8 @@ static int atari_scsi_bus_reset(struct scsi_cmnd *cmd)
        if (IS_A_TT()) {
                tt_scsi_dma.dma_ctrl = 0;
        } else {
-               st_dma.dma_mode_status = 0x90;
+               if (stdma_is_locked_by(scsi_falcon_intr))
+                       st_dma.dma_mode_status = 0x90;
                atari_dma_active = 0;
                atari_dma_orig_addr = NULL;
        }
@@ -813,7 +783,7 @@ static int __init atari_scsi_probe(struct platform_device *pdev)
                        return -ENOMEM;
                }
                atari_dma_phys_buffer = atari_stram_to_phys(atari_dma_buffer);
-               atari_dma_orig_addr = 0;
+               atari_dma_orig_addr = NULL;
        }
 
        instance = scsi_host_alloc(&atari_scsi_template,
This page took 0.036244 seconds and 4 git commands to generate.