diff mbox series

PCI: remove unnecessary check of device_type == pci

Message ID 20180829183440.13601-1-robh@kernel.org
State Accepted
Commit de17c5200237e93a2de1188e5cf885686ac8f79d
Headers show
Series PCI: remove unnecessary check of device_type == pci | expand

Commit Message

Rob Herring Aug. 29, 2018, 6:34 p.m. UTC
PCI host drivers have already matched on compatible strings, so checking
device_type is redundant. Also, device_type is considered deprecated for
FDT though we've still been requiring it for PCI hosts as it is useful
for finding PCI buses.

Cc: Will Deacon <will.deacon@arm.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Alan Douglas <adouglas@cadence.com>
Cc: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: linux-pci@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Rob Herring <robh@kernel.org>

---
 drivers/pci/controller/pci-host-common.c   | 8 --------
 drivers/pci/controller/pcie-cadence-host.c | 7 -------
 drivers/pci/controller/pcie-mobiveil.c     | 7 -------
 drivers/pci/controller/pcie-xilinx-nwl.c   | 9 ---------
 drivers/pci/controller/pcie-xilinx.c       | 7 -------
 5 files changed, 38 deletions(-)

-- 
2.17.1

Comments

Alan Douglas Aug. 30, 2018, 2:33 p.m. UTC | #1
Hi,

On 29 August 2018 19:35, Rob Herring wrote:
> To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

> Cc: linux-kernel@vger.kernel.org; Will Deacon <will.deacon@arm.com>; Bjorn Helgaas <bhelgaas@google.com>; Alan Douglas

> <adouglas@cadence.com>; Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>; Michal Simek <michal.simek@xilinx.com>; linux-

> pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org

> Subject: [PATCH] PCI: remove unnecessary check of device_type == pci

> 

> EXTERNAL MAIL

> 

> 

> PCI host drivers have already matched on compatible strings, so checking

> device_type is redundant. Also, device_type is considered deprecated for

> FDT though we've still been requiring it for PCI hosts as it is useful

> for finding PCI buses.

> 

> Cc: Will Deacon <will.deacon@arm.com>

> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

> Cc: Bjorn Helgaas <bhelgaas@google.com>

> Cc: Alan Douglas <adouglas@cadence.com>

> Cc: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>

> Cc: Michal Simek <michal.simek@xilinx.com>

> Cc: linux-pci@vger.kernel.org

> Cc: linux-arm-kernel@lists.infradead.org

> Signed-off-by: Rob Herring <robh@kernel.org>

> ---

>  drivers/pci/controller/pci-host-common.c   | 8 --------

>  drivers/pci/controller/pcie-cadence-host.c | 7 -------

>  drivers/pci/controller/pcie-mobiveil.c     | 7 -------

>  drivers/pci/controller/pcie-xilinx-nwl.c   | 9 ---------

>  drivers/pci/controller/pcie-xilinx.c       | 7 -------

>  5 files changed, 38 deletions(-)

> 

> diff --git a/drivers/pci/controller/pci-host-common.c b/drivers/pci/controller/pci-host-common.c

> index d8f10451f273..c742881b5061 100644

> --- a/drivers/pci/controller/pci-host-common.c

> +++ b/drivers/pci/controller/pci-host-common.c

