summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorXinyu Chen <xinyu.chen@freescale.com>2013-01-04 13:41:54 +0800
committerXinyu Chen <xinyu.chen@freescale.com>2013-01-04 13:41:54 +0800
commitccce7dc63f494aaed6bd3ea55b9e14c76da0931e (patch)
tree6892e44aff8fda5dac08bb0aefa6a0d9b3b92af2 /drivers/usb
parent60daab290bbab00c73cc057ff868f658ec73d304 (diff)
parentc27cb3851bb6f822f8a92e4a1e10fba19284bdd4 (diff)
Merge tag 'rel_imx_3.0.35_1.1.0' into imx_3.0.35_android
Conflicts: drivers/mxc/vpu/mxc_vpu.c drivers/usb/gadget/arcotg_udc.c sound/soc/imx/imx-wm8962.c
Diffstat (limited to 'drivers/usb')
-rwxr-xr-xdrivers/usb/gadget/arcotg_udc.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/usb/gadget/arcotg_udc.c b/drivers/usb/gadget/arcotg_udc.c
index 61d7c237e881..5397efc61ddb 100755
--- a/drivers/usb/gadget/arcotg_udc.c
+++ b/drivers/usb/gadget/arcotg_udc.c
@@ -2911,6 +2911,7 @@ static void fsl_udc_release(struct device *dev)
dma_free_coherent(dev, udc_controller->ep_qh_size,
udc_controller->ep_qh, udc_controller->ep_qh_dma);
kfree(udc_controller);
+ udc_controller = NULL;
}
/******************************************************************
@@ -3255,8 +3256,7 @@ static int fsl_udc_remove(struct platform_device *pdev)
return -ENODEV;
udc_controller->done = &done;
/* open USB PHY clock */
- if (udc_controller->stopped)
- dr_clk_gate(true);
+ dr_clk_gate(true);
/* disable wake up and otgsc interrupt for safely remove udc driver*/
temp = fsl_readl(&dr_regs->otgsc);
@@ -3296,7 +3296,7 @@ static int fsl_udc_remove(struct platform_device *pdev)
release_mem_region(res->start, resource_size(res));
}
#endif
-
+ dr_clk_gate(false);
device_unregister(&udc_controller->gadget.dev);
/* free udc --wait for the release() finished */
wait_for_completion(&done);
@@ -3307,9 +3307,6 @@ static int fsl_udc_remove(struct platform_device *pdev)
if (pdata->exit)
pdata->exit(pdata->pdev);
- if (udc_controller->stopped)
- dr_clk_gate(false);
-
return 0;
}