On 10/25/18 7:01 PM, Xiaowei Bao wrote:
> Add the dts fixup when PCI controller work diffferent mode.
> 
> Signed-off-by: Xiaowei Bao <xiaowei....@nxp.com>
> ---
>  drivers/pci/pcie_layerscape_fixup.c |   25 +++++++++++++++++++++++--
>  1 files changed, 23 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pci/pcie_layerscape_fixup.c 
> b/drivers/pci/pcie_layerscape_fixup.c
> index 1a17bd9..089e031 100644
> --- a/drivers/pci/pcie_layerscape_fixup.c
> +++ b/drivers/pci/pcie_layerscape_fixup.c
> @@ -218,7 +218,7 @@ static void fdt_fixup_pcie(void *blob)
>  }
>  #endif
>  
> -static void ft_pcie_ls_setup(void *blob, struct ls_pcie *pcie)
> +static void ft_pcie_rc_fix(void *blob, struct ls_pcie *pcie)
>  {
>       int off;
>       uint svr;
> @@ -243,12 +243,33 @@ static void ft_pcie_ls_setup(void *blob, struct ls_pcie 
> *pcie)
>                       return;
>       }
>  
> -     if (pcie->enabled)
> +     if (pcie->enabled && pcie->mode == PCI_HEADER_TYPE_BRIDGE)
> +             fdt_set_node_status(blob, off, FDT_STATUS_OKAY, 0);
> +     else
> +             fdt_set_node_status(blob, off, FDT_STATUS_DISABLED, 0);
> +}
> +
> +static void ft_pcie_ep_fix(void *blob, struct ls_pcie *pcie)
> +{
> +     int off;
> +
> +     off = fdt_node_offset_by_compat_reg(blob, "fsl,ls-pcie-ep",
> +                                         pcie->dbi_res.start);
> +     if (off < 0)
> +             return;
> +
> +     if (pcie->enabled && pcie->mode == PCI_HEADER_TYPE_NORMAL)
>               fdt_set_node_status(blob, off, FDT_STATUS_OKAY, 0);
>       else
>               fdt_set_node_status(blob, off, FDT_STATUS_DISABLED, 0);
>  }
>  
> +static void ft_pcie_ls_setup(void *blob, struct ls_pcie *pcie)
> +{
> +     ft_pcie_ep_fix(blob, pcie);
> +     ft_pcie_rc_fix(blob, pcie);
> +}

Wouldn't it be faster to check the result of first call before entering
the second function? One cannot be both EP and RC, right?

York
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to