> @@ -58,9 +58,7 @@ static struct pci_config_window *gen_pci_init(struct device *dev,

>  int pci_host_common_probe(struct platform_device *pdev,

>  			  struct pci_ecam_ops *ops)

>  {

> -	const char *type;

>  	struct device *dev = &pdev->dev;

> -	struct device_node *np = dev->of_node;

>  	struct pci_host_bridge *bridge;

>  	struct pci_config_window *cfg;

>  	struct list_head resources;

> @@ -70,12 +68,6 @@ int pci_host_common_probe(struct platform_device *pdev,

>  	if (!bridge)

>  		return -ENOMEM;

> 

> -	type = of_get_property(np, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

> -

>  	of_pci_check_probe_only();

> 

>  	/* Parse and map our Configuration Space windows */

> diff --git a/drivers/pci/controller/pcie-cadence-host.c b/drivers/pci/controller/pcie-cadence-host.c

> index ec394f6a19c8..97e251090b4f 100644

> --- a/drivers/pci/controller/pcie-cadence-host.c

> +++ b/drivers/pci/controller/pcie-cadence-host.c

> @@ -235,7 +235,6 @@ static int cdns_pcie_host_init(struct device *dev,

> 

>  static int cdns_pcie_host_probe(struct platform_device *pdev)

>  {

> -	const char *type;

>  	struct device *dev = &pdev->dev;

>  	struct device_node *np = dev->of_node;

>  	struct pci_host_bridge *bridge;

> @@ -268,12 +267,6 @@ static int cdns_pcie_host_probe(struct platform_device *pdev)

>  	rc->device_id = 0xffff;

>  	of_property_read_u16(np, "device-id", &rc->device_id);

> 

> -	type = of_get_property(np, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

> -

>  	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "reg");

>  	pcie->reg_base = devm_ioremap_resource(dev, res);

>  	if (IS_ERR(pcie->reg_base)) {

With regards to drivers/pci/controller/pcie-cadence-host.c
Acked-by: Alan Douglas <adouglas@cadence.com>
Subrahmanya Lingappa Sept. 11, 2018, 7:26 a.m. UTC | #2
Hi,

with regards to : drivers/pci/controller/pcie-mobiveil.c
Acked-by: Subrahmaya Lingappa <l.subrahmanya@mobiveil.co.in>


Thanks.

On Thu, Aug 30, 2018 at 12:04 AM Rob Herring <robh@kernel.org> wrote:
>

> PCI host drivers have already matched on compatible strings, so checking

> device_type is redundant. Also, device_type is considered deprecated for

> FDT though we've still been requiring it for PCI hosts as it is useful

> for finding PCI buses.

>

> Cc: Will Deacon <will.deacon@arm.com>

> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

> Cc: Bjorn Helgaas <bhelgaas@google.com>

> Cc: Alan Douglas <adouglas@cadence.com>

> Cc: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>

> Cc: Michal Simek <michal.simek@xilinx.com>

> Cc: linux-pci@vger.kernel.org

> Cc: linux-arm-kernel@lists.infradead.org

> Signed-off-by: Rob Herring <robh@kernel.org>

> ---

>  drivers/pci/controller/pci-host-common.c   | 8 --------

>  drivers/pci/controller/pcie-cadence-host.c | 7 -------

>  drivers/pci/controller/pcie-mobiveil.c     | 7 -------

>  drivers/pci/controller/pcie-xilinx-nwl.c   | 9 ---------

>  drivers/pci/controller/pcie-xilinx.c       | 7 -------

>  5 files changed, 38 deletions(-)

>

> diff --git a/drivers/pci/controller/pci-host-common.c b/drivers/pci/controller/pci-host-common.c

> index d8f10451f273..c742881b5061 100644

> --- a/drivers/pci/controller/pci-host-common.c

> +++ b/drivers/pci/controller/pci-host-common.c

> @@ -58,9 +58,7 @@ static struct pci_config_window *gen_pci_init(struct device *dev,

>  int pci_host_common_probe(struct platform_device *pdev,

>                           struct pci_ecam_ops *ops)

>  {

> -       const char *type;

>         struct device *dev = &pdev->dev;

> -       struct device_node *np = dev->of_node;

>         struct pci_host_bridge *bridge;

>         struct pci_config_window *cfg;

>         struct list_head resources;

> @@ -70,12 +68,6 @@ int pci_host_common_probe(struct platform_device *pdev,

>         if (!bridge)

>                 return -ENOMEM;

>

> -       type = of_get_property(np, "device_type", NULL);

> -       if (!type || strcmp(type, "pci")) {

> -               dev_err(dev, "invalid \"device_type\" %s\n", type);

> -               return -EINVAL;

> -       }

> -

>         of_pci_check_probe_only();

>

>         /* Parse and map our Configuration Space windows */

> diff --git a/drivers/pci/controller/pcie-cadence-host.c b/drivers/pci/controller/pcie-cadence-host.c

> index ec394f6a19c8..97e251090b4f 100644

> --- a/drivers/pci/controller/pcie-cadence-host.c

> +++ b/drivers/pci/controller/pcie-cadence-host.c

> @@ -235,7 +235,6 @@ static int cdns_pcie_host_init(struct device *dev,

>

>  static int cdns_pcie_host_probe(struct platform_device *pdev)

>  {

> -       const char *type;

>         struct device *dev = &pdev->dev;

>         struct device_node *np = dev->of_node;

>         struct pci_host_bridge *bridge;

> @@ -268,12 +267,6 @@ static int cdns_pcie_host_probe(struct platform_device *pdev)

>         rc->device_id = 0xffff;

>         of_property_read_u16(np, "device-id", &rc->device_id);

>

> -       type = of_get_property(np, "device_type", NULL);

> -       if (!type || strcmp(type, "pci")) {

> -               dev_err(dev, "invalid \"device_type\" %s\n", type);

> -               return -EINVAL;

> -       }

> -

>         res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "reg");

>         pcie->reg_base = devm_ioremap_resource(dev, res);

>         if (IS_ERR(pcie->reg_base)) {

> diff --git a/drivers/pci/controller/pcie-mobiveil.c b/drivers/pci/controller/pcie-mobiveil.c

> index a939e8d31735..77052a0712d0 100644

> --- a/drivers/pci/controller/pcie-mobiveil.c

> +++ b/drivers/pci/controller/pcie-mobiveil.c

> @@ -301,13 +301,6 @@ static int mobiveil_pcie_parse_dt(struct mobiveil_pcie *pcie)

>         struct platform_device *pdev = pcie->pdev;

>         struct device_node *node = dev->of_node;

>         struct resource *res;

> -       const char *type;

> -

> -       type = of_get_property(node, "device_type", NULL);

> -       if (!type || strcmp(type, "pci")) {

> -               dev_err(dev, "invalid \"device_type\" %s\n", type);

> -               return -EINVAL;

> -       }

>

>         /* map config resource */

>         res = platform_get_resource_byname(pdev, IORESOURCE_MEM,

> diff --git a/drivers/pci/controller/pcie-xilinx-nwl.c b/drivers/pci/controller/pcie-xilinx-nwl.c

> index fb32840ce8e6..81538d77f790 100644

> --- a/drivers/pci/controller/pcie-xilinx-nwl.c

> +++ b/drivers/pci/controller/pcie-xilinx-nwl.c

> @@ -777,16 +777,7 @@ static int nwl_pcie_parse_dt(struct nwl_pcie *pcie,

>                              struct platform_device *pdev)

>  {

>         struct device *dev = pcie->dev;

> -       struct device_node *node = dev->of_node;

>         struct resource *res;

> -       const char *type;

> -

> -       /* Check for device type */

> -       type = of_get_property(node, "device_type", NULL);

> -       if (!type || strcmp(type, "pci")) {

> -               dev_err(dev, "invalid \"device_type\" %s\n", type);

> -               return -EINVAL;

> -       }

>

>         res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "breg");

>         pcie->breg_base = devm_ioremap_resource(dev, res);

> diff --git a/drivers/pci/controller/pcie-xilinx.c b/drivers/pci/controller/pcie-xilinx.c

> index 7b1389d8e2a5..9bd1a35cd5d8 100644

> --- a/drivers/pci/controller/pcie-xilinx.c

> +++ b/drivers/pci/controller/pcie-xilinx.c

> @@ -574,15 +574,8 @@ static int xilinx_pcie_parse_dt(struct xilinx_pcie_port *port)

>         struct device *dev = port->dev;

>         struct device_node *node = dev->of_node;

>         struct resource regs;

> -       const char *type;

>         int err;

>

> -       type = of_get_property(node, "device_type", NULL);

> -       if (!type || strcmp(type, "pci")) {

> -               dev_err(dev, "invalid \"device_type\" %s\n", type);

> -               return -EINVAL;

> -       }

> -

>         err = of_address_to_resource(node, 0, &regs);

>         if (err) {

>                 dev_err(dev, "missing \"reg\" property\n");

> --

> 2.17.1

>
Lorenzo Pieralisi Sept. 13, 2018, 2:51 p.m. UTC | #3
On Wed, Aug 29, 2018 at 01:34:40PM -0500, Rob Herring wrote:
> PCI host drivers have already matched on compatible strings, so checking

> device_type is redundant. Also, device_type is considered deprecated for

> FDT though we've still been requiring it for PCI hosts as it is useful

> for finding PCI buses.


Hi Rob,

I have no problem with the patch per-se, I can't parse though the second
paragraph, in particular what you mean by "useful for finding PCI
buses".

What about the corresponding dts files ? I suspect we had better leave
them alone lest we can trigger regressions with new dts and older
kernels.

Thanks,
Lorenzo

> Cc: Will Deacon <will.deacon@arm.com>

> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

> Cc: Bjorn Helgaas <bhelgaas@google.com>

> Cc: Alan Douglas <adouglas@cadence.com>

> Cc: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>

> Cc: Michal Simek <michal.simek@xilinx.com>

> Cc: linux-pci@vger.kernel.org

> Cc: linux-arm-kernel@lists.infradead.org

> Signed-off-by: Rob Herring <robh@kernel.org>

> ---

>  drivers/pci/controller/pci-host-common.c   | 8 --------

>  drivers/pci/controller/pcie-cadence-host.c | 7 -------

>  drivers/pci/controller/pcie-mobiveil.c     | 7 -------

>  drivers/pci/controller/pcie-xilinx-nwl.c   | 9 ---------

>  drivers/pci/controller/pcie-xilinx.c       | 7 -------

>  5 files changed, 38 deletions(-)

> 

> diff --git a/drivers/pci/controller/pci-host-common.c b/drivers/pci/controller/pci-host-common.c

> index d8f10451f273..c742881b5061 100644

> --- a/drivers/pci/controller/pci-host-common.c

> +++ b/drivers/pci/controller/pci-host-common.c

> @@ -58,9 +58,7 @@ static struct pci_config_window *gen_pci_init(struct device *dev,

>  int pci_host_common_probe(struct platform_device *pdev,

>  			  struct pci_ecam_ops *ops)

>  {

> -	const char *type;

>  	struct device *dev = &pdev->dev;

> -	struct device_node *np = dev->of_node;

>  	struct pci_host_bridge *bridge;

>  	struct pci_config_window *cfg;

>  	struct list_head resources;

> @@ -70,12 +68,6 @@ int pci_host_common_probe(struct platform_device *pdev,

>  	if (!bridge)

>  		return -ENOMEM;

>  

> -	type = of_get_property(np, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

> -

>  	of_pci_check_probe_only();

>  

>  	/* Parse and map our Configuration Space windows */

> diff --git a/drivers/pci/controller/pcie-cadence-host.c b/drivers/pci/controller/pcie-cadence-host.c

> index ec394f6a19c8..97e251090b4f 100644

> --- a/drivers/pci/controller/pcie-cadence-host.c

> +++ b/drivers/pci/controller/pcie-cadence-host.c

> @@ -235,7 +235,6 @@ static int cdns_pcie_host_init(struct device *dev,

>  

>  static int cdns_pcie_host_probe(struct platform_device *pdev)

>  {

> -	const char *type;

>  	struct device *dev = &pdev->dev;

>  	struct device_node *np = dev->of_node;

>  	struct pci_host_bridge *bridge;

> @@ -268,12 +267,6 @@ static int cdns_pcie_host_probe(struct platform_device *pdev)

>  	rc->device_id = 0xffff;

>  	of_property_read_u16(np, "device-id", &rc->device_id);

>  

> -	type = of_get_property(np, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

> -

>  	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "reg");

>  	pcie->reg_base = devm_ioremap_resource(dev, res);

>  	if (IS_ERR(pcie->reg_base)) {

> diff --git a/drivers/pci/controller/pcie-mobiveil.c b/drivers/pci/controller/pcie-mobiveil.c

> index a939e8d31735..77052a0712d0 100644

> --- a/drivers/pci/controller/pcie-mobiveil.c

> +++ b/drivers/pci/controller/pcie-mobiveil.c

> @@ -301,13 +301,6 @@ static int mobiveil_pcie_parse_dt(struct mobiveil_pcie *pcie)

>  	struct platform_device *pdev = pcie->pdev;

>  	struct device_node *node = dev->of_node;

>  	struct resource *res;

> -	const char *type;

> -

> -	type = of_get_property(node, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

>  

>  	/* map config resource */

>  	res = platform_get_resource_byname(pdev, IORESOURCE_MEM,

> diff --git a/drivers/pci/controller/pcie-xilinx-nwl.c b/drivers/pci/controller/pcie-xilinx-nwl.c

> index fb32840ce8e6..81538d77f790 100644

> --- a/drivers/pci/controller/pcie-xilinx-nwl.c

> +++ b/drivers/pci/controller/pcie-xilinx-nwl.c

> @@ -777,16 +777,7 @@ static int nwl_pcie_parse_dt(struct nwl_pcie *pcie,

>  			     struct platform_device *pdev)

>  {

>  	struct device *dev = pcie->dev;

> -	struct device_node *node = dev->of_node;

>  	struct resource *res;

> -	const char *type;

> -

> -	/* Check for device type */

> -	type = of_get_property(node, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

>  

>  	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "breg");

>  	pcie->breg_base = devm_ioremap_resource(dev, res);

> diff --git a/drivers/pci/controller/pcie-xilinx.c b/drivers/pci/controller/pcie-xilinx.c

> index 7b1389d8e2a5..9bd1a35cd5d8 100644

> --- a/drivers/pci/controller/pcie-xilinx.c

> +++ b/drivers/pci/controller/pcie-xilinx.c

> @@ -574,15 +574,8 @@ static int xilinx_pcie_parse_dt(struct xilinx_pcie_port *port)

>  	struct device *dev = port->dev;

>  	struct device_node *node = dev->of_node;

>  	struct resource regs;

> -	const char *type;

>  	int err;

>  

> -	type = of_get_property(node, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

> -

>  	err = of_address_to_resource(node, 0, &regs);

>  	if (err) {

>  		dev_err(dev, "missing \"reg\" property\n");

> -- 

> 2.17.1

>
Rob Herring Sept. 18, 2018, 7:05 p.m. UTC | #4
On Thu, Sep 13, 2018 at 7:51 AM Lorenzo Pieralisi
<lorenzo.pieralisi@arm.com> wrote:
>

> On Wed, Aug 29, 2018 at 01:34:40PM -0500, Rob Herring wrote:

> > PCI host drivers have already matched on compatible strings, so checking

> > device_type is redundant. Also, device_type is considered deprecated for

> > FDT though we've still been requiring it for PCI hosts as it is useful

> > for finding PCI buses.

>

> Hi Rob,

>

> I have no problem with the patch per-se, I can't parse though the second

> paragraph, in particular what you mean by "useful for finding PCI

> buses".


Device_type is the only generic way we can identify PCI buses which is
useful for dtc for example to do PCI binding checks. Maybe we can use
the node name which is what I'm doing for cpu nodes, but we've been
less consistent about that for PCI.

>

> What about the corresponding dts files ? I suspect we had better leave

> them alone lest we can trigger regressions with new dts and older

> kernels.


Yes. it will take some time before we can remove from dts files. Or
maybe only new ones change.

Rob
Lorenzo Pieralisi Sept. 19, 2018, 4:33 p.m. UTC | #5
On Tue, Sep 18, 2018 at 12:05:40PM -0700, Rob Herring wrote:
> On Thu, Sep 13, 2018 at 7:51 AM Lorenzo Pieralisi

> <lorenzo.pieralisi@arm.com> wrote:

> >

> > On Wed, Aug 29, 2018 at 01:34:40PM -0500, Rob Herring wrote:

> > > PCI host drivers have already matched on compatible strings, so checking

> > > device_type is redundant. Also, device_type is considered deprecated for

> > > FDT though we've still been requiring it for PCI hosts as it is useful

> > > for finding PCI buses.

> >

> > Hi Rob,

> >

> > I have no problem with the patch per-se, I can't parse though the second

> > paragraph, in particular what you mean by "useful for finding PCI

> > buses".

> 

> Device_type is the only generic way we can identify PCI buses which is

> useful for dtc for example to do PCI binding checks. Maybe we can use

> the node name which is what I'm doing for cpu nodes, but we've been

> less consistent about that for PCI.

> 

> >

> > What about the corresponding dts files ? I suspect we had better leave

> > them alone lest we can trigger regressions with new dts and older

> > kernels.

> 

> Yes. it will take some time before we can remove from dts files. Or

> maybe only new ones change.


OK, thanks. What about PCI host controllers bindings ? I assume we leave
the bindings (that enforce device_type) unchanged too.

If Will and Michal have no objections I will queue this patch as-is
for v4.20.

Thanks,
Lorenzo
Will Deacon Sept. 20, 2018, 9:02 a.m. UTC | #6
On Wed, Sep 19, 2018 at 05:33:01PM +0100, Lorenzo Pieralisi wrote:
> On Tue, Sep 18, 2018 at 12:05:40PM -0700, Rob Herring wrote:

> > On Thu, Sep 13, 2018 at 7:51 AM Lorenzo Pieralisi

> > <lorenzo.pieralisi@arm.com> wrote:

> > >

> > > On Wed, Aug 29, 2018 at 01:34:40PM -0500, Rob Herring wrote:

> > > > PCI host drivers have already matched on compatible strings, so checking

> > > > device_type is redundant. Also, device_type is considered deprecated for

> > > > FDT though we've still been requiring it for PCI hosts as it is useful

> > > > for finding PCI buses.

> > >

> > > Hi Rob,

> > >

> > > I have no problem with the patch per-se, I can't parse though the second

> > > paragraph, in particular what you mean by "useful for finding PCI

> > > buses".

> > 

> > Device_type is the only generic way we can identify PCI buses which is

> > useful for dtc for example to do PCI binding checks. Maybe we can use

> > the node name which is what I'm doing for cpu nodes, but we've been

> > less consistent about that for PCI.

> > 

> > >

> > > What about the corresponding dts files ? I suspect we had better leave

> > > them alone lest we can trigger regressions with new dts and older

> > > kernels.

> > 

> > Yes. it will take some time before we can remove from dts files. Or

> > maybe only new ones change.

> 

> OK, thanks. What about PCI host controllers bindings ? I assume we leave

> the bindings (that enforce device_type) unchanged too.

> 

> If Will and Michal have no objections I will queue this patch as-is

> for v4.20.


Fine by me!

Will
Lorenzo Pieralisi Sept. 21, 2018, 9:29 a.m. UTC | #7
On Wed, Aug 29, 2018 at 01:34:40PM -0500, Rob Herring wrote:
> PCI host drivers have already matched on compatible strings, so checking

> device_type is redundant. Also, device_type is considered deprecated for

> FDT though we've still been requiring it for PCI hosts as it is useful

> for finding PCI buses.

> 

> Cc: Will Deacon <will.deacon@arm.com>

> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

> Cc: Bjorn Helgaas <bhelgaas@google.com>

> Cc: Alan Douglas <adouglas@cadence.com>

> Cc: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>

> Cc: Michal Simek <michal.simek@xilinx.com>

> Cc: linux-pci@vger.kernel.org

> Cc: linux-arm-kernel@lists.infradead.org

> Signed-off-by: Rob Herring <robh@kernel.org>

> ---

>  drivers/pci/controller/pci-host-common.c   | 8 --------

>  drivers/pci/controller/pcie-cadence-host.c | 7 -------

>  drivers/pci/controller/pcie-mobiveil.c     | 7 -------

>  drivers/pci/controller/pcie-xilinx-nwl.c   | 9 ---------

>  drivers/pci/controller/pcie-xilinx.c       | 7 -------

>  5 files changed, 38 deletions(-)


Hi Michal,

are you OK with these changes ?

Thanks,
Lorenzo

> diff --git a/drivers/pci/controller/pci-host-common.c b/drivers/pci/controller/pci-host-common.c

> index d8f10451f273..c742881b5061 100644

> --- a/drivers/pci/controller/pci-host-common.c

> +++ b/drivers/pci/controller/pci-host-common.c

> @@ -58,9 +58,7 @@ static struct pci_config_window *gen_pci_init(struct device *dev,

>  int pci_host_common_probe(struct platform_device *pdev,

>  			  struct pci_ecam_ops *ops)

>  {

> -	const char *type;

>  	struct device *dev = &pdev->dev;

> -	struct device_node *np = dev->of_node;

>  	struct pci_host_bridge *bridge;

>  	struct pci_config_window *cfg;

>  	struct list_head resources;

> @@ -70,12 +68,6 @@ int pci_host_common_probe(struct platform_device *pdev,

>  	if (!bridge)

>  		return -ENOMEM;

>  

> -	type = of_get_property(np, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

> -

>  	of_pci_check_probe_only();

>  

>  	/* Parse and map our Configuration Space windows */

> diff --git a/drivers/pci/controller/pcie-cadence-host.c b/drivers/pci/controller/pcie-cadence-host.c

> index ec394f6a19c8..97e251090b4f 100644

> --- a/drivers/pci/controller/pcie-cadence-host.c

> +++ b/drivers/pci/controller/pcie-cadence-host.c

> @@ -235,7 +235,6 @@ static int cdns_pcie_host_init(struct device *dev,

>  

>  static int cdns_pcie_host_probe(struct platform_device *pdev)

>  {

> -	const char *type;

>  	struct device *dev = &pdev->dev;

>  	struct device_node *np = dev->of_node;

>  	struct pci_host_bridge *bridge;

> @@ -268,12 +267,6 @@ static int cdns_pcie_host_probe(struct platform_device *pdev)

>  	rc->device_id = 0xffff;

>  	of_property_read_u16(np, "device-id", &rc->device_id);

>  

> -	type = of_get_property(np, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

> -

>  	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "reg");

>  	pcie->reg_base = devm_ioremap_resource(dev, res);

>  	if (IS_ERR(pcie->reg_base)) {

> diff --git a/drivers/pci/controller/pcie-mobiveil.c b/drivers/pci/controller/pcie-mobiveil.c

> index a939e8d31735..77052a0712d0 100644

> --- a/drivers/pci/controller/pcie-mobiveil.c

> +++ b/drivers/pci/controller/pcie-mobiveil.c

> @@ -301,13 +301,6 @@ static int mobiveil_pcie_parse_dt(struct mobiveil_pcie *pcie)

>  	struct platform_device *pdev = pcie->pdev;

>  	struct device_node *node = dev->of_node;

>  	struct resource *res;

> -	const char *type;

> -

> -	type = of_get_property(node, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

>  

>  	/* map config resource */

>  	res = platform_get_resource_byname(pdev, IORESOURCE_MEM,

> diff --git a/drivers/pci/controller/pcie-xilinx-nwl.c b/drivers/pci/controller/pcie-xilinx-nwl.c

> index fb32840ce8e6..81538d77f790 100644

> --- a/drivers/pci/controller/pcie-xilinx-nwl.c

> +++ b/drivers/pci/controller/pcie-xilinx-nwl.c

> @@ -777,16 +777,7 @@ static int nwl_pcie_parse_dt(struct nwl_pcie *pcie,

>  			     struct platform_device *pdev)

>  {

>  	struct device *dev = pcie->dev;

> -	struct device_node *node = dev->of_node;

>  	struct resource *res;

> -	const char *type;

> -

> -	/* Check for device type */

> -	type = of_get_property(node, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

>  

>  	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "breg");

>  	pcie->breg_base = devm_ioremap_resource(dev, res);

> diff --git a/drivers/pci/controller/pcie-xilinx.c b/drivers/pci/controller/pcie-xilinx.c

> index 7b1389d8e2a5..9bd1a35cd5d8 100644

> --- a/drivers/pci/controller/pcie-xilinx.c

> +++ b/drivers/pci/controller/pcie-xilinx.c

> @@ -574,15 +574,8 @@ static int xilinx_pcie_parse_dt(struct xilinx_pcie_port *port)

>  	struct device *dev = port->dev;

>  	struct device_node *node = dev->of_node;

>  	struct resource regs;

> -	const char *type;

>  	int err;

>  

> -	type = of_get_property(node, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

> -

>  	err = of_address_to_resource(node, 0, &regs);

>  	if (err) {

>  		dev_err(dev, "missing \"reg\" property\n");

> -- 

> 2.17.1

>
Michal Simek Sept. 25, 2018, 6:20 a.m. UTC | #8
Hi Lorenzo,

On 21.9.2018 11:29, Lorenzo Pieralisi wrote:
> On Wed, Aug 29, 2018 at 01:34:40PM -0500, Rob Herring wrote:

>> PCI host drivers have already matched on compatible strings, so checking

>> device_type is redundant. Also, device_type is considered deprecated for

>> FDT though we've still been requiring it for PCI hosts as it is useful

>> for finding PCI buses.

>>

>> Cc: Will Deacon <will.deacon@arm.com>

>> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

>> Cc: Bjorn Helgaas <bhelgaas@google.com>

>> Cc: Alan Douglas <adouglas@cadence.com>

>> Cc: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>

>> Cc: Michal Simek <michal.simek@xilinx.com>

>> Cc: linux-pci@vger.kernel.org

>> Cc: linux-arm-kernel@lists.infradead.org

>> Signed-off-by: Rob Herring <robh@kernel.org>

>> ---

>>  drivers/pci/controller/pci-host-common.c   | 8 --------

>>  drivers/pci/controller/pcie-cadence-host.c | 7 -------

>>  drivers/pci/controller/pcie-mobiveil.c     | 7 -------

>>  drivers/pci/controller/pcie-xilinx-nwl.c   | 9 ---------

>>  drivers/pci/controller/pcie-xilinx.c       | 7 -------

>>  5 files changed, 38 deletions(-)

> 

> Hi Michal,

> 

> are you OK with these changes ?



This change is fine.
Acked-by: Michal Simek <michal.simek@xilinx.com>


Thanks,
Michal
Lorenzo Pieralisi Sept. 25, 2018, 9:11 a.m. UTC | #9
On Wed, Aug 29, 2018 at 01:34:40PM -0500, Rob Herring wrote:
> PCI host drivers have already matched on compatible strings, so checking

> device_type is redundant. Also, device_type is considered deprecated for

> FDT though we've still been requiring it for PCI hosts as it is useful

> for finding PCI buses.

> 

> Cc: Will Deacon <will.deacon@arm.com>

> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

> Cc: Bjorn Helgaas <bhelgaas@google.com>

> Cc: Alan Douglas <adouglas@cadence.com>

> Cc: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>

> Cc: Michal Simek <michal.simek@xilinx.com>

> Cc: linux-pci@vger.kernel.org

> Cc: linux-arm-kernel@lists.infradead.org

> Signed-off-by: Rob Herring <robh@kernel.org>

> ---

>  drivers/pci/controller/pci-host-common.c   | 8 --------

>  drivers/pci/controller/pcie-cadence-host.c | 7 -------

>  drivers/pci/controller/pcie-mobiveil.c     | 7 -------

>  drivers/pci/controller/pcie-xilinx-nwl.c   | 9 ---------

>  drivers/pci/controller/pcie-xilinx.c       | 7 -------

>  5 files changed, 38 deletions(-)


Applied to pci/controller-misc for v4.20, thanks.

Lorenzo

> diff --git a/drivers/pci/controller/pci-host-common.c b/drivers/pci/controller/pci-host-common.c

> index d8f10451f273..c742881b5061 100644

> --- a/drivers/pci/controller/pci-host-common.c

> +++ b/drivers/pci/controller/pci-host-common.c

> @@ -58,9 +58,7 @@ static struct pci_config_window *gen_pci_init(struct device *dev,

>  int pci_host_common_probe(struct platform_device *pdev,

>  			  struct pci_ecam_ops *ops)

>  {

> -	const char *type;

>  	struct device *dev = &pdev->dev;

> -	struct device_node *np = dev->of_node;

>  	struct pci_host_bridge *bridge;

>  	struct pci_config_window *cfg;

>  	struct list_head resources;

> @@ -70,12 +68,6 @@ int pci_host_common_probe(struct platform_device *pdev,

>  	if (!bridge)

>  		return -ENOMEM;

>  

> -	type = of_get_property(np, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

> -

>  	of_pci_check_probe_only();

>  

>  	/* Parse and map our Configuration Space windows */

> diff --git a/drivers/pci/controller/pcie-cadence-host.c b/drivers/pci/controller/pcie-cadence-host.c

> index ec394f6a19c8..97e251090b4f 100644

> --- a/drivers/pci/controller/pcie-cadence-host.c

> +++ b/drivers/pci/controller/pcie-cadence-host.c

> @@ -235,7 +235,6 @@ static int cdns_pcie_host_init(struct device *dev,

>  

>  static int cdns_pcie_host_probe(struct platform_device *pdev)

>  {

> -	const char *type;

>  	struct device *dev = &pdev->dev;

>  	struct device_node *np = dev->of_node;

>  	struct pci_host_bridge *bridge;

> @@ -268,12 +267,6 @@ static int cdns_pcie_host_probe(struct platform_device *pdev)

>  	rc->device_id = 0xffff;

>  	of_property_read_u16(np, "device-id", &rc->device_id);

>  

> -	type = of_get_property(np, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

> -

>  	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "reg");

>  	pcie->reg_base = devm_ioremap_resource(dev, res);

>  	if (IS_ERR(pcie->reg_base)) {

> diff --git a/drivers/pci/controller/pcie-mobiveil.c b/drivers/pci/controller/pcie-mobiveil.c

> index a939e8d31735..77052a0712d0 100644

> --- a/drivers/pci/controller/pcie-mobiveil.c

> +++ b/drivers/pci/controller/pcie-mobiveil.c

> @@ -301,13 +301,6 @@ static int mobiveil_pcie_parse_dt(struct mobiveil_pcie *pcie)

>  	struct platform_device *pdev = pcie->pdev;

>  	struct device_node *node = dev->of_node;

>  	struct resource *res;

> -	const char *type;

> -

> -	type = of_get_property(node, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

>  

>  	/* map config resource */

>  	res = platform_get_resource_byname(pdev, IORESOURCE_MEM,

> diff --git a/drivers/pci/controller/pcie-xilinx-nwl.c b/drivers/pci/controller/pcie-xilinx-nwl.c

> index fb32840ce8e6..81538d77f790 100644

> --- a/drivers/pci/controller/pcie-xilinx-nwl.c

> +++ b/drivers/pci/controller/pcie-xilinx-nwl.c

> @@ -777,16 +777,7 @@ static int nwl_pcie_parse_dt(struct nwl_pcie *pcie,

>  			     struct platform_device *pdev)

>  {

>  	struct device *dev = pcie->dev;

> -	struct device_node *node = dev->of_node;

>  	struct resource *res;

> -	const char *type;

> -

> -	/* Check for device type */

> -	type = of_get_property(node, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

>  

>  	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "breg");

>  	pcie->breg_base = devm_ioremap_resource(dev, res);

> diff --git a/drivers/pci/controller/pcie-xilinx.c b/drivers/pci/controller/pcie-xilinx.c

> index 7b1389d8e2a5..9bd1a35cd5d8 100644

> --- a/drivers/pci/controller/pcie-xilinx.c

> +++ b/drivers/pci/controller/pcie-xilinx.c

> @@ -574,15 +574,8 @@ static int xilinx_pcie_parse_dt(struct xilinx_pcie_port *port)

>  	struct device *dev = port->dev;

>  	struct device_node *node = dev->of_node;

>  	struct resource regs;

> -	const char *type;

>  	int err;

>  

> -	type = of_get_property(node, "device_type", NULL);

> -	if (!type || strcmp(type, "pci")) {

> -		dev_err(dev, "invalid \"device_type\" %s\n", type);

> -		return -EINVAL;

> -	}

> -

>  	err = of_address_to_resource(node, 0, &regs);

>  	if (err) {

>  		dev_err(dev, "missing \"reg\" property\n");

> -- 

> 2.17.1

>
diff mbox series

Patch

diff --git a/drivers/pci/controller/pci-host-common.c b/drivers/pci/controller/pci-host-common.c
index d8f10451f273..c742881b5061 100644
--- a/drivers/pci/controller/pci-host-common.c
+++ b/drivers/pci/controller/pci-host-common.c
@@ -58,9 +58,7 @@  static struct pci_config_window *gen_pci_init(struct device *dev,
 int pci_host_common_probe(struct platform_device *pdev,
 			  struct pci_ecam_ops *ops)
 {
-	const char *type;
 	struct device *dev = &pdev->dev;
-	struct device_node *np = dev->of_node;
 	struct pci_host_bridge *bridge;
 	struct pci_config_window *cfg;
 	struct list_head resources;
@@ -70,12 +68,6 @@  int pci_host_common_probe(struct platform_device *pdev,
 	if (!bridge)
 		return -ENOMEM;
 
-	type = of_get_property(np, "device_type", NULL);
-	if (!type || strcmp(type, "pci")) {
-		dev_err(dev, "invalid \"device_type\" %s\n", type);
-		return -EINVAL;
-	}
-
 	of_pci_check_probe_only();
 
 	/* Parse and map our Configuration Space windows */
diff --git a/drivers/pci/controller/pcie-cadence-host.c b/drivers/pci/controller/pcie-cadence-host.c
index ec394f6a19c8..97e251090b4f 100644
--- a/drivers/pci/controller/pcie-cadence-host.c
+++ b/drivers/pci/controller/pcie-cadence-host.c
@@ -235,7 +235,6 @@  static int cdns_pcie_host_init(struct device *dev,
 
 static int cdns_pcie_host_probe(struct platform_device *pdev)
 {
-	const char *type;
 	struct device *dev = &pdev->dev;
 	struct device_node *np = dev->of_node;
 	struct pci_host_bridge *bridge;
@@ -268,12 +267,6 @@  static int cdns_pcie_host_probe(struct platform_device *pdev)
 	rc->device_id = 0xffff;
 	of_property_read_u16(np, "device-id", &rc->device_id);
 
-	type = of_get_property(np, "device_type", NULL);
-	if (!type || strcmp(type, "pci")) {
-		dev_err(dev, "invalid \"device_type\" %s\n", type);
-		return -EINVAL;
-	}
-
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "reg");
 	pcie->reg_base = devm_ioremap_resource(dev, res);
 	if (IS_ERR(pcie->reg_base)) {
diff --git a/drivers/pci/controller/pcie-mobiveil.c b/drivers/pci/controller/pcie-mobiveil.c
index a939e8d31735..77052a0712d0 100644
--- a/drivers/pci/controller/pcie-mobiveil.c
+++ b/drivers/pci/controller/pcie-mobiveil.c
@@ -301,13 +301,6 @@  static int mobiveil_pcie_parse_dt(struct mobiveil_pcie *pcie)
 	struct platform_device *pdev = pcie->pdev;
 	struct device_node *node = dev->of_node;
 	struct resource *res;
-	const char *type;
-
-	type = of_get_property(node, "device_type", NULL);
-	if (!type || strcmp(type, "pci")) {
-		dev_err(dev, "invalid \"device_type\" %s\n", type);
-		return -EINVAL;
-	}
 
 	/* map config resource */
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
diff --git a/drivers/pci/controller/pcie-xilinx-nwl.c b/drivers/pci/controller/pcie-xilinx-nwl.c
index fb32840ce8e6..81538d77f790 100644
--- a/drivers/pci/controller/pcie-xilinx-nwl.c
+++ b/drivers/pci/controller/pcie-xilinx-nwl.c
@@ -777,16 +777,7 @@  static int nwl_pcie_parse_dt(struct nwl_pcie *pcie,
 			     struct platform_device *pdev)
 {
 	struct device *dev = pcie->dev;
-	struct device_node *node = dev->of_node;
 	struct resource *res;
-	const char *type;
-
-	/* Check for device type */
-	type = of_get_property(node, "device_type", NULL);
-	if (!type || strcmp(type, "pci")) {
-		dev_err(dev, "invalid \"device_type\" %s\n", type);
-		return -EINVAL;
-	}
 
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "breg");
 	pcie->breg_base = devm_ioremap_resource(dev, res);
diff --git a/drivers/pci/controller/pcie-xilinx.c b/drivers/pci/controller/pcie-xilinx.c
index 7b1389d8e2a5..9bd1a35cd5d8 100644
--- a/drivers/pci/controller/pcie-xilinx.c
+++ b/drivers/pci/controller/pcie-xilinx.c
@@ -574,15 +574,8 @@  static int xilinx_pcie_parse_dt(struct xilinx_pcie_port *port)
 	struct device *dev = port->dev;
 	struct device_node *node = dev->of_node;
 	struct resource regs;
-	const char *type;
 	int err;
 
-	type = of_get_property(node, "device_type", NULL);
-	if (!type || strcmp(type, "pci")) {
-		dev_err(dev, "invalid \"device_type\" %s\n", type);
-		return -EINVAL;
-	}
-
 	err = of_address_to_resource(node, 0, &regs);
 	if (err) {
 		dev_err(dev, "missing \"reg\" property\n");