Hello, This patch series adds support H264 decoding support to the hantro driver and doing some consilidation cleanup in the driver along the way. Some details about the patches forming this patchset: * The first patch is adding support for the sort_r() variant and has been posted separately by Rasmus. I put it back there because Andrew told me to repost it with the patch series using this new variant. As mentioned in the patch itself, I'd like this patch to be merged as soon as possible to avoid the synchronisation burden that might appear if we decide to delay it. * Patch 2 is needed to properly propagate the output buf timestamp to the capture buf one, which is required for intra-frame references. * Patches 3 to 6 are consolidating the code by providing helpers that can be used by all hantro backend and simplifying the ctrl initialization logic. We also constify the controls array. * Patches 7 to 8 are adding common H264 decoding bits and patch 9 is enabling H264 decoding on rk3288 Now, a few words about the dependencies. Unfortunately there are a lot, and that'd be great to have some of them merged. * This series is based on top of Ezequiel's VP8 work [1]. * It depends on [2] which defines/described the H264 decoding mode control. * Depends on [3] since I'm using vb2_get_buffer() to retrieve a reference buffer * The final dep is a fix I sent this morning allowing me to simplify the ctrl initialization logic Regards, Boris Boris Brezillon (5): media: hantro: Move copy_metadata() before doing a decode operation media: hantro: Constify the control array media: hantro: Simplify the controls creation logic media: hantro: Add hantro_get_{src,dst}_buf() helpers media: hantro: Add helpers to prepare/finish a run Hertz Wong (3): media: hantro: Add core bits to support H264 decoding media: hantro: Add support for H264 decoding on G1 media: hantro: Enable H264 decoding on rk3288 Rasmus Villemoes (1): lib/sort.c: implement sort() variant taking context argument drivers/staging/media/hantro/Makefile | 2 + drivers/staging/media/hantro/hantro.h | 24 +- drivers/staging/media/hantro/hantro_drv.c | 95 ++- .../staging/media/hantro/hantro_g1_h264_dec.c | 295 ++++++++ .../media/hantro/hantro_g1_mpeg2_dec.c | 14 +- .../staging/media/hantro/hantro_g1_vp8_dec.c | 17 +- .../staging/media/hantro/hantro_h1_jpeg_enc.c | 11 +- drivers/staging/media/hantro/hantro_h264.c | 638 ++++++++++++++++++ drivers/staging/media/hantro/hantro_hw.h | 55 ++ drivers/staging/media/hantro/hantro_v4l2.c | 15 +- drivers/staging/media/hantro/rk3288_vpu_hw.c | 21 +- .../media/hantro/rk3399_vpu_hw_jpeg_enc.c | 12 +- .../media/hantro/rk3399_vpu_hw_mpeg2_dec.c | 14 +- include/linux/sort.h | 5 + lib/sort.c | 34 +- 15 files changed, 1175 insertions(+), 77 deletions(-) create mode 100644 drivers/staging/media/hantro/hantro_g1_h264_dec.c create mode 100644 drivers/staging/media/hantro/hantro_h264.c -- 2.20.1