alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Russell King <rmk+kernel@arm.linux.org.uk>
To: alsa-devel@alsa-project.org, b43-dev@lists.infradead.org,
	devel@driverdev.osuosl.org, devicetree@vger.kernel.org,
	dri-devel@lists.freedesktop.org,
	e1000-devel@lists.sourceforge.net,
	linux-arm-kernel@lists.infradead.org,
	linux-crypto@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-fbdev@vger.kernel.org, linux-ide@vger.kernel.org,
	linux-media@vger.kernel.org, linux-mmc@vger.kernel.org,
	linux-nvme@lists.infradead.org, linux-omap@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-samsung-soc@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org,
	netdev@vger.kernel.org,
	Solarflare linux maintainers <linux-net-drivers@solarflare.com>,
	uclinux-dist-devel@blackfin.uclinux.org
Cc: Vinod Koul <vinod.koul@intel.com>, Jens Axboe <axboe@kernel.dk>,
	Dan Williams <dan.j.williams@intel.com>
Subject: [PATCH 48/51] ARM: 7795/1: mm: dma-mapping: Add dma_max_pfn(dev) helper function
Date: Fri, 20 Sep 2013 00:41:06 +0100	[thread overview]
Message-ID: <E1VMnqM-00026g-PP@rmk-PC.arm.linux.org.uk> (raw)
In-Reply-To: <20130919212235.GD12758@n2100.arm.linux.org.uk>

From: Santosh Shilimkar <santosh.shilimkar@ti.com>

Most of the kernel assumes that PFN0 is the start of the physical
memory (RAM). This assumptions is not true on most of the ARM SOCs
and hence and if one try to update the ARM port to follow the assumptions,
we end of breaking the dma bounce limit for few block layer drivers.
One such example is trying to unify the meaning of max*_pfn on ARM
as the bootmem layer expects, breaks few block layer driver dma
bounce limit.

To fix this problem, we introduce dma_max_pfn(dev) generic helper with
a possibility of override from the architecture code. The helper converts
a DMA bitmask of bits to a block PFN number. In all the generic cases,
it is just  "dev->dma_mask >> PAGE_SHIFT" and hence default behavior
is maintained as is.

Subsequent patches will make use of the helper. No functional change.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 include/linux/dma-mapping.h |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index 27d1421..fd4aee2 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -153,6 +153,13 @@ static inline int dma_set_seg_boundary(struct device *dev, unsigned long mask)
 		return -EIO;
 }
 
