2023-01-12 19:54:31

by Frank Li

[permalink] [raw]
Subject: [PATCH 1/1] PCI: layerscape: Set 64-bit DMA mask

From: Guanhua Gao <[email protected]>

Set DMA mask and coherent DMA mask to enable 64-bit addressing.

Signed-off-by: Guanhua Gao <[email protected]>
Signed-off-by: Hou Zhiqiang <[email protected]>
Signed-off-by: Frank Li <[email protected]>
---
drivers/pci/controller/dwc/pci-layerscape-ep.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c b/drivers/pci/controller/dwc/pci-layerscape-ep.c
index 1b884854c18e..c19e7ec58b05 100644
--- a/drivers/pci/controller/dwc/pci-layerscape-ep.c
+++ b/drivers/pci/controller/dwc/pci-layerscape-ep.c
@@ -261,6 +261,10 @@ static int __init ls_pcie_ep_probe(struct platform_device *pdev)
pcie->max_width = (dw_pcie_readw_dbi(pci, PCIE_LINK_CAP) >>
MAX_LINK_W_SHIFT) & MAX_LINK_W_MASK;

+ /* set 64-bit DMA mask and coherent DMA mask */
+ if (dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)))
+ dev_warn(dev, "Failed to set 64-bit DMA mask.\n");
+
platform_set_drvdata(pdev, pcie);

ret = dw_pcie_ep_init(&pci->ep);
--
2.34.1


2023-02-02 17:43:10

by Frank Li

[permalink] [raw]
Subject: RE: [PATCH 1/1] PCI: layerscape: Set 64-bit DMA mask


> Subject: [PATCH 1/1] PCI: layerscape: Set 64-bit DMA mask
>
> From: Guanhua Gao <[email protected]>
>
> Set DMA mask and coherent DMA mask to enable 64-bit addressing.
>
> Signed-off-by: Guanhua Gao <[email protected]>
> Signed-off-by: Hou Zhiqiang <[email protected]>
> Signed-off-by: Frank Li <[email protected]>
> ---

Ping

> drivers/pci/controller/dwc/pci-layerscape-ep.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c
> b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> index 1b884854c18e..c19e7ec58b05 100644
> --- a/drivers/pci/controller/dwc/pci-layerscape-ep.c
> +++ b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> @@ -261,6 +261,10 @@ static int __init ls_pcie_ep_probe(struct
> platform_device *pdev)
> pcie->max_width = (dw_pcie_readw_dbi(pci, PCIE_LINK_CAP) >>
> MAX_LINK_W_SHIFT) & MAX_LINK_W_MASK;
>
> + /* set 64-bit DMA mask and coherent DMA mask */
> + if (dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)))
> + dev_warn(dev, "Failed to set 64-bit DMA mask.\n");
> +
> platform_set_drvdata(pdev, pcie);
>
> ret = dw_pcie_ep_init(&pci->ep);
> --
> 2.34.1


2023-02-14 17:32:37

by Frank Li

[permalink] [raw]
Subject: RE: [PATCH 1/1] PCI: layerscape: Set 64-bit DMA mask

> -----Original Message-----
> From: Frank Li
> Subject: RE: [PATCH 1/1] PCI: layerscape: Set 64-bit DMA mask
>
>
> > Subject: [PATCH 1/1] PCI: layerscape: Set 64-bit DMA mask
> >
> > From: Guanhua Gao <[email protected]>
> >
> > Set DMA mask and coherent DMA mask to enable 64-bit addressing.
> >
> > Signed-off-by: Guanhua Gao <[email protected]>
> > Signed-off-by: Hou Zhiqiang <[email protected]>
> > Signed-off-by: Frank Li <[email protected]>
> > ---
>
> Ping

Ping again

>
> > drivers/pci/controller/dwc/pci-layerscape-ep.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c

2023-02-14 17:43:20

by Sean Anderson

[permalink] [raw]
Subject: Re: [PATCH 1/1] PCI: layerscape: Set 64-bit DMA mask

On 1/12/23 14:36, Frank Li wrote:
> From: Guanhua Gao <[email protected]>
>
> Set DMA mask and coherent DMA mask to enable 64-bit addressing.
>
> Signed-off-by: Guanhua Gao <[email protected]>
> Signed-off-by: Hou Zhiqiang <[email protected]>
> Signed-off-by: Frank Li <[email protected]>
> ---
> drivers/pci/controller/dwc/pci-layerscape-ep.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/pci/controller/dwc/pci-layerscape-ep.c b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> index 1b884854c18e..c19e7ec58b05 100644
> --- a/drivers/pci/controller/dwc/pci-layerscape-ep.c
> +++ b/drivers/pci/controller/dwc/pci-layerscape-ep.c
> @@ -261,6 +261,10 @@ static int __init ls_pcie_ep_probe(struct platform_device *pdev)
> pcie->max_width = (dw_pcie_readw_dbi(pci, PCIE_LINK_CAP) >>
> MAX_LINK_W_SHIFT) & MAX_LINK_W_MASK;
>
> + /* set 64-bit DMA mask and coherent DMA mask */
> + if (dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)))
> + dev_warn(dev, "Failed to set 64-bit DMA mask.\n");

Isn't this mandatory? Why not dev_err_probe and return the error?

--Sean

> platform_set_drvdata(pdev, pcie);
>
> ret = dw_pcie_ep_init(&pci->ep);


2023-02-14 21:51:03

by Frank Li

[permalink] [raw]
Subject: RE: [EXT] Re: [PATCH 1/1] PCI: layerscape: Set 64-bit DMA mask

> >
> > + /* set 64-bit DMA mask and coherent DMA mask */
> > + if (dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)))
> > + dev_warn(dev, "Failed to set 64-bit DMA mask.\n");
>
> Isn't this mandatory? Why not dev_err_probe and return the error?

I don't think it is mandatory. If failure, dma will use swiotlb.
Just an additional memcpy involved.

Frank Li

>
> --Sean
>
> > platform_set_drvdata(pdev, pcie);
> >
> > ret = dw_pcie_ep_init(&pci->ep);