Commit c95e0780 authored by Christophe JAILLET's avatar Christophe JAILLET Committed by David S. Miller

tehuti: Use dma_set_mask_and_coherent() and simplify code

Use dma_set_mask_and_coherent() instead of unrolling it with some
dma_set_mask()+dma_set_coherent_mask().

Moreover, as stated in [1], dma_set_mask_and_coherent() with a 64-bit mask
will never fail if dev->dma_mask is non-NULL.
So, if it fails, the 32 bits case will also fail for the same reason.

That said, 'pci_using_dac' can only be 1 after a successful
dma_set_mask_and_coherent().

Simplify code and remove some dead code accordingly.

[1]: https://lkml.org/lkml/2021/6/7/398Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c5180ad0
...@@ -1884,10 +1884,10 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -1884,10 +1884,10 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{ {
struct net_device *ndev; struct net_device *ndev;
struct bdx_priv *priv; struct bdx_priv *priv;
int err, pci_using_dac, port;
unsigned long pciaddr; unsigned long pciaddr;
u32 regionSize; u32 regionSize;
struct pci_nic *nic; struct pci_nic *nic;
int err, port;
ENTER; ENTER;
...@@ -1900,16 +1900,10 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -1900,16 +1900,10 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (err) /* it triggers interrupt, dunno why. */ if (err) /* it triggers interrupt, dunno why. */
goto err_pci; /* it's not a problem though */ goto err_pci; /* it's not a problem though */
if (!(err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) && err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
!(err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64)))) { if (err) {
pci_using_dac = 1; pr_err("No usable DMA configuration, aborting\n");
} else { goto err_dma;
if ((err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))) ||
(err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)))) {
pr_err("No usable DMA configuration, aborting\n");
goto err_dma;
}
pci_using_dac = 0;
} }
err = pci_request_regions(pdev, BDX_DRV_NAME); err = pci_request_regions(pdev, BDX_DRV_NAME);
...@@ -1982,16 +1976,14 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -1982,16 +1976,14 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
/* these fields are used for info purposes only /* these fields are used for info purposes only
* so we can have them same for all ports of the board */ * so we can have them same for all ports of the board */
ndev->if_port = port; ndev->if_port = port;
ndev->features = NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_TSO ndev->features = NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_TSO |
| NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX |
NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_RXCSUM NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_RXCSUM |
; NETIF_F_HIGHDMA;
ndev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG | ndev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG |
NETIF_F_TSO | NETIF_F_HW_VLAN_CTAG_TX; NETIF_F_TSO | NETIF_F_HW_VLAN_CTAG_TX;
if (pci_using_dac)
ndev->features |= NETIF_F_HIGHDMA;
/************** priv ****************/ /************** priv ****************/
priv = nic->priv[port] = netdev_priv(ndev); priv = nic->priv[port] = netdev_priv(ndev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment