RE: [PATCH] PCI: Designware: Move num-lanes property read to dw_pcie_setup_rc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jingoo, Pratyush

Any comment on this patch?

Thanks

Gab
> -----Original Message-----
> From: Gabriele Paoloni
> Sent: Wednesday, August 26, 2015 12:14 PM
> To: jingoohan1@xxxxxxxxx; Wangzhou (B); pratyush.anand@xxxxxxxxx
> Cc: linux-pci@xxxxxxxxxxxxxxx; qiuzhenfa; zhangjukuo; liudongdong (C);
> Liguozhu (Kenneth); qiujiang; Gabriele Paoloni
> Subject: [PATCH] PCI: Designware: Move num-lanes property read to
> dw_pcie_setup_rc
> 
> From: gabriele paoloni <gabriele.paoloni@xxxxxxxxxx>
> 
> Currently num-lanes is read in dw_pcie_host_init().
> for A SoC that performs the link-up operation in UEFI num-lanes
> is not needed in the DTS but it has to be specified to any value;
> otherwise dw_pcie_host_init will fail.
> This patch moves the num-lanes property read in dw_pcie_setup_rc()
> as num-lanes is only used there and, if the link is already up,
> the PCIe controller driver can decide either to leave host_init
> NULL or to return straightforward without proceeding to call
> dw_pcie_setup_rc().
> 
> Signed-off-by: Gabriele Paoloni <gabriele.paoloni@xxxxxxxxxx>
> ---
>  drivers/pci/host/pcie-designware.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/pci/host/pcie-designware.c
> b/drivers/pci/host/pcie-designware.c
> index 69486be..7d707b7 100644
> --- a/drivers/pci/host/pcie-designware.c
> +++ b/drivers/pci/host/pcie-designware.c
> @@ -483,11 +483,6 @@ int dw_pcie_host_init(struct pcie_port *pp)
>  		}
>  	}
> 
> -	if (of_property_read_u32(np, "num-lanes", &pp->lanes)) {
> -		dev_err(pp->dev, "Failed to parse the number of lanes\n");
> -		return -EINVAL;
> -	}
> -
>  	if (IS_ENABLED(CONFIG_PCI_MSI)) {
>  		if (!pp->ops->msi_host_init) {
>  			pp->irq_domain = irq_domain_add_linear(pp->dev-
> >of_node,
> @@ -742,7 +737,12 @@ void dw_pcie_setup_rc(struct pcie_port *pp)
>  	u32 val;
>  	u32 membase;
>  	u32 memlimit;
> +	struct device_node *np = pp->dev->of_node;
> 
> +	if (of_property_read_u32(np, "num-lanes", &pp->lanes)) {
> +		dev_err(pp->dev, "Failed to parse the number of lanes\n");
> +		return;
> +	}
>  	/* set the number of lanes */
>  	dw_pcie_readl_rc(pp, PCIE_PORT_LINK_CONTROL, &val);
>  	val &= ~PORT_LINK_MODE_MASK;
> --
> 1.9.1

?韬{.n?????%??檩??w?{.n???{炳???骅w*jg????????G??⒏⒎?:+v????????????"??????



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux