Skip to content

Commit

Permalink
virtio: rng: s3/s4 support
Browse files Browse the repository at this point in the history
Unregister from the hwrng interface and remove the vq before entering
the S3 or S4 states.  Add the vq and re-register with hwrng on restore.

Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
  • Loading branch information
Amit Shah authored and Rusty Russell committed Jul 30, 2012
1 parent 178d855 commit 0bc1a2e
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions drivers/char/hw_random/virtio-rng.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,19 @@ static void __devexit virtrng_remove(struct virtio_device *vdev)
remove_common(vdev);
}

#ifdef CONFIG_PM
static int virtrng_freeze(struct virtio_device *vdev)
{
remove_common(vdev);
return 0;
}

static int virtrng_restore(struct virtio_device *vdev)
{
return probe_common(vdev);
}
#endif

static struct virtio_device_id id_table[] = {
{ VIRTIO_ID_RNG, VIRTIO_DEV_ANY_ID },
{ 0 },
Expand All @@ -135,6 +148,10 @@ static struct virtio_driver virtio_rng_driver = {
.id_table = id_table,
.probe = virtrng_probe,
.remove = __devexit_p(virtrng_remove),
#ifdef CONFIG_PM
.freeze = virtrng_freeze,
.restore = virtrng_restore,
#endif
};

static int __init init(void)
Expand Down

0 comments on commit 0bc1a2e

Please sign in to comment.