pata_radisys: fix UDMA handling
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Thu, 3 Dec 2009 19:32:13 +0000 (20:32 +0100)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 3 Dec 2009 21:11:24 +0000 (16:11 -0500)
Set correct bits to switch between UDMA2 and UDMA4.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/pata_radisys.c

index 4401b33..4fd25e7 100644 (file)
@@ -139,9 +139,9 @@ static void radisys_set_dmamode (struct ata_port *ap, struct ata_device *adev)
                pci_read_config_byte(dev, 0x4A, &udma_mode);
 
                if (adev->xfer_mode == XFER_UDMA_2)
-                       udma_mode &= ~ (1 << adev->devno);
+                       udma_mode &= ~(2 << (adev->devno * 4));
                else /* UDMA 4 */
-                       udma_mode |= (1 << adev->devno);
+                       udma_mode |= (2 << (adev->devno * 4));
 
                pci_write_config_byte(dev, 0x4A, udma_mode);