V4L/DVB (6026): Avoid powering up the camera on resume
authorChris Ball <cjb@laptop.org>
Fri, 17 Aug 2007 04:01:33 +0000 (01:01 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Mon, 20 Aug 2007 15:18:04 +0000 (12:18 -0300)
Signed-off-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/cafe_ccic.c

index c08f650df42337df25a517eb7538e7a29c9a8a8d..88090107cd4406a90edad0a36d4fbb3c3e4ae6bf 100644 (file)
@@ -2233,12 +2233,21 @@ static int cafe_pci_resume(struct pci_dev *pdev)
        if (ret)
                return ret;
        ret = pci_enable_device(pdev);
+
        if (ret) {
                cam_warn(cam, "Unable to re-enable device on resume!\n");
                return ret;
        }
        cafe_ctlr_init(cam);
-       cafe_ctlr_power_up(cam);
+       cafe_ctlr_power_down(cam);
+
+       mutex_lock(&cam->s_mutex);
+       if (cam->users > 0) {
+               cafe_ctlr_power_up(cam);
+               __cafe_cam_reset(cam);
+       }
+       mutex_unlock(&cam->s_mutex);
+
        set_bit(CF_CONFIG_NEEDED, &cam->flags);
        if (cam->state == S_SPECREAD)
                cam->state = S_IDLE;  /* Don't bother restarting */