mirror of
https://github.com/torvalds/linux.git
synced 2026-05-21 13:27:57 +02:00
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/398 Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c5180ad0c2
commit
c95e078069
|
|
@ -1884,10 +1884,10 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
{
|
||||
struct net_device *ndev;
|
||||
struct bdx_priv *priv;
|
||||
int err, pci_using_dac, port;
|
||||
unsigned long pciaddr;
|
||||
u32 regionSize;
|
||||
struct pci_nic *nic;
|
||||
int err, port;
|
||||
|
||||
ENTER;
|
||||
|
||||
|
|
@ -1900,16 +1900,10 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
if (err) /* it triggers interrupt, dunno why. */
|
||||
goto err_pci; /* it's not a problem though */
|
||||
|
||||
if (!(err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) &&
|
||||
!(err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64)))) {
|
||||
pci_using_dac = 1;
|
||||
} else {
|
||||
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 = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
|
||||
if (err) {
|
||||
pr_err("No usable DMA configuration, aborting\n");
|
||||
goto err_dma;
|
||||
}
|
||||
|
||||
err = pci_request_regions(pdev, BDX_DRV_NAME);
|
||||
|
|
@ -1982,16 +1976,14 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
/* these fields are used for info purposes only
|
||||
* so we can have them same for all ports of the board */
|
||||
ndev->if_port = port;
|
||||
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_FILTER | NETIF_F_RXCSUM
|
||||
;
|
||||
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_FILTER | NETIF_F_RXCSUM |
|
||||
NETIF_F_HIGHDMA;
|
||||
|
||||
ndev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG |
|
||||
NETIF_F_TSO | NETIF_F_HW_VLAN_CTAG_TX;
|
||||
|
||||
if (pci_using_dac)
|
||||
ndev->features |= NETIF_F_HIGHDMA;
|
||||
|
||||
/************** priv ****************/
|
||||
priv = nic->priv[port] = netdev_priv(ndev);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user