[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160602101356.GD13962@red-moon>
Date: Thu, 2 Jun 2016 11:13:56 +0100
From: Lorenzo Pieralisi <lorenzo.pieralisi@....com>
To: Tomasz Nowicki <tn@...ihalf.com>
Cc: helgaas@...nel.org, arnd@...db.de, will.deacon@....com,
catalin.marinas@....com, rafael@...nel.org, hanjun.guo@...aro.org,
okaya@...eaurora.org, jchandra@...adcom.com,
robert.richter@...iumnetworks.com, mw@...ihalf.com,
Liviu.Dudau@....com, ddaney@...iumnetworks.com,
wangyijing@...wei.com, Suravee.Suthikulpanit@....com,
msalter@...hat.com, linux-pci@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-acpi@...r.kernel.org,
linux-kernel@...r.kernel.org, linaro-acpi@...ts.linaro.org,
jcm@...hat.com, andrea.gallo@...aro.org, dhdang@....com,
jeremy.linton@....com, liudongdong3@...wei.com, cov@...eaurora.org
Subject: Re: [PATCH V8 2/9] PCI: ecam: Add parent device field to
pci_config_window
On Mon, May 30, 2016 at 05:14:15PM +0200, Tomasz Nowicki wrote:
> From: Jayachandran C <jchandra@...adcom.com>
>
> 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.
> Specifically in case of ACPI for 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 he init function as a separate argument.
Nit: "the init function"
> Signed-off-by: Jayachandran C <jchandra@...adcom.com>
> ---
> drivers/pci/ecam.c | 3 ++-
> drivers/pci/host/pci-thunder-pem.c | 3 ++-
> include/linux/pci-ecam.h | 4 ++--
> 3 files changed, 6 insertions(+), 4 deletions(-)
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@....com>
> diff --git a/drivers/pci/ecam.c b/drivers/pci/ecam.c
> index 820e26b..66e0d71 100644
> --- a/drivers/pci/ecam.c
> +++ b/drivers/pci/ecam.c
> @@ -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;
> @@ -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;
> }
> diff --git a/drivers/pci/host/pci-thunder-pem.c b/drivers/pci/host/pci-thunder-pem.c
> index 5020d3d..91f6fc6 100644
> --- a/drivers/pci/host/pci-thunder-pem.c
> +++ b/drivers/pci/host/pci-thunder-pem.c
> @@ -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;
> diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h
> index 9878beb..7adad20 100644
> --- a/include/linux/pci-ecam.h
> +++ b/include/linux/pci-ecam.h
> @@ -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 *);
> };
>
> /*
> @@ -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 */
> --
> 1.9.1
>
Powered by blists - more mailing lists