V4L/DVB (6394): Fix a cafe_ccic resume bug
authorJonathan Corbet <corbet@lwn.net>
Tue, 23 Oct 2007 20:30:27 +0000 (17:30 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 4 Nov 2007 23:41:18 +0000 (21:41 -0200)
If the system is suspended while the camera is streaming, it will not
continue streaming on resume.  Save the state properly so that resume
works.

Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/cafe_ccic.c

index b63cab33692072a6163463211aaace9fb29619e1..2567da7b09eb9492a0c12d748e746be08084d79a 100644 (file)
@@ -2232,13 +2232,16 @@ static int cafe_pci_suspend(struct pci_dev *pdev, pm_message_t state)
 {
        struct cafe_camera *cam = cafe_find_by_pdev(pdev);
        int ret;
+       enum cafe_state cstate;
 
        ret = pci_save_state(pdev);
        if (ret)
                return ret;
+       cstate = cam->state; /* HACK - stop_dma sets to idle */
        cafe_ctlr_stop_dma(cam);
        cafe_ctlr_power_down(cam);
        pci_disable_device(pdev);
+       cam->state = cstate;
        return 0;
 }