mirror of
https://github.com/torvalds/linux.git
synced 2024-12-12 14:12:51 +00:00
staging: slicoss Use pci_set_consistent_dma_mask.
Use pci_set_consistent_dma_mask() in the case of 64-bit consistent allocations. Signed-off-by: Denis Kirjanov <kirjanov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
30ae835f89
commit
a5c252411f
@ -366,6 +366,7 @@ static int __devinit slic_entry_probe(struct pci_dev *pcidev,
|
||||
ulong mmio_start = 0;
|
||||
ulong mmio_len = 0;
|
||||
struct sliccard *card = NULL;
|
||||
int pci_using_dac = 0;
|
||||
|
||||
slic_global.dynamic_intagg = dynamic_intagg;
|
||||
|
||||
@ -379,16 +380,26 @@ static int __devinit slic_entry_probe(struct pci_dev *pcidev,
|
||||
printk(KERN_DEBUG "%s\n", slic_proc_version);
|
||||
}
|
||||
|
||||
err = pci_set_dma_mask(pcidev, DMA_BIT_MASK(64));
|
||||
if (err) {
|
||||
err = pci_set_dma_mask(pcidev, DMA_BIT_MASK(32));
|
||||
if (err)
|
||||
if (!pci_set_dma_mask(pcidev, DMA_BIT_MASK(64))) {
|
||||
pci_using_dac = 1;
|
||||
if (pci_set_consistent_dma_mask(pcidev, DMA_BIT_MASK(64))) {
|
||||
dev_err(&pcidev->dev, "unable to obtain 64-bit DMA for "
|
||||
"consistent allocations\n");
|
||||
goto err_out_disable_pci;
|
||||
}
|
||||
} else if (pci_set_dma_mask(pcidev, DMA_BIT_MASK(32))) {
|
||||
pci_using_dac = 0;
|
||||
pci_set_consistent_dma_mask(pcidev, DMA_BIT_MASK(32));
|
||||
} else {
|
||||
dev_err(&pcidev->dev, "no usable DMA configuration\n");
|
||||
goto err_out_disable_pci;
|
||||
}
|
||||
|
||||
err = pci_request_regions(pcidev, DRV_NAME);
|
||||
if (err)
|
||||
if (err) {
|
||||
dev_err(&pcidev->dev, "can't obtain PCI resources\n");
|
||||
goto err_out_disable_pci;
|
||||
}
|
||||
|
||||
pci_set_master(pcidev);
|
||||
|
||||
@ -404,6 +415,8 @@ static int __devinit slic_entry_probe(struct pci_dev *pcidev,
|
||||
adapter = netdev_priv(netdev);
|
||||
adapter->netdev = netdev;
|
||||
adapter->pcidev = pcidev;
|
||||
if (pci_using_dac)
|
||||
netdev->features |= NETIF_F_HIGHDMA;
|
||||
|
||||
mmio_start = pci_resource_start(pcidev, 0);
|
||||
mmio_len = pci_resource_len(pcidev, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user