mirror of
https://github.com/torvalds/linux
synced 2024-10-08 04:12:40 +00:00
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/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
1f52a9380f
commit
584c61cedb
|
@ -4893,8 +4893,8 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
unsigned long casreg_len;
|
||||
struct net_device *dev;
|
||||
struct cas *cp;
|
||||
int i, err, pci_using_dac;
|
||||
u16 pci_cmd;
|
||||
int i, err;
|
||||
u8 orig_cacheline_size = 0, cas_cacheline_size = 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)
|
|||
|
||||
|
||||
/* Configure DMA attributes. */
|
||||
if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) {
|
||||
pci_using_dac = 1;
|
||||
err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
|
||||
if (err < 0) {
|
||||
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;
|
||||
err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
|
||||
if (err) {
|
||||
dev_err(&pdev->dev, "No usable DMA configuration, aborting\n");
|
||||
goto err_out_free_res;
|
||||
}
|
||||
|
||||
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)
|
|||
if ((cp->cas_flags & CAS_FLAG_NO_HW_CSUM) == 0)
|
||||
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 */
|
||||
dev->min_mtu = CAS_MIN_MTU;
|
||||
|
|
Loading…
Reference in a new issue