|
@@ -135,13 +135,6 @@ static u64 pci_size(u64 base, u64 maxbase, u64 mask)
|
|
|
return size;
|
|
|
}
|
|
|
|
|
|
-enum pci_bar_type {
|
|
|
- pci_bar_unknown, /* Standard PCI BAR probe */
|
|
|
- pci_bar_io, /* An io port BAR */
|
|
|
- pci_bar_mem32, /* A 32-bit memory BAR */
|
|
|
- pci_bar_mem64, /* A 64-bit memory BAR */
|
|
|
-};
|
|
|
-
|
|
|
static inline enum pci_bar_type decode_bar(struct resource *res, u32 bar)
|
|
|
{
|
|
|
if ((bar & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO) {
|
|
@@ -156,11 +149,16 @@ static inline enum pci_bar_type decode_bar(struct resource *res, u32 bar)
|
|
|
return pci_bar_mem32;
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * If the type is not unknown, we assume that the lowest bit is 'enable'.
|
|
|
- * Returns 1 if the BAR was 64-bit and 0 if it was 32-bit.
|
|
|
+/**
|
|
|
+ * pci_read_base - read a PCI BAR
|
|
|
+ * @dev: the PCI device
|
|
|
+ * @type: type of the BAR
|
|
|
+ * @res: resource buffer to be filled in
|
|
|
+ * @pos: BAR position in the config space
|
|
|
+ *
|
|
|
+ * Returns 1 if the BAR is 64-bit, or 0 if 32-bit.
|
|
|
*/
|
|
|
-static int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
|
|
|
+int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
|
|
|
struct resource *res, unsigned int pos)
|
|
|
{
|
|
|
u32 l, sz, mask;
|