TC: Set DMA masks for devices
[sfrench/cifs-2.6.git] / drivers / tc / tc.c
index 3be9519654e51018032623561a9a0b78f952ea7b..cf3fad2cb87140b810f094d390df69f51e8e3aff 100644 (file)
@@ -2,7 +2,7 @@
  *     TURBOchannel bus services.
  *
  *     Copyright (c) Harald Koerfgen, 1998
- *     Copyright (c) 2001, 2003, 2005, 2006  Maciej W. Rozycki
+ *     Copyright (c) 2001, 2003, 2005, 2006, 2018  Maciej W. Rozycki
  *     Copyright (c) 2005  James Simmons
  *
  *     This file is subject to the terms and conditions of the GNU
@@ -10,6 +10,7 @@
  *     directory of this archive for more details.
  */
 #include <linux/compiler.h>
+#include <linux/dma-mapping.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/ioport.h>
@@ -92,6 +93,11 @@ static void __init tc_bus_add_devices(struct tc_bus *tbus)
                tdev->dev.bus = &tc_bus_type;
                tdev->slot = slot;
 
+               /* TURBOchannel has 34-bit DMA addressing (16GiB space). */
+               tdev->dma_mask = DMA_BIT_MASK(34);
+               tdev->dev.dma_mask = &tdev->dma_mask;
+               tdev->dev.coherent_dma_mask = DMA_BIT_MASK(34);
+
                for (i = 0; i < 8; i++) {
                        tdev->firmware[i] =
                                readb(module + offset + TC_FIRM_VER + 4 * i);