powerpc: Add proper reference to dma_mask

Vitaly Bordug vitb at kernel.crashing.org
Tue Jul 8 09:12:56 EST 2008


There is dma_mask in of_device that is being filled upon
of_platform_device_create() but we don't properly set the struct device
in there to point back to it. coherent_dma_mask wasn't set up either -
these caused weird lock-ups and behavior of USB subsystem using
of_device USB host drivers.

Signed-off-by: Vitaly Bordug <vitb at kernel.crashing.org>
---

 arch/powerpc/kernel/of_platform.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c
index e79ad8a..2bf4c04 100644
--- a/arch/powerpc/kernel/of_platform.c
+++ b/arch/powerpc/kernel/of_platform.c
@@ -76,6 +76,9 @@ struct of_device* of_platform_device_create(struct device_node *np,
 		return NULL;
 
 	dev->dma_mask = 0xffffffffUL;
+	dev->dev.dma_mask = &dev->dma_mask;
+	dev->dev.coherent_dma_mask = DMA_32BIT_MASK;
+
 	dev->dev.bus = &of_platform_bus_type;
 
 	/* We do not fill the DMA ops for platform devices by default.



More information about the Linuxppc-dev mailing list