Re: [PATCH] fix IDE legacy mode resource
Hello Jeff, Do you have any comments? On Sun, 29 Jul 2007 17:15:44 +0900 Yoichi Yuasa [EMAIL PROTECTED] wrote: On Sat, 28 Jul 2007 14:13:06 -0400 Jeff Garzik [EMAIL PROTECTED] wrote: Yoichi Yuasa wrote: Hi, I got the following error on MIPS Cobalt. MIPS Cobalt has the 0x1000 offset between resource and bus region. PCI: Unable to reserve I/O region #1:[EMAIL PROTECTED] for device :00:09.1 pata_via :00:09.1: failed to request/iomap BARs for port 0 (errno=-16) PCI: Unable to reserve I/O region #3:[EMAIL PROTECTED] for device :00:09.1 pata_via :00:09.1: failed to request/iomap BARs for port 1 (errno=-16) pata_via :00:09.1: no available native port At this point, these resources should be the bus regions. Signed-off-by: Yoichi Yuasa [EMAIL PROTECTED] I'm not sure I understand what's going on here... could you or someone provide additional explanation as to why this is a fix? The legacy mode IDE resources set the following order. pci_setup_device() Legacy mode ATA controllers have fixed addresses. IDE resources: 0x1F0-0x1F7, 0x3F6, 0x170-0x177, 0x376 | V pcibios_fixup_bus() MIPS Cobalt PCI bus have the -0x1000 offset from PCI resources. pcibios_fixup_bus() fix PCI bus regions. 0x1F0 - 0x1000 = 0xF1F0 | V ata_pci_init_one() PCI: Unable to reserve I/O region #1:[EMAIL PROTECTED] for device :00:09.1 In some architectures, PCI bus have the offset from PCI resource. They are adjusted by pcibios_fixup_bus(). For this reason, pci_setup_device() should set PCI bus regions. - To unsubscribe from this list: send the line unsubscribe linux-ide in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] fix IDE legacy mode resource
On Sat, 28 Jul 2007 14:13:06 -0400 Jeff Garzik [EMAIL PROTECTED] wrote: Yoichi Yuasa wrote: Hi, I got the following error on MIPS Cobalt. MIPS Cobalt has the 0x1000 offset between resource and bus region. PCI: Unable to reserve I/O region #1:[EMAIL PROTECTED] for device :00:09.1 pata_via :00:09.1: failed to request/iomap BARs for port 0 (errno=-16) PCI: Unable to reserve I/O region #3:[EMAIL PROTECTED] for device :00:09.1 pata_via :00:09.1: failed to request/iomap BARs for port 1 (errno=-16) pata_via :00:09.1: no available native port At this point, these resources should be the bus regions. Signed-off-by: Yoichi Yuasa [EMAIL PROTECTED] I'm not sure I understand what's going on here... could you or someone provide additional explanation as to why this is a fix? The legacy mode IDE resources set the following order. pci_setup_device() Legacy mode ATA controllers have fixed addresses. IDE resources: 0x1F0-0x1F7, 0x3F6, 0x170-0x177, 0x376 | V pcibios_fixup_bus() MIPS Cobalt PCI bus have the -0x1000 offset from PCI resources. pcibios_fixup_bus() fix PCI bus regions. 0x1F0 - 0x1000 = 0xF1F0 | V ata_pci_init_one() PCI: Unable to reserve I/O region #1:[EMAIL PROTECTED] for device :00:09.1 In some architectures, PCI bus have the offset from PCI resource. They are adjusted by pcibios_fixup_bus(). For this reason, pci_setup_device() should set PCI bus regions. Yoichi - To unsubscribe from this list: send the line unsubscribe linux-ide in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] fix IDE legacy mode resource
Hi, I got the following error on MIPS Cobalt. MIPS Cobalt has the 0x1000 offset between resource and bus region. PCI: Unable to reserve I/O region #1:[EMAIL PROTECTED] for device :00:09.1 pata_via :00:09.1: failed to request/iomap BARs for port 0 (errno=-16) PCI: Unable to reserve I/O region #3:[EMAIL PROTECTED] for device :00:09.1 pata_via :00:09.1: failed to request/iomap BARs for port 1 (errno=-16) pata_via :00:09.1: no available native port At this point, these resources should be the bus regions. Signed-off-by: Yoichi Yuasa [EMAIL PROTECTED] diff -pruN -X generic/Documentation/dontdiff generic-orig/drivers/pci/probe.c generic/drivers/pci/probe.c --- generic-orig/drivers/pci/probe.c2007-07-26 17:07:44.151670750 +0900 +++ generic/drivers/pci/probe.c 2007-07-26 17:25:42.227046250 +0900 @@ -744,22 +744,40 @@ static int pci_setup_device(struct pci_d */ if (class == PCI_CLASS_STORAGE_IDE) { u8 progif; + struct pci_bus_region region; + struct resource resource; pci_read_config_byte(dev, PCI_CLASS_PROG, progif); if ((progif 1) == 0) { - dev-resource[0].start = 0x1F0; - dev-resource[0].end = 0x1F7; - dev-resource[0].flags = LEGACY_IO_RESOURCE; - dev-resource[1].start = 0x3F6; - dev-resource[1].end = 0x3F6; - dev-resource[1].flags = LEGACY_IO_RESOURCE; + resource.start = 0x1F0; + resource.end = 0x1F7; + resource.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) { - dev-resource[2].start = 0x170; - dev-resource[2].end = 0x177; - dev-resource[2].flags = LEGACY_IO_RESOURCE; - dev-resource[3].start = 0x376; - dev-resource[3].end = 0x376; - dev-resource[3].flags = LEGACY_IO_RESOURCE; + resource.start = 0x170; + resource.end = 0x177; + resource.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; - To unsubscribe from this list: send the line unsubscribe linux-ide in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] fix IDE legacy mode resource
Yoichi Yuasa wrote: Hi, I got the following error on MIPS Cobalt. MIPS Cobalt has the 0x1000 offset between resource and bus region. PCI: Unable to reserve I/O region #1:[EMAIL PROTECTED] for device :00:09.1 pata_via :00:09.1: failed to request/iomap BARs for port 0 (errno=-16) PCI: Unable to reserve I/O region #3:[EMAIL PROTECTED] for device :00:09.1 pata_via :00:09.1: failed to request/iomap BARs for port 1 (errno=-16) pata_via :00:09.1: no available native port At this point, these resources should be the bus regions. Signed-off-by: Yoichi Yuasa [EMAIL PROTECTED] I'm not sure I understand what's going on here... could you or someone provide additional explanation as to why this is a fix? Thanks, Jeff - To unsubscribe from this list: send the line unsubscribe linux-ide in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html