[RFC] usb: Fix build error due to dma_mask is not at pdev_archdata at ARM

Mehresh Ramneek-B31383 B31383 at freescale.com
Wed Feb 15 19:47:17 EST 2012



-----Original Message-----
From: Chen Peter-B29397 
Sent: Tuesday, February 14, 2012 2:42 PM
To: stern at rowland.harvard.edu; agust at denx.de
Cc: kernel at pengutronix.de; linuxppc-dev at lists.ozlabs.org; Mehresh Ramneek-B31383; Estevam Fabio-R49496; linux-usb at vger.kernel.org
Subject: [RFC] usb: Fix build error due to dma_mask is not at pdev_archdata at ARM

When build i.mx platform with imx_v6_v7_defconfig, and after adding USB Gadget support, it has below build error:

CC      drivers/usb/host/fsl-mph-dr-of.o
drivers/usb/host/fsl-mph-dr-of.c: In function 'fsl_usb2_device_register':
drivers/usb/host/fsl-mph-dr-of.c:97: error: 'struct pdev_archdata'
has no member named 'dma_mask'

It has discussed at: http://www.spinics.net/lists/linux-usb/msg57302.html

For PowerPC, there is dma_mask at struct pdev_archdata, but there is no dma_mask at struct pdev_archdata for ARM. The pdev_archdata is related to specific platform, it should NOT be accessed by cross platform drivers, like USB.

The code for pdev_archdata should be useless, as for PowerPC, it has already gotten the value for pdev->dev.dma_mask at function arch_setup_pdev_archdata of arch/powerpc/kernel/setup-common.c.

Anyone who has PowerPC hardware with USB host enabled, and uses this code can help me a test? Thank you

[Ramneek]: Hi Peter, the code is working for Host stack on PowerPC.
 
Signed-off-by: Peter Chen <peter.chen at freescale.com>
---
 drivers/usb/host/fsl-mph-dr-of.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/usb/host/fsl-mph-dr-of.c b/drivers/usb/host/fsl-mph-dr-of.c
index 7916e56..ab333ac 100644
--- a/drivers/usb/host/fsl-mph-dr-of.c
+++ b/drivers/usb/host/fsl-mph-dr-of.c
@@ -94,7 +94,6 @@ struct platform_device * __devinit fsl_usb2_device_register(
 	pdev->dev.parent = &ofdev->dev;
 
 	pdev->dev.coherent_dma_mask = ofdev->dev.coherent_dma_mask;
-	pdev->dev.dma_mask = &pdev->archdata.dma_mask;
 	*pdev->dev.dma_mask = *ofdev->dev.dma_mask;
 
 	retval = platform_device_add_data(pdev, pdata, sizeof(*pdata));
--
1.7.0.4




More information about the Linuxppc-dev mailing list