nubus: Set default dma mask for nubus_board devices
authorFinn Thain <fthain@telegraphics.com.au>
Mon, 25 Jun 2018 11:46:11 +0000 (21:46 +1000)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Mon, 23 Jul 2018 13:07:12 +0000 (15:07 +0200)
A 32-bit mask is used by default because a NuBus slot has 32
address/data lines and a NuBus board is free to use all of them.

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Tested-by: Stan Johnson <userm57@yahoo.com>
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
drivers/nubus/bus.c

index a59b6c4..ad3d17c 100644 (file)
@@ -5,6 +5,7 @@
 // Copyright (C) 2017 Finn Thain
 
 #include <linux/device.h>
+#include <linux/dma-mapping.h>
 #include <linux/list.h>
 #include <linux/nubus.h>
 #include <linux/seq_file.h>
@@ -93,6 +94,8 @@ int nubus_device_register(struct nubus_board *board)
        board->dev.release = nubus_device_release;
        board->dev.bus = &nubus_bus_type;
        dev_set_name(&board->dev, "slot.%X", board->slot);
+       board->dev.dma_mask = &board->dev.coherent_dma_mask;
+       dma_set_mask(&board->dev, DMA_BIT_MASK(32));
        return device_register(&board->dev);
 }