diff mbox

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

Message ID 75A6930FC6B2FE479E2BC468C9240CE0026C19@039-SN1MPN1-002.039d.mgd.msft.net (mailing list archive)
State Not Applicable
Headers show

Commit Message

Mehresh Ramneek-B31383 Feb. 15, 2012, 8:47 a.m. UTC
-----Original Message-----
From: Chen Peter-B29397 
Sent: Tuesday, February 14, 2012 2:42 PM
To: stern@rowland.harvard.edu; agust@denx.de
Cc: kernel@pengutronix.de; linuxppc-dev@lists.ozlabs.org; Mehresh Ramneek-B31383; Estevam Fabio-R49496; linux-usb@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@freescale.com>
---
 drivers/usb/host/fsl-mph-dr-of.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

--
1.7.0.4

Comments

Chen Peter-B29397 Feb. 16, 2012, 1:12 a.m. UTC | #1
> 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.
 
Thanks, Ramneek. I will post PATCH and add:
Tested-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
diff mbox

Patch

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));