Hello! This is the implementation of the Chips&Media "CODA988" video codec support within v4l2 driver for coda. Support for the following codecs was implemented: * h264: decoder & encoder * h263: decoder & encoder * mpeg4: decoder & encoder * vp8dec: decoder Support for the following formates was implemented: * yuv420p(I420) * yvu420p(YV12) * NV12 * NV21 Also the following features and fixes were implemented for coda988: * special config for mem_ctrl * special config for encoder header (sps and pps) * special set profile_idc * special set RC config * special set QP * special set slice mode * special set Motion Extimation (ME) * v4l2_ctrl for h264 profile * v4l2_ctrl for h264 level * v4l2_ctrl for h.264 RC mode * v4l2_ctrl for h.264 skipFrame * v4l2_ctrl for h.264 i-frame min/max qp * v4l2_ctrl for h.264 p-frame min/max qp * v4l2_ctrl for h.264 entropy mode * v4l2_ctrl for h.264 8x8transform * v4l2_ctrl for h.264 i-frame period * v4l2_ctrl for h.264 Access Unit Delimiter(AUD) * v4l2_ctrl for h.264 me x/y search range * v4l2_ctrl for h.264 intra refresh period * v4l2_ctrl for h.263 intra/inter qp * v4l2_ctrl for h.263 min/max qp * v4l2_ctrl for mpeg4 min/max qp During adding support for "CODA988" we also did some extra work related to refactoring and improvement of generic part of C&M coda driver: * Improve error checking for probe, irq-handle and etc. * Update work with resets * Replace hard_irq by threaded_irq * Remove double setting of stop flag * Improve some prints * Fix loglevel to avoid performance failure * Fix support of MPEG4 levels * Fix setting gamma for h264enc * Update default velues of QP for mpeg4 I/P * Other minor fixes Sergey Khimich (18): media: coda: Add print if irq isn't present media: coda: Use get_array to work use multiple reset dt-bindings: media: coda: Fix resets count media: coda: Add check result after reset media: coda: using threaded_irq for 0 (bit) interrupt media: coda: Add reset device before getting interrupt media: coda: Add fake IRQ check media: coda: Add log to finish_encode if buffer is too small media: coda: Fix max h.264 level for CODA_DX6 media: coda: Remove double setting of stop flag media: coda: Print size of encoded buff in other place media: coda: Fix loglevel for seq mismatch print media: coda: Fix support for all mpeg4 levels media: coda: Fix handling wrong format in coda_try_fmt media: coda: Use v4l2_ctrl to set gamma for h264enc media: coda: Update default velues of QP for mpeg4 I/P media: coda: Use preferred usleep_range than udelay media: coda: add support coda988 enc and dec .../devicetree/bindings/media/coda.yaml | 2 +- .../platform/chips-media/coda/coda-bit.c | 1114 ++++++++++++++--- .../platform/chips-media/coda/coda-common.c | 430 ++++++- .../platform/chips-media/coda/coda-gdi.c | 149 +++ .../platform/chips-media/coda/coda-h264.c | 10 + .../media/platform/chips-media/coda/coda.h | 41 +- .../platform/chips-media/coda/coda_regs.h | 157 +++ .../media/platform/chips-media/coda/trace.h | 16 + 8 files changed, 1703 insertions(+), 216 deletions(-) -- 2.30.2