aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/musb/musb_core.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 99beebce8550..365a4fab5c64 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2413,6 +2413,9 @@ static int musb_suspend(struct device *dev)
2413 unsigned long flags; 2413 unsigned long flags;
2414 struct musb *musb = dev_to_musb(&pdev->dev); 2414 struct musb *musb = dev_to_musb(&pdev->dev);
2415 2415
2416 if (!musb->clock)
2417 return 0;
2418
2416 spin_lock_irqsave(&musb->lock, flags); 2419 spin_lock_irqsave(&musb->lock, flags);
2417 2420
2418 if (is_peripheral_active(musb)) { 2421 if (is_peripheral_active(musb)) {
@@ -2427,12 +2430,10 @@ static int musb_suspend(struct device *dev)
2427 2430
2428 musb_save_context(musb); 2431 musb_save_context(musb);
2429 2432
2430 if (musb->clock) { 2433 if (musb->set_clock)
2431 if (musb->set_clock) 2434 musb->set_clock(musb->clock, 0);
2432 musb->set_clock(musb->clock, 0); 2435 else
2433 else 2436 clk_disable(musb->clock);
2434 clk_disable(musb->clock);
2435 }
2436 spin_unlock_irqrestore(&musb->lock, flags); 2437 spin_unlock_irqrestore(&musb->lock, flags);
2437 return 0; 2438 return 0;
2438} 2439}
@@ -2442,12 +2443,13 @@ static int musb_resume_noirq(struct device *dev)
2442 struct platform_device *pdev = to_platform_device(dev); 2443 struct platform_device *pdev = to_platform_device(dev);
2443 struct musb *musb = dev_to_musb(&pdev->dev); 2444 struct musb *musb = dev_to_musb(&pdev->dev);
2444 2445
2445 if (musb->clock) { 2446 if (!musb->clock)
2446 if (musb->set_clock) 2447 return 0;
2447 musb->set_clock(musb->clock, 1); 2448
2448 else 2449 if (musb->set_clock)
2449 clk_enable(musb->clock); 2450 musb->set_clock(musb->clock, 1);
2450 } 2451 else
2452 clk_enable(musb->clock);
2451 2453
2452 musb_restore_context(musb); 2454 musb_restore_context(musb);
2453 2455