pata_radisys: fix checking of DMA state
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 12 Oct 2021 06:27:49 +0000 (08:27 +0200)
committerDamien Le Moal <damien.lemoal@wdc.com>
Tue, 12 Oct 2021 08:47:02 +0000 (17:47 +0900)
Checking if DMA is enabled should be done via the
ata_dma_enabled helper function, since the init state
0xff indicates disabled.
Change based on code review, not tested due to lack of hardware.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
drivers/ata/pata_radisys.c

index 8fde4a8..3aca8fe 100644 (file)
@@ -172,8 +172,8 @@ static unsigned int radisys_qc_issue(struct ata_queued_cmd *qc)
 
        if (adev != ap->private_data) {
                /* UDMA timing is not shared */
-               if (adev->dma_mode < XFER_UDMA_0) {
-                       if (adev->dma_mode)
+               if (adev->dma_mode < XFER_UDMA_0 || !ata_dma_enabled(adev)) {
+                       if (ata_dma_enabled(adev))
                                radisys_set_dmamode(ap, adev);
                        else if (adev->pio_mode)
                                radisys_set_piomode(ap, adev);