Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af1bff4f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Revert "PCI: fix IDE legacy mode resources"



This reverts commit fd6e7321, which
helped up things on MIPS, but was wrong for everything else.  As Ralf
Baechle puts it:

  "It seems the whole MIPS resource managment is complicated enough (out
   of necessity) that only a few people actually grok it.  Ioports being
   actually memory mapped on MIPS only makes the confusion worse, sigh."

Requested-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: default avatarAlan Cox <alan@redhat.com>
Acked-by: default avatarRalf Baechle <ralf@linux-mips.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 6d98bda7
Loading
Loading
Loading
Loading
+12 −36
Original line number Original line Diff line number Diff line
@@ -743,46 +743,22 @@ static int pci_setup_device(struct pci_dev * dev)
		 */
		 */
		if (class == PCI_CLASS_STORAGE_IDE) {
		if (class == PCI_CLASS_STORAGE_IDE) {
			u8 progif;
			u8 progif;
			struct pci_bus_region region;

			pci_read_config_byte(dev, PCI_CLASS_PROG, &progif);
			pci_read_config_byte(dev, PCI_CLASS_PROG, &progif);
			if ((progif & 1) == 0) {
			if ((progif & 1) == 0) {
				struct resource resource = {
				dev->resource[0].start = 0x1F0;
					.start = 0x1F0,
				dev->resource[0].end = 0x1F7;
					.end = 0x1F7,
				dev->resource[0].flags = LEGACY_IO_RESOURCE;
					.flags = LEGACY_IO_RESOURCE,
				dev->resource[1].start = 0x3F6;
				};
				dev->resource[1].end = 0x3F6;

				dev->resource[1].flags = LEGACY_IO_RESOURCE;
				pcibios_resource_to_bus(dev, &region, &resource);
				dev->resource[0].start = region.start;
				dev->resource[0].end = region.end;
				dev->resource[0].flags = resource.flags;
				resource.start = 0x3F6;
				resource.end = 0x3F6;
				resource.flags = LEGACY_IO_RESOURCE;
				pcibios_resource_to_bus(dev, &region, &resource);
				dev->resource[1].start = region.start;
				dev->resource[1].end = region.end;
				dev->resource[1].flags = resource.flags;
			}
			}
			if ((progif & 4) == 0) {
			if ((progif & 4) == 0) {
				struct resource resource = {
				dev->resource[2].start = 0x170;
					.start = 0x170,
				dev->resource[2].end = 0x177;
					.end = 0x177,
				dev->resource[2].flags = LEGACY_IO_RESOURCE;
					.flags = LEGACY_IO_RESOURCE,
				dev->resource[3].start = 0x376;
				};
				dev->resource[3].end = 0x376;

				dev->resource[3].flags = LEGACY_IO_RESOURCE;
				pcibios_resource_to_bus(dev, &region, &resource);
				dev->resource[2].start = region.start;
				dev->resource[2].end = region.end;
				dev->resource[2].flags = resource.flags;
				resource.start = 0x376;
				resource.end = 0x376;
				resource.flags = LEGACY_IO_RESOURCE;
				pcibios_resource_to_bus(dev, &region, &resource);
				dev->resource[3].start = region.start;
				dev->resource[3].end = region.end;
				dev->resource[3].flags = resource.flags;
			}
			}
		}
		}
		break;
		break;