mbox series

[v2,00/17] media: atomisp: Convert to videobuf2

Message ID 20221020195533.114049-1-hdegoede@redhat.com
Headers show
Series media: atomisp: Convert to videobuf2 | expand

Message

Hans de Goede Oct. 20, 2022, 7:55 p.m. UTC
Hi All,

Here is v2 of my patch series converting the staging atomisp driver to use
the videobuf2 framework, fixing MMAP mode not working.

New in v2 is that the "media: atomisp: Convert to videobuf2" patch
now also contains moving over to using a per vb_queue lock as is
standard for v4l2 drivers. This removes a bunch of FIXME + checkpatch
warnings (due to commented out prep for this) from v1 of this patch.
This v2 also fixes the 1 new warning pointed out by the lkp test robot.

For some more background info here are the still relevant bits of
the v1 cover-letter:

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.

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  | 528 ++++++-----------
 .../staging/media/atomisp/pci/atomisp_fops.h  |  13 -
 .../staging/media/atomisp/pci/atomisp_ioctl.c | 536 ++++--------------
 .../staging/media/atomisp/pci/atomisp_ioctl.h |  10 +-
 .../media/atomisp/pci/atomisp_subdev.c        |   2 +
 .../media/atomisp/pci/atomisp_subdev.h        |  22 +-
 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, 640 insertions(+), 1193 deletions(-)

Comments

Andy Shevchenko Nov. 14, 2022, 12:22 p.m. UTC | #1
On Thu, Oct 20, 2022 at 09:55:16PM +0200, Hans de Goede wrote:
> Hi All,
> 
> Here is v2 of my patch series converting the staging atomisp driver to use
> the videobuf2 framework, fixing MMAP mode not working.
> 
> New in v2 is that the "media: atomisp: Convert to videobuf2" patch
> now also contains moving over to using a per vb_queue lock as is
> standard for v4l2 drivers. This removes a bunch of FIXME + checkpatch
> warnings (due to commented out prep for this) from v1 of this patch.
> This v2 also fixes the 1 new warning pointed out by the lkp test robot.
> 
> For some more background info here are the still relevant bits of
> the v1 cover-letter:
> 
> 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.
> 
> 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).

I completely in favour of the series, so
Reviewed-by: Andy Shevchenko <andy@kernel.org>
for non-commented patches, for the commented, where comment is a "side note".

For the rest depends on your action, if you are going to address as suggested,
feel free to add my tag.
Hans de Goede Nov. 20, 2022, 10:39 p.m. UTC | #2
Hi,

On 11/14/22 13:22, Andy Shevchenko wrote:
> On Thu, Oct 20, 2022 at 09:55:16PM +0200, Hans de Goede wrote:
>> Hi All,
>>
>> Here is v2 of my patch series converting the staging atomisp driver to use
>> the videobuf2 framework, fixing MMAP mode not working.
>>
>> New in v2 is that the "media: atomisp: Convert to videobuf2" patch
>> now also contains moving over to using a per vb_queue lock as is
>> standard for v4l2 drivers. This removes a bunch of FIXME + checkpatch
>> warnings (due to commented out prep for this) from v1 of this patch.
>> This v2 also fixes the 1 new warning pointed out by the lkp test robot.
>>
>> For some more background info here are the still relevant bits of
>> the v1 cover-letter:
>>
>> 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.
>>
>> 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).
> 
> I completely in favour of the series, so
> Reviewed-by: Andy Shevchenko <andy@kernel.org>
> for non-commented patches, for the commented, where comment is a "side note".
> 
> For the rest depends on your action, if you are going to address as suggested,
> feel free to add my tag.

Thanks, I've pushed an updated version with your suggested changes and
your Reviewed-by added to my media-atomisp branch in preparation for
sending a pull-req to Mauro with these changes.

I'll also add your patch "[PATCH v1 1/1] atomisp: Make bds_factors_list be type
of struct u32_fract" there once I have had the time to review it.

Note since I send out this series I've been working on a bunch of further
cleanups / on preparation work for getting rid of the ugly PCI power-management
errors on (runtime)suspend/resume.

I will send these out as a patch series now and I've also pushed these to my
media-atomisp branch.

Regards,

Hans