Hi All, This patch series converts the staging atomisp driver to use the videobuf2 framework, fixing MMP mode now working. This also contains an important fix to try_fmt handling, so that the various supported output formats can actually be used by userspace which calls try_fmt before doing s_fmt. One thing missing from this conversion is moving over to using a per queue mutex. After getting the basic videobuf2 conversion in place I first needed to do a bunch of other fixes (like the try_fmt one) to make camorama work again, so I ran out of time this weekend. There is a bunch of preparation in the form of commented out code + FIXME comments in "media: atomisp: Convert to videobuf2" this causes a bunch of checkpatch warnings. Moving to a per queue mutex is my next planned patch (series?). So slowly this is starting to look more and more like a standard v4l2 device (with all the complex pipeline handling hidden in the driver, moving that to userspace seems to be impossible with this design since multiple pipeline steps are handled by a single firmware program). Regards, Hans Hans de Goede (17): media: atomisp: Add hmm_create_from_vmalloc_buf() function media: atomisp: Add ia_css_frame_init_from_info() function media: atomisp: Make atomisp_q_video_buffers_to_css() static media: atomisp: On streamoff wait for buffers owned by the CSS to be given back media: atomisp: Remove unused atomisp_buffers_queued[_pipe] functions media: atomisp: Also track buffers in a list when submitted to the ISP media: atomisp: Add an index helper variable to atomisp_buf_done() media: atomisp: Use new atomisp_flush_video_pipe() helper in atomisp_streamoff() media: atomisp: Add ia_css_frame_get_info() helper media: atomisp: Convert to videobuf2 media: atomisp: Make it possible to call atomisp_set_fmt() without a file handle media: atomisp: Fix VIDIOC_REQBUFS failing when VIDIOC_S_FMT has not been called yet media: atomisp: Refactor atomisp_adjust_fmt() media: atomisp: Fix atomisp_try_fmt_cap() always returning YUV420 pixelformat media: atomisp: Make atomisp_g_fmt_cap() default to YUV420 media: atomisp: Remove __atomisp_get_pipe() helper media: atomisp: gc0310: Power on sensor from set_fmt() callback .../media/atomisp/i2c/atomisp-gc0310.c | 14 +- drivers/staging/media/atomisp/i2c/gc0310.h | 1 + .../staging/media/atomisp/include/hmm/hmm.h | 2 + .../media/atomisp/include/hmm/hmm_bo.h | 4 +- .../staging/media/atomisp/pci/atomisp_cmd.c | 353 ++++-------- .../staging/media/atomisp/pci/atomisp_cmd.h | 9 +- .../media/atomisp/pci/atomisp_common.h | 6 +- .../media/atomisp/pci/atomisp_compat.h | 3 +- .../media/atomisp/pci/atomisp_compat_css20.c | 6 +- .../staging/media/atomisp/pci/atomisp_fops.c | 521 ++++++----------- .../staging/media/atomisp/pci/atomisp_fops.h | 13 - .../staging/media/atomisp/pci/atomisp_ioctl.c | 543 ++++-------------- .../staging/media/atomisp/pci/atomisp_ioctl.h | 10 +- .../media/atomisp/pci/atomisp_subdev.c | 1 + .../media/atomisp/pci/atomisp_subdev.h | 20 +- drivers/staging/media/atomisp/pci/hmm/hmm.c | 15 +- .../staging/media/atomisp/pci/hmm/hmm_bo.c | 32 +- .../media/atomisp/pci/ia_css_frame_public.h | 36 +- .../bayer_io_ls/ia_css_bayer_io.host.c | 10 +- .../yuv444_io_ls/ia_css_yuv444_io.host.c | 10 +- .../isp/kernels/ref/ref_1.0/ia_css_ref.host.c | 2 +- .../isp/kernels/tnr/tnr_1.0/ia_css_tnr.host.c | 4 +- .../pci/runtime/debug/src/ia_css_debug.c | 26 +- .../atomisp/pci/runtime/frame/src/frame.c | 82 +-- drivers/staging/media/atomisp/pci/sh_css.c | 38 +- .../staging/media/atomisp/pci/sh_css_params.c | 17 +- drivers/staging/media/atomisp/pci/sh_css_sp.c | 52 +- 27 files changed, 643 insertions(+), 1187 deletions(-) -- 2.37.3