aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/DMA-mapping.txt4
-rw-r--r--Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl16
-rw-r--r--drivers/media/video/saa7134/saa7134-core.c3
-rw-r--r--drivers/sn/ioc3.c5
-rw-r--r--include/linux/dma-mapping.h2
-rw-r--r--sound/oss/emu10k1/main.c3
-rw-r--r--sound/pci/als300.c5
7 files changed, 21 insertions, 17 deletions
diff --git a/Documentation/DMA-mapping.txt b/Documentation/DMA-mapping.txt
index ee4bb73683cd..10bf4deb96aa 100644
--- a/Documentation/DMA-mapping.txt
+++ b/Documentation/DMA-mapping.txt
@@ -194,7 +194,7 @@ document for how to handle this case.
194Finally, if your device can only drive the low 24-bits of 194Finally, if your device can only drive the low 24-bits of
195address during PCI bus mastering you might do something like: 195address during PCI bus mastering you might do something like:
196 196
197 if (pci_set_dma_mask(pdev, 0x00ffffff)) { 197 if (pci_set_dma_mask(pdev, DMA_24BIT_MASK)) {
198 printk(KERN_WARNING 198 printk(KERN_WARNING
199 "mydev: 24-bit DMA addressing not available.\n"); 199 "mydev: 24-bit DMA addressing not available.\n");
200 goto ignore_this_device; 200 goto ignore_this_device;
@@ -212,7 +212,7 @@ functions (for example a sound card provides playback and record
212functions) and the various different functions have _different_ 212functions) and the various different functions have _different_
213DMA addressing limitations, you may wish to probe each mask and 213DMA addressing limitations, you may wish to probe each mask and
214only provide the functionality which the machine can handle. It 214only provide the functionality which the machine can handle. It
215is important that the last call to pci_set_dma_mask() be for the 215is important that the last call to pci_set_dma_mask() be for the
216most specific mask. 216most specific mask.
217 217
218Here is pseudo-code showing how this might be done: 218Here is pseudo-code showing how this might be done:
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
index 6feef9e82b63..68eeebc17ff4 100644
--- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
+++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
@@ -1123,8 +1123,8 @@
1123 if ((err = pci_enable_device(pci)) < 0) 1123 if ((err = pci_enable_device(pci)) < 0)
1124 return err; 1124 return err;
1125 /* check PCI availability (28bit DMA) */ 1125 /* check PCI availability (28bit DMA) */
1126 if (pci_set_dma_mask(pci, 0x0fffffff) < 0 || 1126 if (pci_set_dma_mask(pci, DMA_28BIT_MASK) < 0 ||
1127 pci_set_consistent_dma_mask(pci, 0x0fffffff) < 0) { 1127 pci_set_consistent_dma_mask(pci, DMA_28BIT_MASK) < 0) {
1128 printk(KERN_ERR "error to set 28bit mask DMA\n"); 1128 printk(KERN_ERR "error to set 28bit mask DMA\n");
1129 pci_disable_device(pci); 1129 pci_disable_device(pci);
1130 return -ENXIO; 1130 return -ENXIO;
@@ -1216,7 +1216,7 @@
1216 The allocation of PCI resources is done in the 1216 The allocation of PCI resources is done in the
1217 <function>probe()</function> function, and usually an extra 1217 <function>probe()</function> function, and usually an extra
1218 <function>xxx_create()</function> function is written for this 1218 <function>xxx_create()</function> function is written for this
1219 purpose. 1219 purpose.
1220 </para> 1220 </para>
1221 1221
1222 <para> 1222 <para>
@@ -1225,7 +1225,7 @@
1225 allocating resources. Also, you need to set the proper PCI DMA 1225 allocating resources. Also, you need to set the proper PCI DMA
1226 mask to limit the accessed i/o range. In some cases, you might 1226 mask to limit the accessed i/o range. In some cases, you might
1227 need to call <function>pci_set_master()</function> function, 1227 need to call <function>pci_set_master()</function> function,
1228 too. 1228 too.
1229 </para> 1229 </para>
1230 1230
1231 <para> 1231 <para>
@@ -1236,8 +1236,8 @@
1236<![CDATA[ 1236<![CDATA[
1237 if ((err = pci_enable_device(pci)) < 0) 1237 if ((err = pci_enable_device(pci)) < 0)
1238 return err; 1238 return err;
1239 if (pci_set_dma_mask(pci, 0x0fffffff) < 0 || 1239 if (pci_set_dma_mask(pci, DMA_28BIT_MASK) < 0 ||
1240 pci_set_consistent_dma_mask(pci, 0x0fffffff) < 0) { 1240 pci_set_consistent_dma_mask(pci, DMA_28BIT_MASK) < 0) {
1241 printk(KERN_ERR "error to set 28bit mask DMA\n"); 1241 printk(KERN_ERR "error to set 28bit mask DMA\n");
1242 pci_disable_device(pci); 1242 pci_disable_device(pci);
1243 return -ENXIO; 1243 return -ENXIO;
@@ -1256,13 +1256,13 @@
1256 functions. Unlike ALSA ver.0.5.x., there are no helpers for 1256 functions. Unlike ALSA ver.0.5.x., there are no helpers for
1257 that. And these resources must be released in the destructor 1257 that. And these resources must be released in the destructor
1258 function (see below). Also, on ALSA 0.9.x, you don't need to 1258 function (see below). Also, on ALSA 0.9.x, you don't need to
1259 allocate (pseudo-)DMA for PCI like ALSA 0.5.x. 1259 allocate (pseudo-)DMA for PCI like ALSA 0.5.x.
1260 </para> 1260 </para>
1261 1261
1262 <para> 1262 <para>
1263 Now assume that this PCI device has an I/O port with 8 bytes 1263 Now assume that this PCI device has an I/O port with 8 bytes
1264 and an interrupt. Then struct <structname>mychip</structname> will have the 1264 and an interrupt. Then struct <structname>mychip</structname> will have the
1265 following fields: 1265 following fields:
1266 1266
1267 <informalexample> 1267 <informalexample>
1268 <programlisting> 1268 <programlisting>
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c
index c98571c9d5a6..13de05532e0a 100644
--- a/drivers/media/video/saa7134/saa7134-core.c
+++ b/drivers/media/video/saa7134/saa7134-core.c
@@ -32,6 +32,7 @@
32#include <linux/interrupt.h> 32#include <linux/interrupt.h>
33#include <linux/delay.h> 33#include <linux/delay.h>
34#include <linux/mutex.h> 34#include <linux/mutex.h>
35#include <linux/dma-mapping.h>
35 36
36#include "saa7134-reg.h" 37#include "saa7134-reg.h"
37#include "saa7134.h" 38#include "saa7134.h"
@@ -870,7 +871,7 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
870 pci_name(pci_dev), dev->pci_rev, pci_dev->irq, 871 pci_name(pci_dev), dev->pci_rev, pci_dev->irq,
871 dev->pci_lat,pci_resource_start(pci_dev,0)); 872 dev->pci_lat,pci_resource_start(pci_dev,0));
872 pci_set_master(pci_dev); 873 pci_set_master(pci_dev);
873 if (!pci_dma_supported(pci_dev,0xffffffff)) { 874 if (!pci_dma_supported(pci_dev, DMA_32BIT_MASK)) {
874 printk("%s: Oops: no 32bit PCI DMA ???\n",dev->name); 875 printk("%s: Oops: no 32bit PCI DMA ???\n",dev->name);
875 err = -EIO; 876 err = -EIO;
876 goto fail1; 877 goto fail1;
diff --git a/drivers/sn/ioc3.c b/drivers/sn/ioc3.c
index 93449a1a0065..0b49ff78efc1 100644
--- a/drivers/sn/ioc3.c
+++ b/drivers/sn/ioc3.c
@@ -11,6 +11,7 @@
11#include <linux/errno.h> 11#include <linux/errno.h>
12#include <linux/module.h> 12#include <linux/module.h>
13#include <linux/pci.h> 13#include <linux/pci.h>
14#include <linux/dma-mapping.h>
14#include <linux/interrupt.h> 15#include <linux/interrupt.h>
15#include <linux/spinlock.h> 16#include <linux/spinlock.h>
16#include <linux/delay.h> 17#include <linux/delay.h>
@@ -619,9 +620,9 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
619 pci_set_master(pdev); 620 pci_set_master(pdev);
620 621
621#ifdef USE_64BIT_DMA 622#ifdef USE_64BIT_DMA
622 ret = pci_set_dma_mask(pdev, 0xffffffffffffffffULL); 623 ret = pci_set_dma_mask(pdev, DMA_64BIT_MASK);
623 if (!ret) { 624 if (!ret) {
624 ret = pci_set_consistent_dma_mask(pdev, 0xffffffffffffffffULL); 625 ret = pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK);
625 if (ret < 0) { 626 if (ret < 0) {
626 printk(KERN_WARNING "%s: Unable to obtain 64 bit DMA " 627 printk(KERN_WARNING "%s: Unable to obtain 64 bit DMA "
627 "for consistent allocations\n", 628 "for consistent allocations\n",
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index 9b4751aecc23..ff61817082fa 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -21,7 +21,7 @@ enum dma_data_direction {
21#define DMA_30BIT_MASK 0x000000003fffffffULL 21#define DMA_30BIT_MASK 0x000000003fffffffULL
22#define DMA_29BIT_MASK 0x000000001fffffffULL 22#define DMA_29BIT_MASK 0x000000001fffffffULL
23#define DMA_28BIT_MASK 0x000000000fffffffULL 23#define DMA_28BIT_MASK 0x000000000fffffffULL
24#define DMA_24BIT_MASK 0x0000000000ffffffULL 24#define DMA_24BIT_MASK 0x0000000000ffffffULL
25 25
26#include <asm/dma-mapping.h> 26#include <asm/dma-mapping.h>
27 27
diff --git a/sound/oss/emu10k1/main.c b/sound/oss/emu10k1/main.c
index 0cd44a6f7ac0..3721c5857b90 100644
--- a/sound/oss/emu10k1/main.c
+++ b/sound/oss/emu10k1/main.c
@@ -94,6 +94,7 @@
94#include <linux/init.h> 94#include <linux/init.h>
95#include <linux/delay.h> 95#include <linux/delay.h>
96#include <linux/proc_fs.h> 96#include <linux/proc_fs.h>
97#include <linux/dma-mapping.h>
97 98
98#include "hwaccess.h" 99#include "hwaccess.h"
99#include "8010.h" 100#include "8010.h"
@@ -119,7 +120,7 @@
119 120
120 121
121/* the emu10k1 _seems_ to only supports 29 bit (512MiB) bit bus master */ 122/* the emu10k1 _seems_ to only supports 29 bit (512MiB) bit bus master */
122#define EMU10K1_DMA_MASK 0x1fffffff /* DMA buffer mask for pci_alloc_consist */ 123#define EMU10K1_DMA_MASK DMA_29BIT_MASK /* DMA buffer mask for pci_alloc_consist */
123 124
124#ifndef PCI_VENDOR_ID_CREATIVE 125#ifndef PCI_VENDOR_ID_CREATIVE
125#define PCI_VENDOR_ID_CREATIVE 0x1102 126#define PCI_VENDOR_ID_CREATIVE 0x1102
diff --git a/sound/pci/als300.c b/sound/pci/als300.c
index 37b80570a5c6..91899f87f037 100644
--- a/sound/pci/als300.c
+++ b/sound/pci/als300.c
@@ -35,6 +35,7 @@
35#include <linux/init.h> 35#include <linux/init.h>
36#include <linux/moduleparam.h> 36#include <linux/moduleparam.h>
37#include <linux/pci.h> 37#include <linux/pci.h>
38#include <linux/dma-mapping.h>
38#include <linux/interrupt.h> 39#include <linux/interrupt.h>
39#include <linux/slab.h> 40#include <linux/slab.h>
40 41
@@ -691,8 +692,8 @@ static int __devinit snd_als300_create(snd_card_t *card,
691 if ((err = pci_enable_device(pci)) < 0) 692 if ((err = pci_enable_device(pci)) < 0)
692 return err; 693 return err;
693 694
694 if (pci_set_dma_mask(pci, 0x0fffffff) < 0 || 695 if (pci_set_dma_mask(pci, DMA_28BIT_MASK) < 0 ||
695 pci_set_consistent_dma_mask(pci, 0x0fffffff) < 0) { 696 pci_set_consistent_dma_mask(pci, DMA_28BIT_MASK) < 0) {
696 printk(KERN_ERR "error setting 28bit DMA mask\n"); 697 printk(KERN_ERR "error setting 28bit DMA mask\n");
697 pci_disable_device(pci); 698 pci_disable_device(pci);
698 return -ENXIO; 699 return -ENXIO;