Re: [PATCH] cafe_ccic: fix colorspace corruption on resume

2010-10-28 Thread Jonathan Corbet
On Wed, 27 Oct 2010 14:55:00 +0100 (BST)
Daniel Drake d...@laptop.org wrote:

 Only power down during resume if the camera is not in use, and correctly
 reconfigure the sensor during resume.

Makes sense to me.

Acked-by: Jonathan Corbet cor...@lwn.net

jon
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] cafe_ccic: fix colorspace corruption on resume

2010-10-27 Thread Daniel Drake
If you suspend and resume during video capture, the video colours
are corrupted on resume. This is because the sensor is being unconditionally
powered off during the resume path.

Only power down during resume if the camera is not in use, and correctly
reconfigure the sensor during resume.
Fixes http://dev.laptop.org/ticket/10190

Signed-off-by: Daniel Drake d...@laptop.org
---
 drivers/media/video/cafe_ccic.c |5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/media/video/cafe_ccic.c b/drivers/media/video/cafe_ccic.c
index 7bc3667..d147525 100644
--- a/drivers/media/video/cafe_ccic.c
+++ b/drivers/media/video/cafe_ccic.c
@@ -859,8 +859,6 @@ static int cafe_cam_configure(struct cafe_camera *cam)
struct v4l2_mbus_framefmt mbus_fmt;
int ret;
 
-   if (cam-state != S_IDLE)
-   return -EINVAL;
v4l2_fill_mbus_format(mbus_fmt, cam-pix_format, cam-mbus_code);
ret = sensor_call(cam, core, init, 0);
if (ret == 0)
@@ -2197,12 +2195,13 @@ static int cafe_pci_resume(struct pci_dev *pdev)
return ret;
}
cafe_ctlr_init(cam);
-   cafe_ctlr_power_down(cam);
 
mutex_lock(cam-s_mutex);
if (cam-users  0) {
cafe_ctlr_power_up(cam);
__cafe_cam_reset(cam);
+   } else {
+   cafe_ctlr_power_down(cam);
}
mutex_unlock(cam-s_mutex);
 
-- 
1.7.2.3

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html