From fb810d121bceb945c5e576356bccba11cbfad7e3 Mon Sep 17 00:00:00 2001 From: Michael Schmitz Date: Tue, 1 May 2007 22:32:35 +0200 Subject: m68k: Atari SCSI revival SCSI should be working on a TT (but someone should really try!) but causes trouble on a Falcon (as in: it ate a filesystem of mine) at least when used concurrently with IDE. I have the notion it's because locking of the ST-DMA interrupt by IDE is broken in 2.6 (the IDE driver always complains about trying to release an already-released ST-DMA). Needs more work, but that's on the IDE or m68k interrupt side rather than SCSI. Signed-off-by: Michael Schmitz Signed-off-by: Roman Zippel Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds --- drivers/scsi/atari_scsi.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'drivers/scsi/atari_scsi.c') diff --git a/drivers/scsi/atari_scsi.c b/drivers/scsi/atari_scsi.c index 642de7b2b7a..85b8acc9403 100644 --- a/drivers/scsi/atari_scsi.c +++ b/drivers/scsi/atari_scsi.c @@ -395,7 +395,7 @@ static irqreturn_t scsi_tt_intr (int irq, void *dummy) #endif /* REAL_DMA */ - NCR5380_intr (0, 0, 0); + NCR5380_intr(0, 0); #if 0 /* To be sure the int is not masked */ @@ -461,7 +461,7 @@ static irqreturn_t scsi_falcon_intr (int irq, void *dummy) #endif /* REAL_DMA */ - NCR5380_intr (0, 0, 0); + NCR5380_intr(0, 0); return IRQ_HANDLED; } @@ -557,11 +557,11 @@ static void falcon_get_lock( void ) local_irq_save(flags); - while( !in_interrupt() && falcon_got_lock && stdma_others_waiting() ) + while (!in_irq() && falcon_got_lock && stdma_others_waiting()) sleep_on( &falcon_fairness_wait ); while (!falcon_got_lock) { - if (in_interrupt()) + if (in_irq()) panic( "Falcon SCSI hasn't ST-DMA lock in interrupt" ); if (!falcon_trying_lock) { falcon_trying_lock = 1; @@ -763,7 +763,6 @@ int atari_scsi_detect (struct scsi_host_template *host) return( 1 ); } -#ifdef MODULE int atari_scsi_release (struct Scsi_Host *sh) { if (IS_A_TT()) @@ -772,7 +771,6 @@ int atari_scsi_release (struct Scsi_Host *sh) atari_stram_free (atari_dma_buffer); return 1; } -#endif void __init atari_scsi_setup(char *str, int *ints) { -- cgit v1.2.3