Commit 6d746f91 authored by Shuah Khan's avatar Shuah Khan Committed by Mauro Carvalho Chehab
Browse files

[media] em28xx-audio: implement em28xx_ops: suspend/resume hooks



Implement em28xx_ops: suspend/resume hooks. em28xx usb driver will
invoke em28xx_ops: suspend and resume hooks for all its extensions
from its suspend() and resume() interfaces.

Signed-off-by: default avatarShuah Khan <shuah.kh@samsung.com>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent 9c669b73
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -989,11 +989,41 @@ static int em28xx_audio_fini(struct em28xx *dev)
	return 0;
}

static int em28xx_audio_suspend(struct em28xx *dev)
{
	if (dev == NULL)
		return 0;

	if (!dev->has_alsa_audio)
		return 0;

	em28xx_info("Suspending audio extension");
	em28xx_deinit_isoc_audio(dev);
	atomic_set(&dev->stream_started, 0);
	return 0;
}

static int em28xx_audio_resume(struct em28xx *dev)
{
	if (dev == NULL)
		return 0;

	if (!dev->has_alsa_audio)
		return 0;

	em28xx_info("Resuming audio extension");
	/* Nothing to do other than schedule_work() ?? */
	schedule_work(&dev->wq_trigger);
	return 0;
}

static struct em28xx_ops audio_ops = {
	.id   = EM28XX_AUDIO,
	.name = "Em28xx Audio Extension",
	.init = em28xx_audio_init,
	.fini = em28xx_audio_fini,
	.suspend = em28xx_audio_suspend,
	.resume = em28xx_audio_resume,
};

static int __init em28xx_alsa_register(void)