Message ID | 20230112193621.1513505-1-Frank.Li@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/1] PCI: layerscape: Set 64-bit DMA mask | expand |
> Subject: [PATCH 1/1] PCI: layerscape: Set 64-bit DMA mask > > From: Guanhua Gao <guanhua.gao@nxp.com> > > Set DMA mask and coherent DMA mask to enable 64-bit addressing. > > Signed-off-by: Guanhua Gao <guanhua.gao@nxp.com> > Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> > Signed-off-by: Frank Li <Frank.Li@nxp.com> > --- 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
> -----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 <guanhua.gao@nxp.com> > > > > Set DMA mask and coherent DMA mask to enable 64-bit addressing. > > > > Signed-off-by: Guanhua Gao <guanhua.gao@nxp.com> > > Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> > > Signed-off-by: Frank Li <Frank.Li@nxp.com> > > --- > > 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
On 1/12/23 14:36, Frank Li wrote: > From: Guanhua Gao <guanhua.gao@nxp.com> > > Set DMA mask and coherent DMA mask to enable 64-bit addressing. > > Signed-off-by: Guanhua Gao <guanhua.gao@nxp.com> > Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> > Signed-off-by: Frank Li <Frank.Li@nxp.com> > --- > 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);
> > > > + /* 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);
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);