diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-06 13:49:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-06 13:49:42 -0400 |
commit | 39eda2aba6be642b71f2e0ad623dcb09fd9d79cf (patch) | |
tree | cd0c8f547847641af73e38aab2478f3119dee490 /drivers/usb | |
parent | 2e515bf096c245ba87f20ab4b4ea20f911afaeda (diff) | |
parent | 9f24b0c9ef9b6b1292579c9e2cd7ff07ddc372b7 (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.c | 16 |
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 | ||
311 | static struct fsl_usb2_platform_data fsl_usb2_mpc5121_pd = { | 313 | static struct fsl_usb2_platform_data fsl_usb2_mpc5121_pd = { |