Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c338412b authored by Daniel Mack's avatar Daniel Mack Committed by Felipe Balbi
Browse files

usb: musb: unconditionally save and restore the context on suspend



It appears not all platforms featuring a musb core need to save the musb
core registers at suspend time and restore them on resume.

The dsps platform does, however, and because it shouldn't cause any
trouble on other platforms, do it unconditionally for all of them.

Signed-off-by: default avatarDaniel Mack <zonque@gmail.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent e0a6104e
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -2224,16 +2224,28 @@ static int musb_suspend(struct device *dev)
		 */
	}

	musb_save_context(musb);

	spin_unlock_irqrestore(&musb->lock, flags);
	return 0;
}

static int musb_resume_noirq(struct device *dev)
{
	/* for static cmos like DaVinci, register values were preserved
	struct musb	*musb = dev_to_musb(dev);

	/*
	 * For static cmos like DaVinci, register values were preserved
	 * unless for some reason the whole soc powered down or the USB
	 * module got reset through the PSC (vs just being disabled).
	 *
	 * For the DSPS glue layer though, a full register restore has to
	 * be done. As it shouldn't harm other platforms, we do it
	 * unconditionally.
	 */

	musb_restore_context(musb);

	return 0;
}