Guennadi Liakhovetski wrote: > To save power soc-camera powers subdevices down, when they are not in use, > if this is supported by the platform. However, the V4L standard dictates, > that video nodes shall preserve configuration between uses. This requires > runtime power management, which is implemented by this patch. It allows > subdevice drivers to specify their runtime power-management methods, by > assigning a type to the video device. It seems a great idea to me. For sure we need some sort of power management control. > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx> > --- > > I've posted this patch to linux-media earlier, but I'd also like to get > comments on linux-pm, sorry to linux-media falks for a duplicate. To > explain a bit - soc_camera.c is a management module, that binds video > interfaces on SoCs and sensor drivers. The calls, that I am adding to > soc_camera.c shall save and restore sensor registers before they are > powered down and after they are powered up. > > diff --git a/drivers/media/video/soc_camera.c b/drivers/media/video/soc_camera.c > index 6b3fbcc..53201f3 100644 > --- a/drivers/media/video/soc_camera.c > +++ b/drivers/media/video/soc_camera.c > @@ -24,6 +24,7 @@ > #include <linux/mutex.h> > #include <linux/module.h> > #include <linux/platform_device.h> > +#include <linux/pm_runtime.h> > #include <linux/vmalloc.h> Hmm... wouldn't it be better to enable it at the subsystem level? We may for example call ? The subsystem can call vidioc_streamoff() at suspend and vidioc_streamon() at resume, if the device were streaming during suspend. We may add another ops to the struct for the drivers/subdrivers that needs additional care. That's said, it shouldn't be hard to implement some routine that will save/restore all registers if the device goes to power down mode. Unfortunately, very few devices successfully recovers from hibernation if streaming. One good example is saa7134, that even disables/re-enables IR IRQ's during suspend/resume. -- Cheers, Mauro _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm