Skip to content

Commit

Permalink
PCI: Add parent device field to ECAM struct pci_config_window
Browse files Browse the repository at this point in the history
Add a parent device field to struct pci_config_window.  The parent is not
saved now, but will be useful to save it in some cases.  For ACPI on ARM64,
it can be used to setup ACPI companion and domain.

Since the parent dev is in struct pci_config_window now, we need not pass
it to the init function as a separate argument.

Signed-off-by: Jayachandran C <jchandra@broadcom.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
  • Loading branch information
Jayachandran C authored and Bjorn Helgaas committed Jun 10, 2016
1 parent 80955f9 commit 5c3d14f
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 4 deletions.
3 changes: 2 additions & 1 deletion drivers/pci/ecam.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ struct pci_config_window *pci_ecam_create(struct device *dev,
if (!cfg)
return ERR_PTR(-ENOMEM);

cfg->parent = dev;
cfg->ops = ops;
cfg->busr.start = busr->start;
cfg->busr.end = busr->end;
Expand Down Expand Up @@ -94,7 +95,7 @@ struct pci_config_window *pci_ecam_create(struct device *dev,
}

if (ops->init) {
err = ops->init(dev, cfg);
err = ops->init(cfg);
if (err)
goto err_exit;
}
Expand Down
3 changes: 2 additions & 1 deletion drivers/pci/host/pci-thunder-pem.c
Original file line number Diff line number Diff line change
Expand Up @@ -284,8 +284,9 @@ static int thunder_pem_config_write(struct pci_bus *bus, unsigned int devfn,
return pci_generic_config_write(bus, devfn, where, size, val);
}

static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg)
static int thunder_pem_init(struct pci_config_window *cfg)
{
struct device *dev = cfg->parent;
resource_size_t bar4_start;
struct resource *res_pem;
struct thunder_pem_pci *pem_pci;
Expand Down
4 changes: 2 additions & 2 deletions include/linux/pci-ecam.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ struct pci_config_window;
struct pci_ecam_ops {
unsigned int bus_shift;
struct pci_ops pci_ops;
int (*init)(struct device *,
struct pci_config_window *);
int (*init)(struct pci_config_window *);
};

/*
Expand All @@ -45,6 +44,7 @@ struct pci_config_window {
void __iomem *win; /* 64-bit single mapping */
void __iomem **winp; /* 32-bit per-bus mapping */
};
struct device *parent;/* ECAM res was from this dev */
};

/* create and free pci_config_window */
Expand Down

0 comments on commit 5c3d14f

Please sign in to comment.