]> err.no Git - linux-2.6/commitdiff
[PATCH] pata_ali: small fixes
authorAlan <alan@lxorguk.ukuu.org.uk>
Mon, 4 Dec 2006 16:36:05 +0000 (16:36 +0000)
committerJeff Garzik <jeff@garzik.org>
Mon, 4 Dec 2006 20:45:51 +0000 (15:45 -0500)
Switch to pci_get_bus_and_slot because some x86 systems seem to be
handing us a device with dev->bus = NULL. Also don't apply the isa fixup
to revision C6 and later of the chip.

Really we need to work out wtf is handing us pdev->bus = NULL, but firstly
and more importantly we need the drivers working.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/ata/pata_ali.c

index d25563794c8da39deb211970e334f4b7fe2b9a7e..c5d61d1911a53624ee50dfe145357c7ff5514dd8 100644 (file)
@@ -34,7 +34,7 @@
 #include <linux/dmi.h>
 
 #define DRV_NAME "pata_ali"
-#define DRV_VERSION "0.7.1"
+#define DRV_VERSION "0.7.2"
 
 /*
  *     Cable special cases
@@ -528,7 +528,7 @@ static void ali_init_chipset(struct pci_dev *pdev)
                pci_read_config_byte(pdev, 0x4B, &tmp);
                pci_write_config_byte(pdev, 0x4B, tmp | 0x08);
        }
-       north = pci_get_slot(pdev->bus, PCI_DEVFN(0,0));
+       north = pci_get_bus_and_slot(0, PCI_DEVFN(0,0));
        isa_bridge = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL);
 
        if (north && north->vendor == PCI_VENDOR_ID_AL && isa_bridge) {
@@ -537,7 +537,7 @@ static void ali_init_chipset(struct pci_dev *pdev)
                pci_read_config_byte(isa_bridge, 0x79, &tmp);
                if (rev == 0xC2)
                        pci_write_config_byte(isa_bridge, 0x79, tmp | 0x04);
-               else if (rev > 0xC2)
+               else if (rev > 0xC2 && rev < 0xC5)
                        pci_write_config_byte(isa_bridge, 0x79, tmp | 0x02);
        }
        if (rev >= 0x20) {