mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 12:44:11 +08:00
PCI: Add PCI_STD_NUM_BARS for the number of standard BARs
Code that iterates over all standard PCI BARs typically uses PCI_STD_RESOURCE_END. However, that requires the unusual test "i <= PCI_STD_RESOURCE_END" rather than something the typical "i < PCI_STD_NUM_BARS". Add a definition for PCI_STD_NUM_BARS and change loops to use the more idiomatic C style to help avoid fencepost errors. Link: https://lore.kernel.org/r/20190927234026.23342-1-efremov@linux.com Link: https://lore.kernel.org/r/20190927234308.23935-1-efremov@linux.com Link: https://lore.kernel.org/r/20190916204158.6889-3-efremov@linux.com Signed-off-by: Denis Efremov <efremov@linux.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Sebastian Ott <sebott@linux.ibm.com> # arch/s390/ Acked-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> # video/fbdev/ Acked-by: Gustavo Pimentel <gustavo.pimentel@synopsys.com> # pci/controller/dwc/ Acked-by: Jack Wang <jinpu.wang@cloud.ionos.com> # scsi/pm8001/ Acked-by: Martin K. Petersen <martin.petersen@oracle.com> # scsi/pm8001/ Acked-by: Ulf Hansson <ulf.hansson@linaro.org> # memstick/
This commit is contained in:
parent
7608158df3
commit
c9c13ba428
@ -71,10 +71,10 @@ static int pci_mmap_resource(struct kobject *kobj,
|
||||
struct pci_bus_region bar;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < PCI_ROM_RESOURCE; i++)
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++)
|
||||
if (res == &pdev->resource[i])
|
||||
break;
|
||||
if (i >= PCI_ROM_RESOURCE)
|
||||
if (i >= PCI_STD_NUM_BARS)
|
||||
return -ENODEV;
|
||||
|
||||
if (res->flags & IORESOURCE_MEM && iomem_is_exclusive(res->start))
|
||||
@ -115,7 +115,7 @@ void pci_remove_resource_files(struct pci_dev *pdev)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < PCI_ROM_RESOURCE; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
struct bin_attribute *res_attr;
|
||||
|
||||
res_attr = pdev->res_attr[i];
|
||||
@ -232,7 +232,7 @@ int pci_create_resource_files(struct pci_dev *pdev)
|
||||
int retval;
|
||||
|
||||
/* Expose the PCI resources from this device as files */
|
||||
for (i = 0; i < PCI_ROM_RESOURCE; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
|
||||
/* skip empty resources */
|
||||
if (!pci_resource_len(pdev, i))
|
||||
|
@ -2,9 +2,6 @@
|
||||
#ifndef __ASM_S390_PCI_H
|
||||
#define __ASM_S390_PCI_H
|
||||
|
||||
/* must be set before including pci_clp.h */
|
||||
#define PCI_BAR_COUNT 6
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/iommu.h>
|
||||
@ -138,7 +135,7 @@ struct zpci_dev {
|
||||
|
||||
char res_name[16];
|
||||
bool mio_capable;
|
||||
struct zpci_bar_struct bars[PCI_BAR_COUNT];
|
||||
struct zpci_bar_struct bars[PCI_STD_NUM_BARS];
|
||||
|
||||
u64 start_dma; /* Start of available DMA addresses */
|
||||
u64 end_dma; /* End of available DMA addresses */
|
||||
|
@ -77,7 +77,7 @@ struct mio_info {
|
||||
struct {
|
||||
u64 wb;
|
||||
u64 wt;
|
||||
} addr[PCI_BAR_COUNT];
|
||||
} addr[PCI_STD_NUM_BARS];
|
||||
u32 reserved[6];
|
||||
} __packed;
|
||||
|
||||
@ -98,9 +98,9 @@ struct clp_rsp_query_pci {
|
||||
u16 util_str_avail : 1; /* utility string available? */
|
||||
u16 pfgid : 8; /* pci function group id */
|
||||
u32 fid; /* pci function id */
|
||||
u8 bar_size[PCI_BAR_COUNT];
|
||||
u8 bar_size[PCI_STD_NUM_BARS];
|
||||
u16 pchid;
|
||||
__le32 bar[PCI_BAR_COUNT];
|
||||
__le32 bar[PCI_STD_NUM_BARS];
|
||||
u8 pfip[CLP_PFIP_NR_SEGMENTS]; /* pci function internal path */
|
||||
u32 : 16;
|
||||
u8 fmb_len;
|
||||
|
@ -43,7 +43,7 @@ static DECLARE_BITMAP(zpci_domain, ZPCI_NR_DEVICES);
|
||||
static DEFINE_SPINLOCK(zpci_domain_lock);
|
||||
|
||||
#define ZPCI_IOMAP_ENTRIES \
|
||||
min(((unsigned long) ZPCI_NR_DEVICES * PCI_BAR_COUNT / 2), \
|
||||
min(((unsigned long) ZPCI_NR_DEVICES * PCI_STD_NUM_BARS / 2), \
|
||||
ZPCI_IOMAP_MAX_ENTRIES)
|
||||
|
||||
static DEFINE_SPINLOCK(zpci_iomap_lock);
|
||||
@ -294,7 +294,7 @@ static void __iomem *pci_iomap_range_mio(struct pci_dev *pdev, int bar,
|
||||
void __iomem *pci_iomap_range(struct pci_dev *pdev, int bar,
|
||||
unsigned long offset, unsigned long max)
|
||||
{
|
||||
if (!pci_resource_len(pdev, bar) || bar >= PCI_BAR_COUNT)
|
||||
if (bar >= PCI_STD_NUM_BARS || !pci_resource_len(pdev, bar))
|
||||
return NULL;
|
||||
|
||||
if (static_branch_likely(&have_mio))
|
||||
@ -324,7 +324,7 @@ static void __iomem *pci_iomap_wc_range_mio(struct pci_dev *pdev, int bar,
|
||||
void __iomem *pci_iomap_wc_range(struct pci_dev *pdev, int bar,
|
||||
unsigned long offset, unsigned long max)
|
||||
{
|
||||
if (!pci_resource_len(pdev, bar) || bar >= PCI_BAR_COUNT)
|
||||
if (bar >= PCI_STD_NUM_BARS || !pci_resource_len(pdev, bar))
|
||||
return NULL;
|
||||
|
||||
if (static_branch_likely(&have_mio))
|
||||
@ -416,7 +416,7 @@ static void zpci_map_resources(struct pci_dev *pdev)
|
||||
resource_size_t len;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < PCI_BAR_COUNT; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
len = pci_resource_len(pdev, i);
|
||||
if (!len)
|
||||
continue;
|
||||
@ -451,7 +451,7 @@ static void zpci_unmap_resources(struct pci_dev *pdev)
|
||||
if (zpci_use_mio(zdev))
|
||||
return;
|
||||
|
||||
for (i = 0; i < PCI_BAR_COUNT; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
len = pci_resource_len(pdev, i);
|
||||
if (!len)
|
||||
continue;
|
||||
@ -514,7 +514,7 @@ static int zpci_setup_bus_resources(struct zpci_dev *zdev,
|
||||
snprintf(zdev->res_name, sizeof(zdev->res_name),
|
||||
"PCI Bus %04x:%02x", zdev->domain, ZPCI_BUS_NR);
|
||||
|
||||
for (i = 0; i < PCI_BAR_COUNT; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (!zdev->bars[i].size)
|
||||
continue;
|
||||
entry = zpci_alloc_iomap(zdev);
|
||||
@ -551,7 +551,7 @@ static void zpci_cleanup_bus_resources(struct zpci_dev *zdev)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < PCI_BAR_COUNT; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (!zdev->bars[i].size || !zdev->bars[i].res)
|
||||
continue;
|
||||
|
||||
@ -573,7 +573,7 @@ int pcibios_add_device(struct pci_dev *pdev)
|
||||
pdev->dev.dma_ops = &s390_pci_dma_ops;
|
||||
zpci_map_resources(pdev);
|
||||
|
||||
for (i = 0; i < PCI_BAR_COUNT; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
res = &pdev->resource[i];
|
||||
if (res->parent || !res->flags)
|
||||
continue;
|
||||
|
@ -145,7 +145,7 @@ static int clp_store_query_pci_fn(struct zpci_dev *zdev,
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < PCI_BAR_COUNT; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
zdev->bars[i].val = le32_to_cpu(response->bar[i]);
|
||||
zdev->bars[i].size = response->bar_size[i];
|
||||
}
|
||||
@ -164,8 +164,8 @@ static int clp_store_query_pci_fn(struct zpci_dev *zdev,
|
||||
sizeof(zdev->util_str));
|
||||
}
|
||||
zdev->mio_capable = response->mio_addr_avail;
|
||||
for (i = 0; i < PCI_BAR_COUNT; i++) {
|
||||
if (!(response->mio.valid & (1 << (PCI_BAR_COUNT - i - 1))))
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (!(response->mio.valid & (1 << (PCI_STD_NUM_BARS - i - 1))))
|
||||
continue;
|
||||
|
||||
zdev->bars[i].mio_wb = (void __iomem *) response->mio.addr[i].wb;
|
||||
|
@ -135,7 +135,7 @@ static void pcibios_fixup_device_resources(struct pci_dev *dev)
|
||||
* resource so the kernel doesn't attempt to assign
|
||||
* it later on in pci_assign_unassigned_resources
|
||||
*/
|
||||
for (bar = 0; bar <= PCI_STD_RESOURCE_END; bar++) {
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) {
|
||||
bar_r = &dev->resource[bar];
|
||||
if (bar_r->start == 0 && bar_r->end != 0) {
|
||||
bar_r->flags = 0;
|
||||
|
@ -382,7 +382,7 @@ static void pci_fixed_bar_fixup(struct pci_dev *dev)
|
||||
PCI_DEVFN(2, 2) == dev->devfn)
|
||||
return;
|
||||
|
||||
for (i = 0; i < PCI_ROM_RESOURCE; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
pci_read_config_dword(dev, offset + 8 + (i * 4), &size);
|
||||
dev->resource[i].end = dev->resource[i].start + size - 1;
|
||||
dev->resource[i].flags |= IORESOURCE_PCI_FIXED;
|
||||
|
@ -422,7 +422,7 @@ static int atp867x_ata_pci_sff_init_host(struct ata_host *host)
|
||||
#ifdef ATP867X_DEBUG
|
||||
atp867x_check_res(pdev);
|
||||
|
||||
for (i = 0; i < PCI_ROM_RESOURCE; i++)
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++)
|
||||
printk(KERN_DEBUG "ATP867X: iomap[%d]=0x%llx\n", i,
|
||||
(unsigned long long)(host->iomap[i]));
|
||||
#endif
|
||||
|
@ -2325,7 +2325,7 @@ static int nv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
// Make sure this is a SATA controller by counting the number of bars
|
||||
// (NVIDIA SATA controllers will always have six bars). Otherwise,
|
||||
// it's an IDE controller and we ignore it.
|
||||
for (bar = 0; bar < 6; bar++)
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++)
|
||||
if (pci_resource_start(pdev, bar) == 0)
|
||||
return -ENODEV;
|
||||
|
||||
|
@ -848,7 +848,7 @@ static int jmb38x_ms_count_slots(struct pci_dev *pdev)
|
||||
{
|
||||
int cnt, rc = 0;
|
||||
|
||||
for (cnt = 0; cnt < PCI_ROM_RESOURCE; ++cnt) {
|
||||
for (cnt = 0; cnt < PCI_STD_NUM_BARS; ++cnt) {
|
||||
if (!(IORESOURCE_MEM & pci_resource_flags(pdev, cnt)))
|
||||
break;
|
||||
|
||||
|
@ -94,7 +94,7 @@ enum pci_barno {
|
||||
struct pci_endpoint_test {
|
||||
struct pci_dev *pdev;
|
||||
void __iomem *base;
|
||||
void __iomem *bar[6];
|
||||
void __iomem *bar[PCI_STD_NUM_BARS];
|
||||
struct completion irq_raised;
|
||||
int last_irq;
|
||||
int num_irqs;
|
||||
@ -687,7 +687,7 @@ static int pci_endpoint_test_probe(struct pci_dev *pdev,
|
||||
if (!pci_endpoint_test_request_irq(test))
|
||||
goto err_disable_irq;
|
||||
|
||||
for (bar = BAR_0; bar <= BAR_5; bar++) {
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) {
|
||||
if (pci_resource_flags(pdev, bar) & IORESOURCE_MEM) {
|
||||
base = pci_ioremap_bar(pdev, bar);
|
||||
if (!base) {
|
||||
@ -740,7 +740,7 @@ err_ida_remove:
|
||||
ida_simple_remove(&pci_endpoint_test_ida, id);
|
||||
|
||||
err_iounmap:
|
||||
for (bar = BAR_0; bar <= BAR_5; bar++) {
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) {
|
||||
if (test->bar[bar])
|
||||
pci_iounmap(pdev, test->bar[bar]);
|
||||
}
|
||||
@ -771,7 +771,7 @@ static void pci_endpoint_test_remove(struct pci_dev *pdev)
|
||||
misc_deregister(&test->miscdev);
|
||||
kfree(misc_device->name);
|
||||
ida_simple_remove(&pci_endpoint_test_ida, id);
|
||||
for (bar = BAR_0; bar <= BAR_5; bar++) {
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) {
|
||||
if (test->bar[bar])
|
||||
pci_iounmap(pdev, test->bar[bar]);
|
||||
}
|
||||
|
@ -45,7 +45,6 @@
|
||||
|
||||
#define BAR_0 0
|
||||
#define BAR_1 1
|
||||
#define BAR_5 5
|
||||
|
||||
#define INTEL_E1000_ETHERNET_DEVICE(device_id) {\
|
||||
PCI_DEVICE(PCI_VENDOR_ID_INTEL, device_id)}
|
||||
|
@ -977,7 +977,7 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
goto err_ioremap;
|
||||
|
||||
if (adapter->need_ioport) {
|
||||
for (i = BAR_1; i <= BAR_5; i++) {
|
||||
for (i = BAR_1; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (pci_resource_len(pdev, i) == 0)
|
||||
continue;
|
||||
if (pci_resource_flags(pdev, i) & IORESOURCE_IO) {
|
||||
|
@ -42,7 +42,6 @@
|
||||
|
||||
#define BAR_0 0
|
||||
#define BAR_1 1
|
||||
#define BAR_5 5
|
||||
|
||||
struct ixgb_adapter;
|
||||
#include "ixgb_hw.h"
|
||||
|
@ -412,7 +412,7 @@ ixgb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
goto err_ioremap;
|
||||
}
|
||||
|
||||
for (i = BAR_1; i <= BAR_5; i++) {
|
||||
for (i = BAR_1; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (pci_resource_len(pdev, i) == 0)
|
||||
continue;
|
||||
if (pci_resource_flags(pdev, i) & IORESOURCE_IO) {
|
||||
|
@ -489,7 +489,7 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
|
||||
}
|
||||
|
||||
/* Get the base address of device */
|
||||
for (i = 0; i <= PCI_STD_RESOURCE_END; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (pci_resource_len(pdev, i) == 0)
|
||||
continue;
|
||||
ret = pcim_iomap_regions(pdev, BIT(i), pci_name(pdev));
|
||||
@ -532,7 +532,7 @@ static void stmmac_pci_remove(struct pci_dev *pdev)
|
||||
if (priv->plat->stmmac_clk)
|
||||
clk_unregister_fixed_rate(priv->plat->stmmac_clk);
|
||||
|
||||
for (i = 0; i <= PCI_STD_RESOURCE_END; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (pci_resource_len(pdev, i) == 0)
|
||||
continue;
|
||||
pcim_iounmap_regions(pdev, BIT(i));
|
||||
|
@ -34,7 +34,7 @@ static int xlgmac_probe(struct pci_dev *pcidev, const struct pci_device_id *id)
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i <= PCI_STD_RESOURCE_END; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (pci_resource_len(pcidev, i) == 0)
|
||||
continue;
|
||||
ret = pcim_iomap_regions(pcidev, BIT(i), XLGMAC_DRV_NAME);
|
||||
|
@ -353,7 +353,7 @@ static void dra7xx_pcie_ep_init(struct dw_pcie_ep *ep)
|
||||
struct dra7xx_pcie *dra7xx = to_dra7xx_pcie(pci);
|
||||
enum pci_barno bar;
|
||||
|
||||
for (bar = BAR_0; bar <= BAR_5; bar++)
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++)
|
||||
dw_pcie_ep_reset_bar(pci, bar);
|
||||
|
||||
dra7xx_pcie_enable_wrapper_interrupts(dra7xx);
|
||||
|
@ -58,7 +58,7 @@ static void ls_pcie_ep_init(struct dw_pcie_ep *ep)
|
||||
struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
|
||||
enum pci_barno bar;
|
||||
|
||||
for (bar = BAR_0; bar <= BAR_5; bar++)
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++)
|
||||
dw_pcie_ep_reset_bar(pci, bar);
|
||||
}
|
||||
|
||||
|
@ -422,7 +422,7 @@ static void artpec6_pcie_ep_init(struct dw_pcie_ep *ep)
|
||||
artpec6_pcie_wait_for_phy(artpec6_pcie);
|
||||
artpec6_pcie_set_nfts(artpec6_pcie);
|
||||
|
||||
for (bar = BAR_0; bar <= BAR_5; bar++)
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++)
|
||||
dw_pcie_ep_reset_bar(pci, bar);
|
||||
}
|
||||
|
||||
|
@ -70,7 +70,7 @@ static void dw_plat_pcie_ep_init(struct dw_pcie_ep *ep)
|
||||
struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
|
||||
enum pci_barno bar;
|
||||
|
||||
for (bar = BAR_0; bar <= BAR_5; bar++)
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++)
|
||||
dw_pcie_ep_reset_bar(pci, bar);
|
||||
}
|
||||
|
||||
|
@ -214,7 +214,7 @@ struct dw_pcie_ep {
|
||||
phys_addr_t phys_base;
|
||||
size_t addr_size;
|
||||
size_t page_size;
|
||||
u8 bar_to_atu[6];
|
||||
u8 bar_to_atu[PCI_STD_NUM_BARS];
|
||||
phys_addr_t *outbound_addr;
|
||||
unsigned long *ib_window_map;
|
||||
unsigned long *ob_window_map;
|
||||
|
@ -307,7 +307,7 @@ struct pci_bus_relations {
|
||||
struct pci_q_res_req_response {
|
||||
struct vmpacket_descriptor hdr;
|
||||
s32 status; /* negative values are failures */
|
||||
u32 probed_bar[6];
|
||||
u32 probed_bar[PCI_STD_NUM_BARS];
|
||||
} __packed;
|
||||
|
||||
struct pci_set_power {
|
||||
@ -539,7 +539,7 @@ struct hv_pci_dev {
|
||||
* What would be observed if one wrote 0xFFFFFFFF to a BAR and then
|
||||
* read it back, for each of the BAR offsets within config space.
|
||||
*/
|
||||
u32 probed_bar[6];
|
||||
u32 probed_bar[PCI_STD_NUM_BARS];
|
||||
};
|
||||
|
||||
struct hv_pci_compl {
|
||||
@ -1610,7 +1610,7 @@ static void survey_child_resources(struct hv_pcibus_device *hbus)
|
||||
* so it's sufficient to just add them up without tracking alignment.
|
||||
*/
|
||||
list_for_each_entry(hpdev, &hbus->children, list_entry) {
|
||||
for (i = 0; i < 6; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (hpdev->probed_bar[i] & PCI_BASE_ADDRESS_SPACE_IO)
|
||||
dev_err(&hbus->hdev->device,
|
||||
"There's an I/O BAR in this list!\n");
|
||||
@ -1684,7 +1684,7 @@ static void prepopulate_bars(struct hv_pcibus_device *hbus)
|
||||
/* Pick addresses for the BARs. */
|
||||
do {
|
||||
list_for_each_entry(hpdev, &hbus->children, list_entry) {
|
||||
for (i = 0; i < 6; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
bar_val = hpdev->probed_bar[i];
|
||||
if (bar_val == 0)
|
||||
continue;
|
||||
@ -1841,7 +1841,7 @@ static void q_resource_requirements(void *context, struct pci_response *resp,
|
||||
"query resource requirements failed: %x\n",
|
||||
resp->status);
|
||||
} else {
|
||||
for (i = 0; i < 6; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
completion->hpdev->probed_bar[i] =
|
||||
q_res_req->probed_bar[i];
|
||||
}
|
||||
|
@ -44,7 +44,7 @@
|
||||
static struct workqueue_struct *kpcitest_workqueue;
|
||||
|
||||
struct pci_epf_test {
|
||||
void *reg[6];
|
||||
void *reg[PCI_STD_NUM_BARS];
|
||||
struct pci_epf *epf;
|
||||
enum pci_barno test_reg_bar;
|
||||
struct delayed_work cmd_handler;
|
||||
@ -377,7 +377,7 @@ static void pci_epf_test_unbind(struct pci_epf *epf)
|
||||
|
||||
cancel_delayed_work(&epf_test->cmd_handler);
|
||||
pci_epc_stop(epc);
|
||||
for (bar = BAR_0; bar <= BAR_5; bar++) {
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) {
|
||||
epf_bar = &epf->bar[bar];
|
||||
|
||||
if (epf_test->reg[bar]) {
|
||||
@ -400,7 +400,7 @@ static int pci_epf_test_set_bar(struct pci_epf *epf)
|
||||
|
||||
epc_features = epf_test->epc_features;
|
||||
|
||||
for (bar = BAR_0; bar <= BAR_5; bar += add) {
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar += add) {
|
||||
epf_bar = &epf->bar[bar];
|
||||
/*
|
||||
* pci_epc_set_bar() sets PCI_BASE_ADDRESS_MEM_TYPE_64
|
||||
@ -450,7 +450,7 @@ static int pci_epf_test_alloc_space(struct pci_epf *epf)
|
||||
}
|
||||
epf_test->reg[test_reg_bar] = base;
|
||||
|
||||
for (bar = BAR_0; bar <= BAR_5; bar += add) {
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar += add) {
|
||||
epf_bar = &epf->bar[bar];
|
||||
add = (epf_bar->flags & PCI_BASE_ADDRESS_MEM_TYPE_64) ? 2 : 1;
|
||||
|
||||
@ -478,7 +478,7 @@ static void pci_epf_configure_bar(struct pci_epf *epf,
|
||||
bool bar_fixed_64bit;
|
||||
int i;
|
||||
|
||||
for (i = BAR_0; i <= BAR_5; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
epf_bar = &epf->bar[i];
|
||||
bar_fixed_64bit = !!(epc_features->bar_fixed_64bit & (1 << i));
|
||||
if (bar_fixed_64bit)
|
||||
|
@ -1122,7 +1122,7 @@ static void pci_remove_resource_files(struct pci_dev *pdev)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < PCI_ROM_RESOURCE; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
struct bin_attribute *res_attr;
|
||||
|
||||
res_attr = pdev->res_attr[i];
|
||||
@ -1193,7 +1193,7 @@ static int pci_create_resource_files(struct pci_dev *pdev)
|
||||
int retval;
|
||||
|
||||
/* Expose the PCI resources from this device as files */
|
||||
for (i = 0; i < PCI_ROM_RESOURCE; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
|
||||
/* skip empty resources */
|
||||
if (!pci_resource_len(pdev, i))
|
||||
|
@ -674,7 +674,7 @@ struct resource *pci_find_resource(struct pci_dev *dev, struct resource *res)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < PCI_ROM_RESOURCE; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
struct resource *r = &dev->resource[i];
|
||||
|
||||
if (r->start && resource_contains(r, res))
|
||||
@ -3768,7 +3768,7 @@ void pci_release_selected_regions(struct pci_dev *pdev, int bars)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++)
|
||||
if (bars & (1 << i))
|
||||
pci_release_region(pdev, i);
|
||||
}
|
||||
@ -3779,7 +3779,7 @@ static int __pci_request_selected_regions(struct pci_dev *pdev, int bars,
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++)
|
||||
if (bars & (1 << i))
|
||||
if (__pci_request_region(pdev, i, res_name, excl))
|
||||
goto err_out;
|
||||
@ -3827,7 +3827,7 @@ EXPORT_SYMBOL(pci_request_selected_regions_exclusive);
|
||||
|
||||
void pci_release_regions(struct pci_dev *pdev)
|
||||
{
|
||||
pci_release_selected_regions(pdev, (1 << 6) - 1);
|
||||
pci_release_selected_regions(pdev, (1 << PCI_STD_NUM_BARS) - 1);
|
||||
}
|
||||
EXPORT_SYMBOL(pci_release_regions);
|
||||
|
||||
@ -3846,7 +3846,8 @@ EXPORT_SYMBOL(pci_release_regions);
|
||||
*/
|
||||
int pci_request_regions(struct pci_dev *pdev, const char *res_name)
|
||||
{
|
||||
return pci_request_selected_regions(pdev, ((1 << 6) - 1), res_name);
|
||||
return pci_request_selected_regions(pdev,
|
||||
((1 << PCI_STD_NUM_BARS) - 1), res_name);
|
||||
}
|
||||
EXPORT_SYMBOL(pci_request_regions);
|
||||
|
||||
@ -3868,7 +3869,7 @@ EXPORT_SYMBOL(pci_request_regions);
|
||||
int pci_request_regions_exclusive(struct pci_dev *pdev, const char *res_name)
|
||||
{
|
||||
return pci_request_selected_regions_exclusive(pdev,
|
||||
((1 << 6) - 1), res_name);
|
||||
((1 << PCI_STD_NUM_BARS) - 1), res_name);
|
||||
}
|
||||
EXPORT_SYMBOL(pci_request_regions_exclusive);
|
||||
|
||||
|
@ -258,13 +258,13 @@ static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma)
|
||||
}
|
||||
|
||||
/* Make sure the caller is mapping a real resource for this device */
|
||||
for (i = 0; i < PCI_ROM_RESOURCE; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (dev->resource[i].flags & res_bit &&
|
||||
pci_mmap_fits(dev, i, vma, PCI_MMAP_PROCFS))
|
||||
break;
|
||||
}
|
||||
|
||||
if (i >= PCI_ROM_RESOURCE)
|
||||
if (i >= PCI_STD_NUM_BARS)
|
||||
return -ENODEV;
|
||||
|
||||
if (fpriv->mmap_state == pci_mmap_mem &&
|
||||
|
@ -474,7 +474,7 @@ static void quirk_extend_bar_to_page(struct pci_dev *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i <= PCI_STD_RESOURCE_END; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
struct resource *r = &dev->resource[i];
|
||||
|
||||
if (r->flags & IORESOURCE_MEM && resource_size(r) < PAGE_SIZE) {
|
||||
@ -1809,7 +1809,7 @@ static void quirk_alder_ioapic(struct pci_dev *pdev)
|
||||
* The next five BARs all seem to be rubbish, so just clean
|
||||
* them out.
|
||||
*/
|
||||
for (i = 1; i < 6; i++)
|
||||
for (i = 1; i < PCI_STD_NUM_BARS; i++)
|
||||
memset(&pdev->resource[i], 0, sizeof(pdev->resource[i]));
|
||||
}
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_EESSC, quirk_alder_ioapic);
|
||||
|
@ -2755,7 +2755,7 @@ static int tsi721_probe(struct pci_dev *pdev,
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i <= PCI_STD_RESOURCE_END; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
tsi_debug(INIT, &pdev->dev, "res%d %pR",
|
||||
i, &pdev->resource[i]);
|
||||
}
|
||||
|
@ -1186,7 +1186,7 @@ static void pm8001_hw_chip_rst(struct pm8001_hba_info *pm8001_ha)
|
||||
void pm8001_chip_iounmap(struct pm8001_hba_info *pm8001_ha)
|
||||
{
|
||||
s8 bar, logical = 0;
|
||||
for (bar = 0; bar < 6; bar++) {
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) {
|
||||
/*
|
||||
** logical BARs for SPC:
|
||||
** bar 0 and 1 - logical BAR0
|
||||
|
@ -401,7 +401,7 @@ static int pm8001_ioremap(struct pm8001_hba_info *pm8001_ha)
|
||||
|
||||
pdev = pm8001_ha->pdev;
|
||||
/* map pci mem (PMC pci base 0-3)*/
|
||||
for (bar = 0; bar < 6; bar++) {
|
||||
for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) {
|
||||
/*
|
||||
** logical BARs for SPC:
|
||||
** bar 0 and 1 - logical BAR0
|
||||
|
@ -13,9 +13,6 @@
|
||||
/* The maximum devices per each type. */
|
||||
#define GASKET_DEV_MAX 256
|
||||
|
||||
/* The number of supported (and possible) PCI BARs. */
|
||||
#define GASKET_NUM_BARS 6
|
||||
|
||||
/* The number of supported Gasket page tables per device. */
|
||||
#define GASKET_MAX_NUM_PAGE_TABLES 1
|
||||
|
||||
|
@ -371,7 +371,7 @@ static int gasket_setup_pci(struct pci_dev *pci_dev,
|
||||
{
|
||||
int i, mapped_bars, ret;
|
||||
|
||||
for (i = 0; i < GASKET_NUM_BARS; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
ret = gasket_map_pci_bar(gasket_dev, i);
|
||||
if (ret) {
|
||||
mapped_bars = i;
|
||||
@ -393,7 +393,7 @@ static void gasket_cleanup_pci(struct gasket_dev *gasket_dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < GASKET_NUM_BARS; i++)
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++)
|
||||
gasket_unmap_pci_bar(gasket_dev, i);
|
||||
}
|
||||
|
||||
@ -493,7 +493,7 @@ static ssize_t gasket_sysfs_data_show(struct device *device,
|
||||
(enum gasket_sysfs_attribute_type)gasket_attr->data.attr_type;
|
||||
switch (sysfs_type) {
|
||||
case ATTR_BAR_OFFSETS:
|
||||
for (i = 0; i < GASKET_NUM_BARS; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
bar_desc = &driver_desc->bar_descriptions[i];
|
||||
if (bar_desc->size == 0)
|
||||
continue;
|
||||
@ -505,7 +505,7 @@ static ssize_t gasket_sysfs_data_show(struct device *device,
|
||||
}
|
||||
break;
|
||||
case ATTR_BAR_SIZES:
|
||||
for (i = 0; i < GASKET_NUM_BARS; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
bar_desc = &driver_desc->bar_descriptions[i];
|
||||
if (bar_desc->size == 0)
|
||||
continue;
|
||||
@ -556,7 +556,7 @@ static ssize_t gasket_sysfs_data_show(struct device *device,
|
||||
ret = snprintf(buf, PAGE_SIZE, "%d\n", gasket_dev->reset_count);
|
||||
break;
|
||||
case ATTR_USER_MEM_RANGES:
|
||||
for (i = 0; i < GASKET_NUM_BARS; ++i) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; ++i) {
|
||||
current_written =
|
||||
gasket_write_mappable_regions(buf, driver_desc,
|
||||
i);
|
||||
@ -736,7 +736,7 @@ static int gasket_get_bar_index(const struct gasket_dev *gasket_dev,
|
||||
const struct gasket_driver_desc *driver_desc;
|
||||
|
||||
driver_desc = gasket_dev->internal_desc->driver_desc;
|
||||
for (i = 0; i < GASKET_NUM_BARS; ++i) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; ++i) {
|
||||
struct gasket_bar_desc bar_desc =
|
||||
driver_desc->bar_descriptions[i];
|
||||
|
||||
|
@ -268,7 +268,7 @@ struct gasket_dev {
|
||||
char kobj_name[GASKET_NAME_MAX];
|
||||
|
||||
/* Virtual address of mapped BAR memory range. */
|
||||
struct gasket_bar_data bar_data[GASKET_NUM_BARS];
|
||||
struct gasket_bar_data bar_data[PCI_STD_NUM_BARS];
|
||||
|
||||
/* Coherent buffer. */
|
||||
struct gasket_coherent_buffer coherent_buffer;
|
||||
@ -369,7 +369,7 @@ struct gasket_driver_desc {
|
||||
/* Set of 6 bar descriptions that describe all PCIe bars.
|
||||
* Note that BUS/AXI devices (i.e. non PCI devices) use those.
|
||||
*/
|
||||
struct gasket_bar_desc bar_descriptions[GASKET_NUM_BARS];
|
||||
struct gasket_bar_desc bar_descriptions[PCI_STD_NUM_BARS];
|
||||
|
||||
/*
|
||||
* Coherent buffer description.
|
||||
|
@ -48,8 +48,6 @@ struct f815xxa_data {
|
||||
int idx;
|
||||
};
|
||||
|
||||
#define PCI_NUM_BAR_RESOURCES 6
|
||||
|
||||
struct serial_private {
|
||||
struct pci_dev *dev;
|
||||
unsigned int nr;
|
||||
@ -89,7 +87,7 @@ setup_port(struct serial_private *priv, struct uart_8250_port *port,
|
||||
{
|
||||
struct pci_dev *dev = priv->dev;
|
||||
|
||||
if (bar >= PCI_NUM_BAR_RESOURCES)
|
||||
if (bar >= PCI_STD_NUM_BARS)
|
||||
return -EINVAL;
|
||||
|
||||
if (pci_resource_flags(dev, bar) & IORESOURCE_MEM) {
|
||||
@ -4060,7 +4058,7 @@ serial_pci_guess_board(struct pci_dev *dev, struct pciserial_board *board)
|
||||
return -ENODEV;
|
||||
|
||||
num_iomem = num_port = 0;
|
||||
for (i = 0; i < PCI_NUM_BAR_RESOURCES; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (pci_resource_flags(dev, i) & IORESOURCE_IO) {
|
||||
num_port++;
|
||||
if (first_port == -1)
|
||||
@ -4088,7 +4086,7 @@ serial_pci_guess_board(struct pci_dev *dev, struct pciserial_board *board)
|
||||
*/
|
||||
first_port = -1;
|
||||
num_port = 0;
|
||||
for (i = 0; i < PCI_NUM_BAR_RESOURCES; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
if (pci_resource_flags(dev, i) & IORESOURCE_IO &&
|
||||
pci_resource_len(dev, i) == 8 &&
|
||||
(first_port == -1 || (first_port + num_port) == i)) {
|
||||
|
@ -234,7 +234,7 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
|
||||
/* UHCI */
|
||||
int region;
|
||||
|
||||
for (region = 0; region < PCI_ROM_RESOURCE; region++) {
|
||||
for (region = 0; region < PCI_STD_NUM_BARS; region++) {
|
||||
if (!(pci_resource_flags(dev, region) &
|
||||
IORESOURCE_IO))
|
||||
continue;
|
||||
|
@ -728,7 +728,7 @@ static void quirk_usb_handoff_uhci(struct pci_dev *pdev)
|
||||
if (!pio_enabled(pdev))
|
||||
return;
|
||||
|
||||
for (i = 0; i < PCI_ROM_RESOURCE; i++)
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++)
|
||||
if ((pci_resource_flags(pdev, i) & IORESOURCE_IO)) {
|
||||
base = pci_resource_start(pdev, i);
|
||||
break;
|
||||
|
@ -110,13 +110,15 @@ static inline bool vfio_pci_is_vga(struct pci_dev *pdev)
|
||||
static void vfio_pci_probe_mmaps(struct vfio_pci_device *vdev)
|
||||
{
|
||||
struct resource *res;
|
||||
int bar;
|
||||
int i;
|
||||
struct vfio_pci_dummy_resource *dummy_res;
|
||||
|
||||
INIT_LIST_HEAD(&vdev->dummy_resources_list);
|
||||
|
||||
for (bar = PCI_STD_RESOURCES; bar <= PCI_STD_RESOURCE_END; bar++) {
|
||||
res = vdev->pdev->resource + bar;
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
int bar = i + PCI_STD_RESOURCES;
|
||||
|
||||
res = &vdev->pdev->resource[bar];
|
||||
|
||||
if (!IS_ENABLED(CONFIG_VFIO_PCI_MMAP))
|
||||
goto no_mmap;
|
||||
@ -399,7 +401,8 @@ static void vfio_pci_disable(struct vfio_pci_device *vdev)
|
||||
|
||||
vfio_config_free(vdev);
|
||||
|
||||
for (bar = PCI_STD_RESOURCES; bar <= PCI_STD_RESOURCE_END; bar++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
bar = i + PCI_STD_RESOURCES;
|
||||
if (!vdev->barmap[bar])
|
||||
continue;
|
||||
pci_iounmap(pdev, vdev->barmap[bar]);
|
||||
|
@ -450,30 +450,32 @@ static void vfio_bar_fixup(struct vfio_pci_device *vdev)
|
||||
{
|
||||
struct pci_dev *pdev = vdev->pdev;
|
||||
int i;
|
||||
__le32 *bar;
|
||||
__le32 *vbar;
|
||||
u64 mask;
|
||||
|
||||
bar = (__le32 *)&vdev->vconfig[PCI_BASE_ADDRESS_0];
|
||||
vbar = (__le32 *)&vdev->vconfig[PCI_BASE_ADDRESS_0];
|
||||
|
||||
for (i = PCI_STD_RESOURCES; i <= PCI_STD_RESOURCE_END; i++, bar++) {
|
||||
if (!pci_resource_start(pdev, i)) {
|
||||
*bar = 0; /* Unmapped by host = unimplemented to user */
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++, vbar++) {
|
||||
int bar = i + PCI_STD_RESOURCES;
|
||||
|
||||
if (!pci_resource_start(pdev, bar)) {
|
||||
*vbar = 0; /* Unmapped by host = unimplemented to user */
|
||||
continue;
|
||||
}
|
||||
|
||||
mask = ~(pci_resource_len(pdev, i) - 1);
|
||||
mask = ~(pci_resource_len(pdev, bar) - 1);
|
||||
|
||||
*bar &= cpu_to_le32((u32)mask);
|
||||
*bar |= vfio_generate_bar_flags(pdev, i);
|
||||
*vbar &= cpu_to_le32((u32)mask);
|
||||
*vbar |= vfio_generate_bar_flags(pdev, bar);
|
||||
|
||||
if (*bar & cpu_to_le32(PCI_BASE_ADDRESS_MEM_TYPE_64)) {
|
||||
bar++;
|
||||
*bar &= cpu_to_le32((u32)(mask >> 32));
|
||||
if (*vbar & cpu_to_le32(PCI_BASE_ADDRESS_MEM_TYPE_64)) {
|
||||
vbar++;
|
||||
*vbar &= cpu_to_le32((u32)(mask >> 32));
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
bar = (__le32 *)&vdev->vconfig[PCI_ROM_ADDRESS];
|
||||
vbar = (__le32 *)&vdev->vconfig[PCI_ROM_ADDRESS];
|
||||
|
||||
/*
|
||||
* NB. REGION_INFO will have reported zero size if we weren't able
|
||||
@ -483,14 +485,14 @@ static void vfio_bar_fixup(struct vfio_pci_device *vdev)
|
||||
if (pci_resource_start(pdev, PCI_ROM_RESOURCE)) {
|
||||
mask = ~(pci_resource_len(pdev, PCI_ROM_RESOURCE) - 1);
|
||||
mask |= PCI_ROM_ADDRESS_ENABLE;
|
||||
*bar &= cpu_to_le32((u32)mask);
|
||||
*vbar &= cpu_to_le32((u32)mask);
|
||||
} else if (pdev->resource[PCI_ROM_RESOURCE].flags &
|
||||
IORESOURCE_ROM_SHADOW) {
|
||||
mask = ~(0x20000 - 1);
|
||||
mask |= PCI_ROM_ADDRESS_ENABLE;
|
||||
*bar &= cpu_to_le32((u32)mask);
|
||||
*vbar &= cpu_to_le32((u32)mask);
|
||||
} else
|
||||
*bar = 0;
|
||||
*vbar = 0;
|
||||
|
||||
vdev->bardirty = false;
|
||||
}
|
||||
|
@ -86,8 +86,8 @@ struct vfio_pci_reflck {
|
||||
|
||||
struct vfio_pci_device {
|
||||
struct pci_dev *pdev;
|
||||
void __iomem *barmap[PCI_STD_RESOURCE_END + 1];
|
||||
bool bar_mmap_supported[PCI_STD_RESOURCE_END + 1];
|
||||
void __iomem *barmap[PCI_STD_NUM_BARS];
|
||||
bool bar_mmap_supported[PCI_STD_NUM_BARS];
|
||||
u8 *pci_config_map;
|
||||
u8 *vconfig;
|
||||
struct perm_bits *msi_perm;
|
||||
|
@ -1774,7 +1774,7 @@ int remove_conflicting_pci_framebuffers(struct pci_dev *pdev, int res_id, const
|
||||
int err, idx, bar;
|
||||
bool res_id_found = false;
|
||||
|
||||
for (idx = 0, bar = 0; bar < PCI_ROM_RESOURCE; bar++) {
|
||||
for (idx = 0, bar = 0; bar < PCI_STD_NUM_BARS; bar++) {
|
||||
if (!(pci_resource_flags(pdev, bar) & IORESOURCE_MEM))
|
||||
continue;
|
||||
idx++;
|
||||
@ -1784,7 +1784,7 @@ int remove_conflicting_pci_framebuffers(struct pci_dev *pdev, int res_id, const
|
||||
if (!ap)
|
||||
return -ENOMEM;
|
||||
|
||||
for (idx = 0, bar = 0; bar < PCI_ROM_RESOURCE; bar++) {
|
||||
for (idx = 0, bar = 0; bar < PCI_STD_NUM_BARS; bar++) {
|
||||
if (!(pci_resource_flags(pdev, bar) & IORESOURCE_MEM))
|
||||
continue;
|
||||
ap->ranges[idx].base = pci_resource_start(pdev, bar);
|
||||
|
@ -653,7 +653,7 @@ static void efifb_fixup_resources(struct pci_dev *dev)
|
||||
if (!base)
|
||||
return;
|
||||
|
||||
for (i = 0; i <= PCI_STD_RESOURCE_END; i++) {
|
||||
for (i = 0; i < PCI_STD_NUM_BARS; i++) {
|
||||
struct resource *res = &dev->resource[i];
|
||||
|
||||
if (!(res->flags & IORESOURCE_MEM))
|
||||
|
@ -117,7 +117,7 @@ struct pci_epc_features {
|
||||
unsigned int msix_capable : 1;
|
||||
u8 reserved_bar;
|
||||
u8 bar_fixed_64bit;
|
||||
u64 bar_fixed_size[BAR_5 + 1];
|
||||
u64 bar_fixed_size[PCI_STD_NUM_BARS];
|
||||
size_t align;
|
||||
};
|
||||
|
||||
|
@ -82,7 +82,7 @@ enum pci_mmap_state {
|
||||
enum {
|
||||
/* #0-5: standard PCI resources */
|
||||
PCI_STD_RESOURCES,
|
||||
PCI_STD_RESOURCE_END = 5,
|
||||
PCI_STD_RESOURCE_END = PCI_STD_RESOURCES + PCI_STD_NUM_BARS - 1,
|
||||
|
||||
/* #6: expansion ROM resource */
|
||||
PCI_ROM_RESOURCE,
|
||||
|
@ -34,6 +34,7 @@
|
||||
* of which the first 64 bytes are standardized as follows:
|
||||
*/
|
||||
#define PCI_STD_HEADER_SIZEOF 64
|
||||
#define PCI_STD_NUM_BARS 6 /* Number of standard BARs */
|
||||
#define PCI_VENDOR_ID 0x00 /* 16 bits */
|
||||
#define PCI_DEVICE_ID 0x02 /* 16 bits */
|
||||
#define PCI_COMMAND 0x04 /* 16 bits */
|
||||
|
@ -262,7 +262,7 @@ EXPORT_SYMBOL(devm_ioport_unmap);
|
||||
/*
|
||||
* PCI iomap devres
|
||||
*/
|
||||
#define PCIM_IOMAP_MAX PCI_ROM_RESOURCE
|
||||
#define PCIM_IOMAP_MAX PCI_STD_NUM_BARS
|
||||
|
||||
struct pcim_iomap_devres {
|
||||
void __iomem *table[PCIM_IOMAP_MAX];
|
||||
|
Loading…
Reference in New Issue
Block a user