Most of this series are working at the memory management abstraction.

The last patch contain an important bug fix: the logic which configures 
the hardware pipelines add some "delay frames" that are NULL, causing
the driver to crash when userspace selects a resolution different
than the sensor resolution.

It took me a lot of time debugging it, due to all the weirdness and
abstractions with the mm/ allocation, plus the 4+ abstraction
layers that it takes for the driver to actually do something.

We should try to get rid of at least some of the layers as soon as
possible, as it takes a lot of time to debug certain things with all
those layers.

Mauro Carvalho Chehab (20):
  media: atomisp: simplify hive_isp_css_mm_hrt wrapper
  media: atomisp: get rid of the hrt/hive_isp_css_mm_hrt abstraction
    layer
  media: atomisp: reduce abstraction at ia_css_memory_access
  media: atomisp: go one step further to drop ia_css_memory_access.c
  media: atomisp: get rid of mmgr_load and mmgr_store
  media: atomisp: get rid of unused memory_realloc code
  media: atomisp: change the type returned by mmgr alloc
  media: atomisp: get rid of memory_access.c
  media: atomisp: hmm_bo: untag user pointers
  media: atomisp: add debug message to help debugging hmm code
  media: atomisp: use Yocto Aero default hmm pool sizes
  media: atomisp: get rid of a warning message
  media: atomisp: fix driver caps
  media: atomisp: use pin_user_pages() for memory allocation
  media: atomisp: add debug for hmm alloc
  media: atomisp: improve warning for IRQ enable function
  media: atomisp: add debug functions for received events
  media: atomisp: add more comments about frame allocation
  media: atomisp: remove kvmalloc/kvcalloc abstractions
  media: atomisp: avoid OOPS due to non-existing ref_frames

 drivers/staging/media/atomisp/Makefile        |   8 -
 .../staging/media/atomisp/include/hmm/hmm.h   |   7 +-
 .../media/atomisp/include/hmm/hmm_bo.h        |  11 +-
 .../media/atomisp/include/linux/atomisp.h     |   2 +
 .../staging/media/atomisp/pci/atomisp_acc.c   |  27 ++-
 .../staging/media/atomisp/pci/atomisp_cmd.c   |   2 +-
 .../media/atomisp/pci/atomisp_compat.h        |   2 +-
 .../media/atomisp/pci/atomisp_compat_css20.c  |  19 +-
 .../staging/media/atomisp/pci/atomisp_fops.c  |   3 -
 .../staging/media/atomisp/pci/atomisp_ioctl.c |  48 +----
 .../media/atomisp/pci/atomisp_subdev.c        |   8 +-
 .../staging/media/atomisp/pci/atomisp_v4l2.c  |  30 +--
 .../base/refcount/interface/ia_css_refcount.h |  13 +-
 .../atomisp/pci/base/refcount/src/refcount.c  |  19 +-
 .../pci/hive_isp_css_common/host/debug.c      |  15 +-
 .../hive_isp_css_common/host/debug_private.h  |   9 +-
 .../hive_isp_css_include/host/debug_public.h  |   5 +-
 .../memory_access/memory_access.h             | 174 ------------------
 .../pci/hive_isp_css_include/memory_realloc.h |  38 ----
 .../staging/media/atomisp/pci/hive_types.h    |   3 -
 drivers/staging/media/atomisp/pci/hmm/hmm.c   |  35 +++-
 .../staging/media/atomisp/pci/hmm/hmm_bo.c    | 153 +++------------
 .../atomisp/pci/hrt/hive_isp_css_mm_hrt.c     | 124 -------------
 .../atomisp/pci/hrt/hive_isp_css_mm_hrt.h     |  57 ------
 .../media/atomisp/pci/ia_css_frame_public.h   |   2 +-
 .../media/atomisp/pci/ia_css_memory_access.c  |  85 ---------
 .../staging/media/atomisp/pci/ia_css_pipe.h   |   2 +-
 .../pci/isp/kernels/bh/bh_2/ia_css_bh.host.c  |   1 -
 .../isp/kernels/dvs/dvs_1.0/ia_css_dvs.host.c |   5 +-
 .../isp/kernels/dvs/dvs_1.0/ia_css_dvs.host.h |   2 +-
 .../raw_aa_binning_1.0/ia_css_raa.host.c      |   1 -
 .../isp/kernels/ref/ref_1.0/ia_css_ref.host.c |  13 +-
 .../kernels/ref/ref_1.0/ia_css_ref_param.h    |   4 +-
 .../kernels/sdis/sdis_1.0/ia_css_sdis.host.c  |  13 +-
 .../kernels/sdis/sdis_2/ia_css_sdis2.host.c   |   9 +-
 .../kernels/tnr/tnr_1.0/ia_css_tnr_param.h    |   2 +-
 .../media/atomisp/pci/memory_realloc.c        |  81 --------
 .../media/atomisp/pci/mmu/sh_mmu_mrfld.c      |   1 -
 .../atomisp/pci/runtime/binary/src/binary.c   |   8 +-
 .../pci/runtime/debug/src/ia_css_debug.c      |   5 +-
 .../atomisp/pci/runtime/event/src/event.c     |   1 -
 .../frame/interface/ia_css_frame_comm.h       |   4 +-
 .../atomisp/pci/runtime/frame/src/frame.c     |  38 ++--
 .../isp_param/interface/ia_css_isp_param.h    |   2 +-
 .../pci/runtime/isp_param/src/isp_param.c     |  15 +-
 .../pci/runtime/pipeline/src/pipeline.c       |   5 +-
 .../pci/runtime/queue/src/queue_access.c      |  11 +-
 .../runtime/rmgr/interface/ia_css_rmgr_vbuf.h |   3 +-
 .../atomisp/pci/runtime/rmgr/src/rmgr_vbuf.c  |   6 +-
 .../runtime/spctrl/interface/ia_css_spctrl.h  |   2 +-
 .../atomisp/pci/runtime/spctrl/src/spctrl.c   |  17 +-
 drivers/staging/media/atomisp/pci/sh_css.c    |  52 ++----
 .../media/atomisp/pci/sh_css_firmware.c       |   9 +-
 .../media/atomisp/pci/sh_css_firmware.h       |   2 +-
 .../media/atomisp/pci/sh_css_host_data.c      |   2 +-
 .../media/atomisp/pci/sh_css_internal.h       |  76 ++++----
 .../media/atomisp/pci/sh_css_metrics.c        |   9 +-
 .../staging/media/atomisp/pci/sh_css_mmu.c    |   1 -
 .../media/atomisp/pci/sh_css_param_dvs.c      |  21 +--
 .../media/atomisp/pci/sh_css_param_shading.c  |   3 +-
 .../staging/media/atomisp/pci/sh_css_params.c | 161 ++++++++--------
 .../staging/media/atomisp/pci/sh_css_params.h |  12 +-
 drivers/staging/media/atomisp/pci/sh_css_sp.c |  18 +-
 .../staging/media/atomisp/pci/sh_css_struct.h |   2 +-
 64 files changed, 437 insertions(+), 1081 deletions(-)
 delete mode 100644 
drivers/staging/media/atomisp/pci/hive_isp_css_include/memory_access/memory_access.h
 delete mode 100644 
drivers/staging/media/atomisp/pci/hive_isp_css_include/memory_realloc.h
 delete mode 100644 drivers/staging/media/atomisp/pci/hrt/hive_isp_css_mm_hrt.c
 delete mode 100644 drivers/staging/media/atomisp/pci/hrt/hive_isp_css_mm_hrt.h
 delete mode 100644 drivers/staging/media/atomisp/pci/ia_css_memory_access.c
 delete mode 100644 drivers/staging/media/atomisp/pci/memory_realloc.c

-- 
2.26.2


_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to