igc: Improve the DMA mapping flow
Improve the probe flow and set both the DMA mask and the coherent to the same thing. Make the flow optimized and cleared. Signed-off-by: Sasha Neftin <sasha.neftin@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
b7b462454a
commit
21da01fd3b
@ -4345,32 +4345,26 @@ static int igc_probe(struct pci_dev *pdev,
|
||||
struct net_device *netdev;
|
||||
struct igc_hw *hw;
|
||||
const struct igc_info *ei = igc_info_tbl[ent->driver_data];
|
||||
int err;
|
||||
int err, pci_using_dac;
|
||||
|
||||
err = pci_enable_device_mem(pdev);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
|
||||
pci_using_dac = 0;
|
||||
err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
|
||||
if (!err) {
|
||||
err = dma_set_coherent_mask(&pdev->dev,
|
||||
DMA_BIT_MASK(64));
|
||||
pci_using_dac = 1;
|
||||
} else {
|
||||
err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
|
||||
err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
|
||||
if (err) {
|
||||
err = dma_set_coherent_mask(&pdev->dev,
|
||||
DMA_BIT_MASK(32));
|
||||
if (err) {
|
||||
dev_err(&pdev->dev, "igc: Wrong DMA config\n");
|
||||
goto err_dma;
|
||||
}
|
||||
dev_err(&pdev->dev,
|
||||
"No usable DMA configuration, aborting\n");
|
||||
goto err_dma;
|
||||
}
|
||||
}
|
||||
|
||||
err = pci_request_selected_regions(pdev,
|
||||
pci_select_bars(pdev,
|
||||
IORESOURCE_MEM),
|
||||
igc_driver_name);
|
||||
err = pci_request_mem_regions(pdev, igc_driver_name);
|
||||
if (err)
|
||||
goto err_pci_reg;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user