Merge branch 'tmp' into upstream
authorJeff Garzik <jeff@garzik.org>
Tue, 19 Sep 2006 04:25:50 +0000 (00:25 -0400)
committerJeff Garzik <jeff@garzik.org>
Tue, 19 Sep 2006 04:25:50 +0000 (00:25 -0400)
Conflicts:

drivers/ata/libata-sff.c

1  2 
drivers/ata/libata-sff.c

@@@ -991,34 -1009,41 +991,44 @@@ int ata_pci_init_one (struct pci_dev *p
                goto err_out;
        }
  
 -      /* FIXME: Should use platform specific mappers for legacy port ranges */
        if (legacy_mode) {
 -              if (!request_region(0x1f0, 8, "libata")) {
 +              if (!request_region(ATA_PRIMARY_CMD, 8, "libata")) {
                        struct resource *conflict, res;
 -                      res.start = 0x1f0;
 -                      res.end = 0x1f0 + 8 - 1;
 +                      res.start = ATA_PRIMARY_CMD;
 +                      res.end = ATA_PRIMARY_CMD + 8 - 1;
                        conflict = ____request_resource(&ioport_resource, &res);
+                       while (conflict->child)
+                               conflict = ____request_resource(conflict, &res);
                        if (!strcmp(conflict->name, "libata"))
 -                              legacy_mode |= (1 << 0);
 +                              legacy_mode |= ATA_PORT_PRIMARY;
                        else {
                                disable_dev_on_err = 0;
-                               printk(KERN_WARNING "ata: 0x%0X IDE port busy\n", ATA_PRIMARY_CMD);
 -                              printk(KERN_WARNING "ata: 0x1f0 IDE port busy\n" \
 -                                                  "ata: conflict with %s\n", conflict->name);
++                              printk(KERN_WARNING "ata: 0x%0X IDE port busy\n" \
++                                                  "ata: conflict with %s\n",
++                                                  ATA_PRIMARY_CMD,
++                                                  conflict->name);
                        }
                } else
 -                      legacy_mode |= (1 << 0);
 +                      legacy_mode |= ATA_PORT_PRIMARY;
  
 -              if (!request_region(0x170, 8, "libata")) {
 +              if (!request_region(ATA_SECONDARY_CMD, 8, "libata")) {
                        struct resource *conflict, res;
 -                      res.start = 0x170;
 -                      res.end = 0x170 + 8 - 1;
 +                      res.start = ATA_SECONDARY_CMD;
 +                      res.end = ATA_SECONDARY_CMD + 8 - 1;
                        conflict = ____request_resource(&ioport_resource, &res);
+                       while (conflict->child)
+                               conflict = ____request_resource(conflict, &res);
                        if (!strcmp(conflict->name, "libata"))
 -                              legacy_mode |= (1 << 1);
 +                              legacy_mode |= ATA_PORT_SECONDARY;
                        else {
                                disable_dev_on_err = 0;
-                               printk(KERN_WARNING "ata: 0x%X IDE port busy\n", ATA_SECONDARY_CMD);
 -                              printk(KERN_WARNING "ata: 0x170 IDE port busy\n" \
 -                                                  "ata: conflict with %s\n", conflict->name);
++                              printk(KERN_WARNING "ata: 0x%X IDE port busy\n" \
++                                                  "ata: conflict with %s\n",
++                                                  ATA_SECONDARY_CMD,
++                                                  conflict->name);
                        }
                } else
 -                      legacy_mode |= (1 << 1);
 +                      legacy_mode |= ATA_PORT_SECONDARY;
        }
  
        /* we have legacy mode, but all ports are unavailable */