diff options
author | Finn Thain <fthain@telegraphics.com.au> | 2017-01-16 02:50:57 +0300 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2017-02-01 05:39:22 +0300 |
commit | 546a4d1812b647fddad58a4416c7a44c27bb0499 (patch) | |
tree | 5af0c9c4319417fa63d4fbcb4a1cfaefa91d2374 | |
parent | b15e791d0c51e778353777b3dd2993ee0a83388e (diff) | |
download | linux-546a4d1812b647fddad58a4416c7a44c27bb0499.tar.xz |
scsi: atari_scsi: Reset DMA during bus reset only under ST-DMA lock
The atari_scsi driver should not access Falcon DMA chip registers unless
it has acquired exclusive access to that chip. If the driver doesn't
have exclusive access then there's no need for a DMA reset as there are
no scsi commands in progress.
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Tested-by: Ondrej Zary <linux@rainbow-software.org>
Tested-by: Michael Schmitz <schmitzmic@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r-- | drivers/scsi/atari_scsi.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/atari_scsi.c b/drivers/scsi/atari_scsi.c index b2ffab6577a6..f792420c533e 100644 --- a/drivers/scsi/atari_scsi.c +++ b/drivers/scsi/atari_scsi.c @@ -682,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; } |