• Arnd Bergmann's avatar
    arm64: simplify dma_get_ops · 1dccb598
    Arnd Bergmann authored
    Including linux/acpi.h from asm/dma-mapping.h causes tons of compile-time
    warnings, e.g.
    
     drivers/isdn/mISDN/dsp_ecdis.h:43:0: warning: "FALSE" redefined
     drivers/isdn/mISDN/dsp_ecdis.h:44:0: warning: "TRUE" redefined
     drivers/net/fddi/skfp/h/targetos.h:62:0: warning: "TRUE" redefined
     drivers/net/fddi/skfp/h/targetos.h:63:0: warning: "FALSE" redefined
    
    However, it looks like the dependency should not even there as
    I do not see why __generic_dma_ops() cares about whether we have
    an ACPI based system or not.
    
    The current behavior is to fall back to the global dma_ops when
    a device has not set its own dma_ops, but only for DT based systems.
    This seems dangerous, as a random device might have different
    requirements regarding IOMMU or coherency, so we should really
    never have that fallback and just forbid DMA when we have not
    initialized DMA for a device.
    
    This removes the global dma_ops variable and the special-casing
    for ACPI, and just returns the dma ops that got set for the
    device, or the dummy_dma_ops if none were present.
    
    The original code has apparently been copied from arm32 where we
    rely on it for ISA devices things like the floppy controller, but
    we should have no such devices on ARM64.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    [catalin.marinas@arm.com: removed acpi_disabled check in arch_setup_dma_ops()]
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    1dccb598
dma-mapping.c 26.5 KB