USB: ehci/mxc: compile fix
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tue, 2 Nov 2010 09:30:57 +0000 (10:30 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 11 Nov 2010 14:56:17 +0000 (06:56 -0800)
Commit
65fd427 (USB: ehci tdi : let's tdi_reset set host mode)

broke the build using ARM's mx51_defconfig:

    CC      drivers/usb/host/ehci-hcd.o
  In file included from drivers/usb/host/ehci-hcd.c:1166:
  drivers/usb/host/ehci-mxc.c: In function 'ehci_mxc_drv_probe':
  drivers/usb/host/ehci-mxc.c:192: error: 'ehci' undeclared (first use in this function)
  drivers/usb/host/ehci-mxc.c:192: error: (Each undeclared identifier is reported only once
  drivers/usb/host/ehci-mxc.c:192: error: for each function it appears in.)
  drivers/usb/host/ehci-mxc.c:117: warning: unused variable 'temp'
  make[3]: *** [drivers/usb/host/ehci-hcd.o] Error 1
  make[2]: *** [drivers/usb/host/ehci-hcd.o] Error 2
  make[1]: *** [sub-make] Error 2
  make: *** [all] Error 2

Fix it together with the warning about the unused variable and use
msleep instead of mdelay as requested by Alan Stern.

Cc: Dinh Nguyen <Dinh.Nguyen@freescale.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tested-by: Nguyen Dinh-R00091 <R00091@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/ehci-mxc.c

index ac9c4d7c44af227ff974b6f5af7636013583bcbc..bce85055019a190d3d835fd0386d8a8cd7f4e746 100644 (file)
@@ -36,6 +36,8 @@ struct ehci_mxc_priv {
 static int ehci_mxc_setup(struct usb_hcd *hcd)
 {
        struct ehci_hcd *ehci = hcd_to_ehci(hcd);
+       struct device *dev = hcd->self.controller;
+       struct mxc_usbh_platform_data *pdata = dev_get_platdata(dev);
        int retval;
 
        /* EHCI registers start at offset 0x100 */
@@ -63,6 +65,12 @@ static int ehci_mxc_setup(struct usb_hcd *hcd)
 
        ehci_reset(ehci);
 
+       /* set up the PORTSCx register */
+       ehci_writel(ehci, pdata->portsc, &ehci->regs->port_status[0]);
+
+       /* is this really needed? */
+       msleep(10);
+
        ehci_port_power(ehci, 0);
        return 0;
 }
@@ -114,7 +122,7 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev)
        struct mxc_usbh_platform_data *pdata = pdev->dev.platform_data;
        struct usb_hcd *hcd;
        struct resource *res;
-       int irq, ret, temp;
+       int irq, ret;
        struct ehci_mxc_priv *priv;
        struct device *dev = &pdev->dev;
 
@@ -188,10 +196,6 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev)
                clk_enable(priv->ahbclk);
        }
 
-       /* set up the PORTSCx register */
-       ehci_writel(ehci, pdata->portsc, &ehci->regs->port_status[0]);
-       mdelay(10);
-
        /* setup specific usb hw */
        ret = mxc_initialize_usb_hw(pdev->id, pdata->flags);
        if (ret < 0)