linux/arch/arm
Linus Torvalds 8ceafbfa91 Merge branch 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm
Pull DMA mask updates from Russell King:
 "This series cleans up the handling of DMA masks in a lot of drivers,
  fixing some bugs as we go.

  Some of the more serious errors include:
   - drivers which only set their coherent DMA mask if the attempt to
     set the streaming mask fails.
   - drivers which test for a NULL dma mask pointer, and then set the
     dma mask pointer to a location in their module .data section -
     which will cause problems if the module is reloaded.

  To counter these, I have introduced two helper functions:
   - dma_set_mask_and_coherent() takes care of setting both the
     streaming and coherent masks at the same time, with the correct
     error handling as specified by the API.
   - dma_coerce_mask_and_coherent() which resolves the problem of
     drivers forcefully setting DMA masks.  This is more a marker for
     future work to further clean these locations up - the code which
     creates the devices really should be initialising these, but to fix
     that in one go along with this change could potentially be very
     disruptive.

  The last thing this series does is prise away some of Linux's addition
  to "DMA addresses are physical addresses and RAM always starts at
  zero".  We have ARM LPAE systems where all system memory is above 4GB
  physical, hence having DMA masks interpreted by (eg) the block layers
  as describing physical addresses in the range 0..DMAMASK fails on
  these platforms.  Santosh Shilimkar addresses this in this series; the
  patches were copied to the appropriate people multiple times but were
  ignored.

  Fixing this also gets rid of some ARM weirdness in the setup of the
  max*pfn variables, and brings ARM into line with every other Linux
  architecture as far as those go"

* 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm: (52 commits)
  ARM: 7805/1: mm: change max*pfn to include the physical offset of memory
  ARM: 7797/1: mmc: Use dma_max_pfn(dev) helper for bounce_limit calculations
  ARM: 7796/1: scsi: Use dma_max_pfn(dev) helper for bounce_limit calculations
  ARM: 7795/1: mm: dma-mapping: Add dma_max_pfn(dev) helper function
  ARM: 7794/1: block: Rename parameter dma_mask to max_addr for blk_queue_bounce_limit()
  ARM: DMA-API: better handing of DMA masks for coherent allocations
  ARM: 7857/1: dma: imx-sdma: setup dma mask
  DMA-API: firmware/google/gsmi.c: avoid direct access to DMA masks
  DMA-API: dcdbas: update DMA mask handing
  DMA-API: dma: edma.c: no need to explicitly initialize DMA masks
  DMA-API: usb: musb: use platform_device_register_full() to avoid directly messing with dma masks
  DMA-API: crypto: remove last references to 'static struct device *dev'
  DMA-API: crypto: fix ixp4xx crypto platform device support
  DMA-API: others: use dma_set_coherent_mask()
  DMA-API: staging: use dma_set_coherent_mask()
  DMA-API: usb: use new dma_coerce_mask_and_coherent()
  DMA-API: usb: use dma_set_coherent_mask()
  DMA-API: parport: parport_pc.c: use dma_coerce_mask_and_coherent()
  DMA-API: net: octeon: use dma_coerce_mask_and_coherent()
  DMA-API: net: nxp/lpc_eth: use dma_coerce_mask_and_coherent()
  ...
