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

sun/cassini: 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() 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 1f52a938
...@@ -4893,8 +4893,8 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -4893,8 +4893,8 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
unsigned long casreg_len; unsigned long casreg_len;
struct net_device *dev; struct net_device *dev;
struct cas *cp; struct cas *cp;
int i, err, pci_using_dac;
u16 pci_cmd; u16 pci_cmd;
int i, err;
u8 orig_cacheline_size = 0, cas_cacheline_size = 0; u8 orig_cacheline_size = 0, cas_cacheline_size = 0;
if (cas_version_printed++ == 0) if (cas_version_printed++ == 0)
...@@ -4965,23 +4965,10 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -4965,23 +4965,10 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
/* Configure DMA attributes. */ /* Configure DMA attributes. */
if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) { err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
pci_using_dac = 1; if (err) {
err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64)); dev_err(&pdev->dev, "No usable DMA configuration, aborting\n");
if (err < 0) { goto err_out_free_res;
dev_err(&pdev->dev, "Unable to obtain 64-bit DMA "
"for consistent allocations\n");
goto err_out_free_res;
}
} else {
err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
if (err) {
dev_err(&pdev->dev, "No usable DMA configuration, "
"aborting\n");
goto err_out_free_res;
}
pci_using_dac = 0;
} }
casreg_len = pci_resource_len(pdev, 0); casreg_len = pci_resource_len(pdev, 0);
...@@ -5087,8 +5074,7 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -5087,8 +5074,7 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
if ((cp->cas_flags & CAS_FLAG_NO_HW_CSUM) == 0) if ((cp->cas_flags & CAS_FLAG_NO_HW_CSUM) == 0)
dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG; dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG;
if (pci_using_dac) dev->features |= NETIF_F_HIGHDMA;
dev->features |= NETIF_F_HIGHDMA;
/* MTU range: 60 - varies or 9000 */ /* MTU range: 60 - varies or 9000 */
dev->min_mtu = CAS_MIN_MTU; dev->min_mtu = CAS_MIN_MTU;
......
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