2018-03-13 1:18 GMT+09:00 Hugues FRUCHET <hugues.fruc...@st.com>:
> Hi Akinobu,
> Thanks for the patch, could you describe the test you made to reproduce
> the issue that I can test on my side ?
> I'm using usually yavta or Gstreamer, but I don't know how to trig the
> power on/off independently of streamon/off.
Capturing a single image by yavta and gstreamer can reproduce this issue
in my environment. I use Xilinx Video IP driver for video device with
the following change in order to support pipeline power management.
With this change, when opening the video device, s_power() is called with
on=1 for subdevice.
I observed the following steps when capturing a single image by
'yavta -n1 -c1 -Ftest.raw /dev/video1'. (The output pixel format is
already set up by media-ctl before this run)
1. open /dev/video1
2. ov5640_s_power() is called with on=1
(ov5640_s_power -> ov5640_set_power -> ov5640_restore_mode
-> ov5640_set_mode, and pending_mode_change is cleared)
3. ov5640_s_stream() is called with on=1
(But ov5640_set_framefmt() is not called because pending_mode_change
has already been cleared in step 2.)
As ov5640_set_framefmt() is not called, output pixel format cannot be
restored (OV5640_REG_FORMAT_CONTROL00 and OV5640_REG_ISP_FORMAT_MUX_CTRL).