aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-09-06 13:49:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-06 13:49:42 -0400
commit39eda2aba6be642b71f2e0ad623dcb09fd9d79cf (patch)
treecd0c8f547847641af73e38aab2478f3119dee490 /drivers/usb
parent2e515bf096c245ba87f20ab4b4ea20f911afaeda (diff)
parent9f24b0c9ef9b6b1292579c9e2cd7ff07ddc372b7 (diff)
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
Pull powerpc updates from Ben Herrenschmidt: "Here's the powerpc batch for this merge window. Some of the highlights are: - A bunch of endian fixes ! We don't have full LE support yet in that release but this contains a lot of fixes all over arch/powerpc to use the proper accessors, call the firmware with the right endian mode, etc... - A few updates to our "powernv" platform (non-virtualized, the one to run KVM on), among other, support for bridging the P8 LPC bus for UARTs, support and some EEH fixes. - Some mpc51xx clock API cleanups in preparation for a clock API overhaul - A pile of cleanups of our old math emulation code, including better support for using it to emulate optional FP instructions on embedded chips that otherwise have a HW FPU. - Some infrastructure in selftest, for powerpc now, but could be generalized, initially used by some tests for our perf instruction counting code. - A pile of fixes for hotplug on pseries (that was seriously bitrotting) - The usual slew of freescale embedded updates, new boards, 64-bit hiberation support, e6500 core PMU support, etc..." * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (146 commits) powerpc: Correct FSCR bit definitions powerpc/xmon: Fix printing of set of CPUs in xmon powerpc/pseries: Move lparcfg.c to platforms/pseries powerpc/powernv: Return secondary CPUs to firmware on kexec powerpc/btext: Fix CONFIG_PPC_EARLY_DEBUG_BOOTX on ppc32 powerpc: Cleanup handling of the DSCR bit in the FSCR register powerpc/pseries: Child nodes are not detached by dlpar_detach_node powerpc/pseries: Add mising of_node_put in delete_dt_node powerpc/pseries: Make dlpar_configure_connector parent node aware powerpc/pseries: Do all node initialization in dlpar_parse_cc_node powerpc/pseries: Fix parsing of initial node path in update_dt_node powerpc/pseries: Pack update_props_workarea to map correctly to rtas buffer header powerpc/pseries: Fix over writing of rtas return code in update_dt_node powerpc/pseries: Fix creation of loop in device node property list powerpc: Skip emulating & leave interrupts off for kernel program checks powerpc: Add more exception trampolines for hypervisor exceptions powerpc: Fix location and rename exception trampolines powerpc: Add more trap names to xmon powerpc/pseries: Add a warning in the case of cross-cpu VPA registration powerpc: Update the 00-Index in Documentation/powerpc ...
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/fsl-mph-dr-of.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/usb/host/fsl-mph-dr-of.c b/drivers/usb/host/fsl-mph-dr-of.c
index cfbff7161828..9e0020d9e4c8 100644
--- a/drivers/usb/host/fsl-mph-dr-of.c
+++ b/drivers/usb/host/fsl-mph-dr-of.c
@@ -260,6 +260,7 @@ int fsl_usb2_mpc5121_init(struct platform_device *pdev)
260{ 260{
261 struct fsl_usb2_platform_data *pdata = dev_get_platdata(&pdev->dev); 261 struct fsl_usb2_platform_data *pdata = dev_get_platdata(&pdev->dev);
262 struct clk *clk; 262 struct clk *clk;
263 int err;
263 char clk_name[10]; 264 char clk_name[10];
264 int base, clk_num; 265 int base, clk_num;
265 266
@@ -272,13 +273,16 @@ int fsl_usb2_mpc5121_init(struct platform_device *pdev)
272 return -ENODEV; 273 return -ENODEV;
273 274
274 snprintf(clk_name, sizeof(clk_name), "usb%d_clk", clk_num); 275 snprintf(clk_name, sizeof(clk_name), "usb%d_clk", clk_num);
275 clk = clk_get(&pdev->dev, clk_name); 276 clk = devm_clk_get(pdev->dev.parent, clk_name);
276 if (IS_ERR(clk)) { 277 if (IS_ERR(clk)) {
277 dev_err(&pdev->dev, "failed to get clk\n"); 278 dev_err(&pdev->dev, "failed to get clk\n");
278 return PTR_ERR(clk); 279 return PTR_ERR(clk);
279 } 280 }
280 281 err = clk_prepare_enable(clk);
281 clk_enable(clk); 282 if (err) {
283 dev_err(&pdev->dev, "failed to enable clk\n");
284 return err;
285 }
282 pdata->clk = clk; 286 pdata->clk = clk;
283 287
284 if (pdata->phy_mode == FSL_USB2_PHY_UTMI_WIDE) { 288 if (pdata->phy_mode == FSL_USB2_PHY_UTMI_WIDE) {
@@ -302,10 +306,8 @@ static void fsl_usb2_mpc5121_exit(struct platform_device *pdev)
302 306
303 pdata->regs = NULL; 307 pdata->regs = NULL;
304 308
305 if (pdata->clk) { 309 if (pdata->clk)
306 clk_disable(pdata->clk); 310 clk_disable_unprepare(pdata->clk);
307 clk_put(pdata->clk);
308 }
309} 311}
310 312
311static struct fsl_usb2_platform_data fsl_usb2_mpc5121_pd = { 313static struct fsl_usb2_platform_data fsl_usb2_mpc5121_pd = {