2013-11-14 07:55:21 +09:00
..
boot Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-11-13 17:40:34 +09:00
common ARM: SoC cleanups for 3.13 2013-11-11 16:42:43 +09:00
configs ARM: SoC DT updates for 3.13 2013-11-11 17:34:56 +09:00
crypto
include Merge branch 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm 2013-11-14 07:55:21 +09:00
kernel mm/arch: use NUMA_NO_NODE 2013-11-13 12:09:05 +09:00
kvm
lib
mach-at91 ARM: SoC DT updates for 3.13 2013-11-11 17:34:56 +09:00
mach-bcm BCM changes for 3.13/soc. A number of cleanup related changes. 2013-10-30 14:03:39 -07:00
mach-bcm2835 Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-12 10:02:59 +09:00
mach-clps711x ARM: clps711x: Use linux/sched_clock.h 2013-10-11 14:50:10 -07:00
mach-cns3xxx
mach-davinci arch/arm/mach-davinci/sram.c: use gen_pool_dma_alloc() to sram.c 2013-11-13 12:09:22 +09:00
mach-dove ARM: driver updates for 3.13 2013-11-11 17:05:37 +09:00
mach-ebsa110
mach-ep93xx usb: ohci: remove ep93xx bus glue platform driver 2013-10-29 16:43:37 -07:00
mach-exynos ARM: SoC cleanups for 3.13 2013-11-11 16:42:43 +09:00
mach-footbridge
mach-gemini GPIO bulk changes for the v3.13 development cycle 2013-11-12 15:50:46 +09:00
mach-highbank ARM: SoC platform changes for 3.13 2013-11-11 16:49:45 +09:00
mach-imx ARM: SoC platform changes for 3.13 2013-11-11 16:49:45 +09:00
mach-integrator DeviceTree updates for 3.13. This is a bit larger pull request than 2013-11-12 16:52:17 +09:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx ARM: ixp4xx: stop broadcasting the custom GPIO API 2013-09-27 14:15:44 +02:00
mach-keystone DeviceTree updates for 3.13. This is a bit larger pull request than 2013-11-12 16:52:17 +09:00
mach-kirkwood ARM: SoC DT updates for 3.13 2013-11-11 17:34:56 +09:00
mach-ks8695
mach-lpc32xx
mach-mmp ARM: mmp: delete the custom GPIO header 2013-09-27 14:00:56 +02:00
mach-msm Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-11-12 10:36:00 +09:00
mach-mv78xx0
mach-mvebu
mach-mxs ARM: SoC DT updates for 3.13 2013-11-11 17:34:56 +09:00
mach-netx
mach-nomadik Merge branch 'clk-of-init-v2_for-3.13' of https://github.com/shesselba/linux-dove into next/cleanup 2013-10-07 09:47:31 -07:00
mach-nspire ARM: nspire: remove custom .init_time hook 2013-09-29 21:09:37 +02:00
mach-omap1 ARM: OMAP1: Fix a bunch of GPIO related section warnings after initdata got corrected 2013-10-18 10:50:51 -07:00
mach-omap2 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2013-11-12 16:27:42 +09:00
mach-orion5x
mach-picoxcell
mach-prima2 ARM: prima2: remove custom .init_time hook 2013-09-29 21:09:38 +02:00
mach-pxa ARM: pxa: delete the custom GPIO header 2013-09-27 14:01:09 +02:00
mach-realview
mach-rockchip ARM: SoC board updates for 3.13 2013-11-11 16:57:16 +09:00
mach-rpc
mach-s3c24xx ARM: S3C24XX: add dma pdata for s3c2410, s3c2440 and s3c2442 2013-10-21 05:32:48 +09:00
mach-s3c64xx regulator: Updates for v3.13 2013-11-12 14:55:17 +09:00
mach-s5p64x0
mach-s5pc100
mach-s5pv210 ARM: Samsung: Remove the MIPI PHY setup code 2013-10-16 13:48:08 -07:00
mach-sa1100
mach-shmobile ARM: SoC board updates for 3.13 2013-11-11 16:57:16 +09:00
mach-socfpga ARM: drop explicit selection of HAVE_CLK and CLKDEV_LOOKUP 2013-10-07 10:41:32 -07:00
mach-spear ARM: drop explicit selection of HAVE_CLK and CLKDEV_LOOKUP 2013-10-07 10:41:32 -07:00
mach-sti ARM: sti: remove custom .init_time hook 2013-09-29 21:09:43 +02:00
mach-sunxi ARM: sunxi: remove .init_time hooks 2013-10-28 10:19:45 -07:00
mach-tegra ARM: SoC platform changes for 3.13 2013-11-11 16:49:45 +09:00
mach-u300 DeviceTree updates for 3.13. This is a bit larger pull request than 2013-11-12 16:52:17 +09:00
mach-ux500 ARM: SoC DT updates for 3.13 2013-11-11 17:34:56 +09:00
mach-versatile
mach-vexpress Via Paul Walmsley <paul@pwsan.com>: 2013-10-28 14:39:03 -07:00
mach-virt
mach-vt8500 ARM: drop explicit selection of HAVE_CLK and CLKDEV_LOOKUP 2013-10-07 10:41:32 -07:00
mach-w90x900 ARM: w90x900: delete <mach/gpio.h> 2013-10-01 10:33:02 +02:00
mach-zynq arm: zynq: Enable arm_global_timer 2013-10-02 11:34:28 +02:00
mm Merge branch 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm 2013-11-14 07:55:21 +09:00
net net: fix unsafe set_memory_rw from softirq 2013-10-07 15:16:45 -04:00
nwfpe
oprofile
plat-iop
plat-omap ARM: OMAP: remove deprecated IRQF_DISABLED 2013-10-03 13:24:36 -07:00
plat-orion
plat-pxa
plat-samsung ARM: SoC DT updates for 3.13 2013-11-11 17:34:56 +09:00
plat-versatile
tools
vfp
xen
Kconfig GPIO bulk changes for the v3.13 development cycle 2013-11-12 15:50:46 +09:00
Kconfig-nommu
Kconfig.debug ARM: imx: add low-level debug for vybrid 2013-10-21 09:11:07 +08:00
Makefile ARM: SoC cleanups for 3.13 2013-11-11 16:42:43 +09:00