freebsd-nq/sys/arm
Ian Lepore 688e9d85f4 The run_filter() function doesn't just run dma tag exclusion filter
functions, it has evolved to make a variety of decisions about whether
the DMA needs to bounce, so rename it to must_bounce().  Rewrite it to
perform checks outside of the ancestor loop if they're based on information
that's wholly contained within the original tag.  Now the loop only checks
exclusion zones in ancestor tags.

Also, add a new function, might_bounce() which does a fast inline check
of flags within the tag and map to quickly eliminate the need to call
the more expensive must_bounce() for each page in the DMA operation.

Within the mapping loops, use map->pagesneeded != 0 as a proxy for all
the various checks on whether bouncing might be required.  If no pages
were reserved for bouncing during the checks before the mapping loop,
then there's no need to re-check any of the conditions that can lead
to bouncing -- all those checks already decided there would be no bouncing.

Reviewed by:	cognet
2014-07-29 02:36:27 +00:00
..
allwinner Add the start of the ARM platform code. This is based on the PowerPC 2014-05-17 11:27:36 +00:00
arm The run_filter() function doesn't just run dma tag exclusion filter 2014-07-29 02:36:27 +00:00
at91 Don't bother clearing maps for static DMA allocations to NULL. Instead, 2014-06-17 18:10:06 +00:00
broadcom/bcm2835 FreeBSD, historically, has always used 8-bit addresses for i2c devices 2014-06-03 19:24:53 +00:00
cavium/cns11xx Fix various NIC drivers to properly cleanup static DMA resources. 2014-06-11 14:53:58 +00:00
conf Enable Freescale i.MX I2C driver for i.MX6. 2014-07-22 04:39:32 +00:00
freescale Enable Freescale i.MX I2C driver for i.MX6. 2014-07-22 04:39:32 +00:00
include Add dl_unwind_find_exidx() for ARM EABI, required for C++ exception 2014-07-19 22:13:27 +00:00
lpc Add the start of the ARM platform code. This is based on the PowerPC 2014-05-17 11:27:36 +00:00
mv Avoid using hard-coded SoC's register address in mptramp code for Armada XP 2014-06-05 21:37:04 +00:00
rockchip Factor out kernel configuration for DWC OTG FDT attach code. 2014-05-29 11:13:40 +00:00
s3c2xx0 When mapping device memory, use PTE_DEVICE rather than PTE_NOCACHE. 2014-05-10 20:03:03 +00:00
samsung/exynos Add the rest of combined interrupt groups. 2014-07-28 05:37:10 +00:00
ti Remove extra semicolons. 2014-06-06 16:37:42 +00:00
versatile Don't destroy bus_dma maps created by bus_dmamem_alloc(). In some cases, 2014-06-10 20:25:45 +00:00
xilinx Fix the Zedboard/Zynq ethernet driver to handle media speed changes so 2014-07-14 20:58:57 +00:00
xscale Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00