+#ifndef dma_max_pfn
+static inline unsigned long dma_max_pfn(struct device *dev)
+{
+	return *dev->dma_mask >> PAGE_SHIFT;
+}
+#endif
+
 static inline void *dma_zalloc_coherent(struct device *dev, size_t size,
 					dma_addr_t *dma_handle, gfp_t flag)
 {
-- 
1.7.4.4

  parent reply	other threads:[~2013-09-20  1:18 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-19 21:22 [PATCH 00/51] DMA mask changes Russell King - ARM Linux
2013-09-19 21:25 ` [PATCH 01/51] DMA-API: provide a helper to set both DMA and coherent DMA masks Russell King
     [not found]   ` <E1VMlja-0007fA-HU-eh5Bv4kxaXIANfyc6IWni62ZND6+EDdj@public.gmane.org>
2013-09-20  1:21     ` Ben Hutchings
     [not found]       ` <1379640097.2500.4.camel-/LGg1Z1CJKQ+9kgCwbf1HqK4ta4zdZpAajtMo4Cw6ucAvxtiuMwx3w@public.gmane.org>
2013-09-20 14:12         ` Russell King - ARM Linux
2013-09-19 21:26 ` [PATCH 02/51] DMA-API: net: brocade/bna/bnad.c: fix 32-bit DMA mask handling Russell King
2013-09-19 21:27 ` [PATCH 03/51] DMA-API: net: intel/e1000e: " Russell King
2013-09-20 19:48   ` Jeff Kirsher
2013-09-19 21:30 ` [PATCH 06/51] DMA-API: net: intel/ixgb: " Russell King
2013-09-20 19:50   ` Jeff Kirsher
2013-09-19 21:31 ` [PATCH 07/51] DMA-API: net: intel/ixgbe: " Russell King
2013-09-20 19:51   ` Jeff Kirsher
2013-09-19 21:34 ` [PATCH 10/51] DMA-API: net: broadcom/bnx2x: replace dma_set_mask()+dma_set_coherent_mask() with new helper Russell King
2013-09-19 21:37 ` [PATCH 12/51] DMA-API: net: intel/e1000: " Russell King
2013-09-20 19:45   ` Jeff Kirsher
2013-09-19 21:38 ` [PATCH 13/51] DMA-API: net: sfc/efx.c: " Russell King
2013-09-19 21:39 ` [PATCH 14/51] DMA-API: net: b43: " Russell King
2013-09-19 21:40 ` [PATCH 15/51] DMA-API: net: b43legacy: " Russell King
2013-09-19 21:41 ` [PATCH 16/51] DMA-API: ppc: vio.c: " Russell King
2013-11-15 16:16   ` Cedric Le Goater
2013-09-19 21:42 ` [PATCH 17/51] DMA-API: block: nvme-core: " Russell King
2013-09-19 21:43 ` [PATCH 18/51] DMA-API: staging: et131x: " Russell King
2013-09-19 21:44 ` [PATCH 19/51] DMA-API: media: dt3155v4l: " Russell King
2013-09-30 11:57   ` Hans Verkuil
     [not found]     ` <5249673B.5020705-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2013-10-31 11:46       ` Mauro Carvalho Chehab
2013-10-31 14:49         ` Russell King - ARM Linux
2013-09-19 21:45 ` [PATCH 20/51] DMA-API: usb: bcma: " Russell King
2013-09-19 21:46 ` [PATCH 21/51] DMA-API: usb: ssb-hcd: " Russell King
2013-09-19 21:47 ` [PATCH 22/51] DMA-API: amba: get rid of separate dma_mask Russell King
2013-09-22 12:18   ` Grant Likely
2013-09-19 21:48 ` [PATCH 23/51] DMA-API: dma: pl08x: add dma_set_mask_and_coherent() call Russell King
     [not found]   ` <E1VMm4v-0007hz-RC-eh5Bv4kxaXIANfyc6IWni62ZND6+EDdj@public.gmane.org>
2013-09-23 10:12     ` [alsa-devel] " Vinod Koul
2013-09-19 21:49 ` [PATCH 24/51] DMA-API: dma: pl330: " Russell King
     [not found]   ` <E1VMm5t-0007i5-V7-eh5Bv4kxaXIANfyc6IWni62ZND6+EDdj@public.gmane.org>
2013-09-20 17:26     ` Heiko Stübner
2013-09-21 20:00       ` Russell King - ARM Linux
2013-09-23 10:43         ` [alsa-devel] " Vinod Koul
2013-09-19 21:50 ` [PATCH 25/51] DMA-API: video: clcd: " Russell King
2013-09-19 21:51 ` [PATCH 26/51] DMA-API: usb: ohci-sa1111: add a note about DMA masks Russell King
2013-09-19 21:53 ` [PATCH 28/51] DMA-API: sound: fix dma mask handling in a lot of drivers Russell King
2013-09-20 16:36   ` Mark Brown
2013-09-26  7:51   ` Takashi Iwai
2013-09-26  7:54     ` Russell King - ARM Linux
2013-09-26  8:25       ` Takashi Iwai
2013-09-26  8:29         ` Takashi Iwai
2013-09-19 21:54 ` [PATCH 29/51] DMA-API: ata: pata_octeon_cf: convert to use dma_coerce_mask_and_coherent() Russell King
2013-10-30 19:08   ` Geert Uytterhoeven
2013-09-19 21:55 ` [PATCH 30/51] DMA-API: dma: dw_dmac.c: " Russell King
2013-09-19 21:56 ` [PATCH 31/51] DMA-API: media: omap3isp: " Russell King
     [not found]   ` <E1VMmCg-0007j1-Pi-eh5Bv4kxaXIANfyc6IWni62ZND6+EDdj@public.gmane.org>
2013-09-27  1:56     ` Laurent Pinchart
2013-09-19 21:57 ` [PATCH 32/51] DMA-API: mmc: sdhci-acpi: " Russell King
2013-09-19 21:58 ` [PATCH 33/51] DMA-API: net: nxp/lpc_eth: " Russell King
2013-09-19 21:59 ` [PATCH 34/51] DMA-API: net: octeon: " Russell King
2013-09-19 22:00 ` [PATCH 35/51] DMA-API: parport: parport_pc.c: " Russell King
2013-09-19 22:01 ` [PATCH 36/51] DMA-API: usb: use dma_set_coherent_mask() Russell King
2013-09-20 13:08   ` Felipe Balbi
2013-09-23 12:30   ` Nicolas Ferre
2013-09-23 18:27   ` Alan Stern
     [not found]     ` <Pine.LNX.4.44L0.1309231418030.1348-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2013-09-23 18:42       ` Russell King - ARM Linux
2013-09-19 22:02 ` [PATCH 37/51] DMA-API: usb: use new dma_coerce_mask_and_coherent() Russell King
2013-09-20 13:10   ` Felipe Balbi
     [not found]   ` <E1VMmIV-0007jw-Gq-eh5Bv4kxaXIANfyc6IWni62ZND6+EDdj@public.gmane.org>
2013-09-23 12:34     ` Nicolas Ferre
2013-09-19 22:03 ` [PATCH 38/51] DMA-API: staging: use dma_set_coherent_mask() Russell King
2013-09-19 23:11 ` [PATCH 39/51] DMA-API: others: " Russell King
2013-09-20 12:16   ` Tejun Heo
2013-09-20 12:18     ` Tejun Heo
2013-09-20 14:00     ` Russell King - ARM Linux
2013-09-20 22:20       ` Tejun Heo
2013-09-26 10:51   ` Archit Taneja
2013-09-19 23:12 ` [PATCH 40/51] DMA-API: crypto: fix ixp4xx crypto platform device support Russell King
2013-09-19 23:13 ` [PATCH 41/51] DMA-API: crypto: remove last references to 'static struct device *dev' Russell King
2013-09-19 23:14 ` [PATCH 42/51] DMA-API: usb: musb: use platform_device_register_full() to avoid directly messing with dma masks Russell King
2013-09-20 13:11   ` Felipe Balbi
2013-09-20 13:49     ` Russell King - ARM Linux
2013-09-20 15:15       ` Felipe Balbi
     [not found] ` <20130919212235.GD12758-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-09-19 21:28   ` [PATCH 04/51] DMA-API: net: intel/igb: fix 32-bit DMA mask handling Russell King
2013-09-20 19:49     ` Jeff Kirsher
2013-09-19 21:29   ` [PATCH 05/51] DMA-API: net: intel/igbvf: " Russell King
2013-09-20 19:49     ` Jeff Kirsher
2013-09-19 21:32   ` [PATCH 08/51] DMA-API: net: intel/ixgbevf: " Russell King
2013-09-20 19:51     ` Jeff Kirsher
2013-09-19 21:33   ` [PATCH 09/51] DMA-API: net: broadcom/b44: replace dma_set_mask()+dma_set_coherent_mask() with new helper Russell King
2013-09-19 21:36   ` [PATCH 11/51] DMA-API: net: emulex/benet: " Russell King
2013-09-19 21:52   ` [PATCH 27/51] DMA-API: provide a helper to setup DMA masks Russell King
2013-09-19 23:15   ` [PATCH 43/51] DMA-API: dma: edma.c: no need to explicitly initialize " Russell King
2013-09-23 10:25     ` [alsa-devel] " Vinod Koul
2013-09-23 11:37       ` Russell King - ARM Linux
2013-09-19 23:16   ` [PATCH 44/51] DMA-API: dcdbas: update DMA mask handing Russell King
2013-09-19 23:17 ` [PATCH 45/51] DMA-API: firmware/google/gsmi.c: avoid direct access to DMA masks Russell King
2013-09-19 23:39 ` [PATCH 46/51] ARM: DMA-API: better handing of DMA masks for coherent allocations Russell King
2013-09-19 23:40 ` [PATCH 47/51] ARM: 7794/1: block: Rename parameter dma_mask to max_addr for blk_queue_bounce_limit() Russell King
2013-09-19 23:41 ` Russell King [this message]
2013-09-19 23:42 ` [PATCH 49/51] ARM: 7796/1: scsi: Use dma_max_pfn(dev) helper for bounce_limit calculations Russell King
2013-09-19 23:43 ` [PATCH 50/51] ARM: 7797/1: mmc: " Russell King
2013-09-19 23:44 ` [PATCH 51/51] ARM: 7805/1: mm: change max*pfn to include the physical offset of memory Russell King
2013-09-26 20:23 ` [PATCH 00/51] DMA mask changes Rafał Miłecki
2013-09-27  8:27   ` Russell King - ARM Linux

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1VMnqM-00026g-PP@rmk-PC.arm.linux.org.uk \
    --to=rmk+kernel@arm.linux.org.uk \
    --cc=alsa-devel@alsa-project.org \
    --cc=axboe@kernel.dk \
    --cc=b43-dev@lists.infradead.org \
    --cc=dan.j.williams@intel.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=e1000-devel@lists.sourceforge.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-net-drivers@solarflare.com \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=netdev@vger.kernel.org \
    --cc=uclinux-dist-devel@blackfin.uclinux.org \
    --cc=vinod.koul@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).