aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-12-01 14:36:27 +0000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-12-08 16:02:52 +1100
commit128b4a0ef74e8d48033513e41a413087ba30e36b (patch)
tree9fe76b544808404892dbe1c8259a02a3cbf9e422
parent7fb19ea054a0cdf1a4d935e68d51bde4d3725414 (diff)
downloadkernel_samsung_crespo-128b4a0ef74e8d48033513e41a413087ba30e36b.zip
kernel_samsung_crespo-128b4a0ef74e8d48033513e41a413087ba30e36b.tar.gz
kernel_samsung_crespo-128b4a0ef74e8d48033513e41a413087ba30e36b.tar.bz2
powerpc/macio: Add dma_parms support to macio
This adds dma_parms to macio devices and initializes them with default values. This will allow pata_macio to setup the appropriate max segment size for the block layer. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r--arch/powerpc/include/asm/macio.h1
-rw-r--r--drivers/macintosh/macio_asic.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/macio.h b/arch/powerpc/include/asm/macio.h
index 2b7b392..86d5fed 100644
--- a/arch/powerpc/include/asm/macio.h
+++ b/arch/powerpc/include/asm/macio.h
@@ -39,6 +39,7 @@ struct macio_dev
struct macio_bus *bus; /* macio bus this device is on */
struct macio_dev *media_bay; /* Device is part of a media bay */
struct of_device ofdev;
+ struct device_dma_parameters dma_parms; /* ide needs that */
int n_resources;
struct resource resource[MACIO_DEV_COUNT_RESOURCES];
int n_interrupts;
diff --git a/drivers/macintosh/macio_asic.c b/drivers/macintosh/macio_asic.c
index 5200acf..26a303a 100644
--- a/drivers/macintosh/macio_asic.c
+++ b/drivers/macintosh/macio_asic.c
@@ -379,6 +379,11 @@ static struct macio_dev * macio_add_one_device(struct macio_chip *chip,
dev->ofdev.dev.parent = parent;
dev->ofdev.dev.bus = &macio_bus_type;
dev->ofdev.dev.release = macio_release_dev;
+ dev->ofdev.dev.dma_parms = &dev->dma_parms;
+
+ /* Standard DMA paremeters */
+ dma_set_max_seg_size(&dev->ofdev.dev, 65536);
+ dma_set_seg_boundary(&dev->ofdev.dev, 0xffffffff);
#ifdef CONFIG_PCI
/* Set the DMA ops to the ones from the PCI device, this could be