[PATCH -v2 0/3] PCI: Convert maintaining FW-assigned BIOS BAR valuesto a list of temporary entries
From: Myron Stowe
Date: Mon Nov 21 2011 - 13:54:05 EST
In commit 58c84eda075 functionality was introduced that attempts to
reinstate the original, FW-assigned, BAR addresses of a PCI device when
normal resource assignment fails. To keep track of the BIOS BAR
addresses, struct pci_dev was augmented with an array to hold the device's
BAR addresses: 'resource_size_t fw_addr[DEVICE_COUNT_RESOURCE]'.
The reinstatement of BAR addresses is an uncommon event leaving the
'fw_addr' array unused under normal circumstances. As the use of struct
pci_dev is so prevalent, this seems wasteful.
This patch series introduces a stand alone data structure and
corresponding interface routine that is used in converting the
underlying aspects of the existing maintanence scheme to a list of
temporary BIOS BAR value entries.
[v2]
- Simplified list maintenance by adding a routine, and call to such,
to delete the entire list once PCI enumeration is complete (as opposed
to keeping reference counters and deleting entries as the reference
counts go to 0).
- Reinstatement of FW-assigned BAR addresses is currently only
implemented for x86 so I relocated the stand alone data structure and
maintenance routines within an x86 architecture specific file and
introduced a '__weak' attribute generic interface routine -
'pcibios_retrieve_fw_addr()' which returns a failure condition - into
the PCI core that resolves the interface for all other architectures.
---
Myron Stowe (3):
x86/PCI: Convert maintaining FW-assigned BIOS BAR values to use a list
x86/PCI: Infrastructure to maintain a list of FW-assigned BIOS BAR values
PCI: Fix starting basis for resource requests
arch/x86/pci/i386.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++-
drivers/pci/setup-res.c | 36 ++++++++++++++++----
include/linux/pci.h | 2 +
3 files changed, 112 insertions(+), 9 deletions(-)
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/