]> git.baikalelectronics.ru Git - kernel.git/commit
drivers: flag buses which demand DMA configuration
authorRobin Murphy <robin.murphy@arm.com>
Thu, 12 Oct 2017 15:56:14 +0000 (16:56 +0100)
committerChristoph Hellwig <hch@lst.de>
Thu, 19 Oct 2017 14:34:52 +0000 (16:34 +0200)
commit40504e8a5727b9a6db385cffd92fd058a0837235
tree1291cfc9e6a129e135f99449c007a59266f3a4d2
parentd599018c3d91869a00bbed486bd864ca0c31bf99
drivers: flag buses which demand DMA configuration

We do not want the common dma_configure() pathway to apply
indiscriminately to all devices, since there are plenty of buses which
do not have DMA capability, and if their child devices were used for
DMA API calls it would only be indicative of a driver bug. However,
there are a number of buses for which DMA is implicitly expected even
when not described by firmware - those we whitelist with an automatic
opt-in to dma_configure(), assuming that the DMA address space and the
physical address space are equivalent if not otherwise specified.

Commit 059a2964d5a7 ("of: restrict DMA configuration") introduced a
short-term fix by comparing explicit bus types, but this approach is far
from pretty, doesn't scale well, and fails to cope at all with bus
drivers which may be built as modules, like host1x. Let's refine things
by making that opt-in a property of the bus type, which neatly addresses
those problems and lets the decision of whether firmware description of
DMA capability should be optional or mandatory stay internal to the bus
drivers themselves.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/amba/bus.c
drivers/base/platform.c
drivers/gpu/host1x/bus.c
drivers/of/device.c
drivers/pci/pci-driver.c
include/linux/device.h