Messages in this thread Patch in this message | | | Subject | [PATCH] 2.6.14.2 Support for 1K I/O space granularity on the Intel P64H2 | Date | Wed, 23 Nov 2005 13:02:52 -0500 | From | "Yeisley, Dan P." <> |
| |
The Intel P64H2 PCI bridge has the ability to allocate I/O space with 1KB granularity. I've written a patch against 2.6.14.2 to take advantage of this option. I've tested it on the latest Unisys ES7000-600.
Any comments?
--Dan
diff -Naur linux-2.6.14.2/drivers/pci/probe.c linux-2.6.14.2-en1k/drivers/pci/probe.c --- linux-2.6.14.2/drivers/pci/probe.c 2005-11-11 00:33:12.000000000 -0500 +++ linux-2.6.14.2-en1k/drivers/pci/probe.c 2005-11-21 08:52:01.000000000 -0500 @@ -251,8 +251,8 @@ res = child->resource[0]; pci_read_config_byte(dev, PCI_IO_BASE, &io_base_lo); pci_read_config_byte(dev, PCI_IO_LIMIT, &io_limit_lo); - base = (io_base_lo & PCI_IO_RANGE_MASK) << 8; - limit = (io_limit_lo & PCI_IO_RANGE_MASK) << 8; + base = (io_base_lo & (PCI_IO_RANGE_MASK | 0x0c) ) << 8; + limit = (io_limit_lo & (PCI_IO_RANGE_MASK | 0x0c) ) << 8; if ((io_base_lo & PCI_IO_RANGE_TYPE_MASK) == PCI_IO_RANGE_TYPE_32) { u16 io_base_hi, io_limit_hi; @@ -266,6 +266,19 @@ res->flags = (io_base_lo & PCI_IO_RANGE_TYPE_MASK) | IORESOURCE_IO; res->start = base; res->end = limit + 0xfff; + + /* + ** See if the 1k granularity option is enabled on the Intel P64H2 + */ + if (dev->vendor == PCI_VENDOR_ID_INTEL && dev->device == 0x1460) { + u16 en1k; + pci_read_config_word(dev, 0x40, &en1k); + + if(en1k & 0x200) { + res->end = limit + 0x3ff; + printk(KERN_INFO "PCI: Enable I/O Space to 1 KB Granularity\n"); + } + } } res = child->resource[1]; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |