Re: [PATCH] Fix suspend/resume of pxa_camera driver

Guennadi Liakhovetski
2008-08-01T21:26:40Z

On Fri, 1 Aug 2008, Robert Jarzmik wrote:

> Ah, I didn't thought of soc_camera_host_ops ... But I agree, it may be better to
> call soc_camera_host_ops->suspend() rather than pxa-camera::suspend(). Which
> brings me to another question, in which order :
> a) soc_camera_ops->suspend() then soc_camera_hosts->suspend()
> b) soc_camera_hosts->suspend() then soc_camera_ops->suspend()
>
> For me, the only working order can be (a), because I need
> soc_camera_host->resume() first to enable QIF Clock, so that i2c interface is
> usable on Micron chip, so that soc_camera->resume() can send i2c commands to the
> camera. Do you think the same ?

On resume we have to do this exactly as you have done it in your last
patch: first restore general parameters on the host, then resume the
camera, and then continue with the FIFOs and activating the DMA. So, I
think, we have no choice but to only call host's resume, passing it the
camera device as a parameter, and let it decide when it wants to resume
the camera. Similar on suspend. This will also be consistent with how
pxa_camera_add_device() calls icd->ops->init(icd) and
pxa_camera_remove_device() calls icd->ops->release(icd).

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer