diff options
Diffstat (limited to 'drivers/base/dma-mapping.c')
| -rw-r--r-- | drivers/base/dma-mapping.c | 31 | 
1 files changed, 4 insertions, 27 deletions
diff --git a/drivers/base/dma-mapping.c b/drivers/base/dma-mapping.c index d82566d6e237..f831a582209c 100644 --- a/drivers/base/dma-mapping.c +++ b/drivers/base/dma-mapping.c @@ -329,36 +329,13 @@ void dma_common_free_remap(void *cpu_addr, size_t size, unsigned long vm_flags)  #endif  /* - * Common configuration to enable DMA API use for a device + * enables DMA API use for a device   */ -#include <linux/pci.h> -  int dma_configure(struct device *dev)  { -	struct device *bridge = NULL, *dma_dev = dev; -	enum dev_dma_attr attr; -	int ret = 0; - -	if (dev_is_pci(dev)) { -		bridge = pci_get_host_bridge_device(to_pci_dev(dev)); -		dma_dev = bridge; -		if (IS_ENABLED(CONFIG_OF) && dma_dev->parent && -		    dma_dev->parent->of_node) -			dma_dev = dma_dev->parent; -	} - -	if (dma_dev->of_node) { -		ret = of_dma_configure(dev, dma_dev->of_node); -	} else if (has_acpi_companion(dma_dev)) { -		attr = acpi_get_dma_attr(to_acpi_device_node(dma_dev->fwnode)); -		if (attr != DEV_DMA_NOT_SUPPORTED) -			ret = acpi_dma_configure(dev, attr); -	} - -	if (bridge) -		pci_put_host_bridge_device(bridge); - -	return ret; +	if (dev->bus->dma_configure) +		return dev->bus->dma_configure(dev); +	return 0;  }  void dma_deconfigure(struct device *dev)  | 
