summaryrefslogtreecommitdiff
path: root/drivers/media/video/cafe_ccic.c
diff options
context:
space:
mode:
authorJonathan Corbet <corbet@lwn.net>2007-10-24 00:30:27 +0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-11-05 02:41:18 +0300
commitc303449741279fc9a108c80e0816f0c4ddca8c09 (patch)
tree4d204da54708e925f38c00bba290ef19756d3cc9 /drivers/media/video/cafe_ccic.c
parenta8ab68bffe3fe7b8e9ff963ea321d283fc77ac5f (diff)
downloadlinux-c303449741279fc9a108c80e0816f0c4ddca8c09.tar.xz
V4L/DVB (6394): Fix a cafe_ccic resume bug
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>
Diffstat (limited to 'drivers/media/video/cafe_ccic.c')
-rw-r--r--drivers/media/video/cafe_ccic.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/video/cafe_ccic.c b/drivers/media/video/cafe_ccic.c
index b63cab336920..2567da7b09eb 100644
--- a/drivers/media/video/cafe_ccic.c
+++ b/drivers/media/video/cafe_ccic.c
@@ -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;
}