diff options
Diffstat (limited to 'drivers/usb/musb/musb_core.c')
| -rw-r--r-- | drivers/usb/musb/musb_core.c | 26 | 
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index 99beebce855..365a4fab5c6 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)  	unsigned long	flags;  	struct musb	*musb = dev_to_musb(&pdev->dev); +	if (!musb->clock) +		return 0; +  	spin_lock_irqsave(&musb->lock, flags);  	if (is_peripheral_active(musb)) { @@ -2427,12 +2430,10 @@ static int musb_suspend(struct device *dev)  	musb_save_context(musb); -	if (musb->clock) { -		if (musb->set_clock) -			musb->set_clock(musb->clock, 0); -		else -			clk_disable(musb->clock); -	} +	if (musb->set_clock) +		musb->set_clock(musb->clock, 0); +	else +		clk_disable(musb->clock);  	spin_unlock_irqrestore(&musb->lock, flags);  	return 0;  } @@ -2442,12 +2443,13 @@ static int musb_resume_noirq(struct device *dev)  	struct platform_device *pdev = to_platform_device(dev);  	struct musb	*musb = dev_to_musb(&pdev->dev); -	if (musb->clock) { -		if (musb->set_clock) -			musb->set_clock(musb->clock, 1); -		else -			clk_enable(musb->clock); -	} +	if (!musb->clock) +		return 0; + +	if (musb->set_clock) +		musb->set_clock(musb->clock, 1); +	else +		clk_enable(musb->clock);  	musb_restore_context(musb);  |