]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ide/pci/alim15x3.c
ide: ide_setup_dma() assumes 8 ports
[linux-2.6-omap-h63xx.git] / drivers / ide / pci / alim15x3.c
index a607dd31a64c58a9e23b7677d0702fb24cacd64e..9dd7cb4d07d42efa538e2be706e0e74e4bb6b843 100644 (file)
@@ -402,9 +402,6 @@ static void ali_set_dma_mode(ide_drive_t *drive, const u8 speed)
        u8 tmpbyte              = 0x00;
        int m5229_udma          = (hwif->channel) ? 0x57 : 0x56;
 
-       if (speed < XFER_PIO_0)
-               return;
-
        if (speed == XFER_UDMA_6)
                speed1 = 0x47;
 
@@ -603,6 +600,11 @@ static int ali_cable_override(struct pci_dev *pdev)
            pdev->subsystem_device == 0x10AF)
                return 1;
 
+       /* Mitac 8317 (Winbook-A) and relatives */
+       if (pdev->subsystem_vendor == 0x1071 &&
+           pdev->subsystem_device == 0x8317)
+               return 1;
+
        /* Systems by DMI */
        if (dmi_check_system(cable_dmi_table))
                return 1;
@@ -743,7 +745,7 @@ static void __devinit init_dma_ali15x3 (ide_hwif_t *hwif, unsigned long dmabase)
                return;
        if (!hwif->channel)
                outb(inb(dmabase + 2) & 0x60, dmabase + 2);
-       ide_setup_dma(hwif, dmabase, 8);
+       ide_setup_dma(hwif, dmabase);
 }
 
 static const struct ide_port_info ali15x3_chipset __devinitdata = {