On Fri, 2018-03-09 at 11:09 +0100, Paul Kocialkowski wrote: > This presents a newer version of the Sunxi-Cedrus driver, that > supports > the Video Engine found in most Allwinner SoCs, starting with the A10. I had to send this series in two parts (and tried to keep them under the original thread) after the mail server rejected one of the emails mid- series, causing git-send-email to stop. Sorry for the mess. > The first version of this driver[0] was originally written and > submitted > by Florent Revest using a previous version of the request API, that is > necessary to provide coherency between controls and the buffers they > apply > to. The driver was since adapted to use the latest version of the > request > API[1], as submitted by Alexandre Courbot. It is a hard requirement > for > this driver. > > This series also contains fixes for issues encountered with the > current > version of the request API. If accepted, these should eventually be > squashed into the request API series. > > The driver itself currently only supports MPEG2 and more codecs will > be > added to the driver eventually. The output frames provided by the > Video Engine are in a multi-planar 32x32-tiled YUV format, with a > plane > for luminance (Y) and a plane for chrominance (UV). A specific format > is > introduced in the V4L2 API to describe it. > > This implementation is based on the significant work that was > conducted > by various members of the linux-sunxi community for understanding and > documenting the Video Engine's innards. > > [0]: https://lkml.org/lkml/2016/8/25/246 > [1]: https://lkml.org/lkml/2018/2/19/872 > > Florent Revest (5): > v4l: Add sunxi Video Engine pixel format > v4l: Add MPEG2 low-level decoder API control > media: platform: Add Sunxi Cedrus decoder driver > sunxi-cedrus: Add device tree binding document > ARM: dts: sun5i: Use video-engine node > > Icenowy Zheng (1): > ARM: dts: sun8i: add video engine support for A33 > > Paul Kocialkowski (2): > media: vim2m: Try to schedule a m2m device run on request submission > media: videobuf2-v4l2: Copy planes when needed in request qbuf > > Thomas van Kleef (1): > ARM: dts: sun7i: Add video engine support for the A20 > > .../devicetree/bindings/media/sunxi-cedrus.txt | 44 ++ > arch/arm/boot/dts/sun5i-a13.dtsi | 30 ++ > arch/arm/boot/dts/sun7i-a20.dtsi | 47 ++ > arch/arm/boot/dts/sun8i-a33.dtsi | 39 ++ > drivers/media/common/videobuf2/videobuf2-v4l2.c | 19 + > drivers/media/platform/Kconfig | 14 + > drivers/media/platform/Makefile | 1 + > drivers/media/platform/sunxi-cedrus/Makefile | 4 + > drivers/media/platform/sunxi-cedrus/sunxi_cedrus.c | 313 ++++++++++++ > .../platform/sunxi-cedrus/sunxi_cedrus_common.h | 106 ++++ > .../media/platform/sunxi-cedrus/sunxi_cedrus_dec.c | 568 > +++++++++++++++++++++ > .../media/platform/sunxi-cedrus/sunxi_cedrus_dec.h | 33 ++ > .../media/platform/sunxi-cedrus/sunxi_cedrus_hw.c | 185 +++++++ > .../media/platform/sunxi-cedrus/sunxi_cedrus_hw.h | 36 ++ > .../platform/sunxi-cedrus/sunxi_cedrus_mpeg2.c | 152 ++++++ > .../platform/sunxi-cedrus/sunxi_cedrus_regs.h | 170 ++++++ > drivers/media/platform/vim2m.c | 13 +- > drivers/media/v4l2-core/v4l2-ctrls.c | 15 + > drivers/media/v4l2-core/v4l2-ioctl.c | 1 + > include/uapi/linux/v4l2-controls.h | 26 + > include/uapi/linux/videodev2.h | 6 + > 21 files changed, 1821 insertions(+), 1 deletion(-) > create mode 100644 Documentation/devicetree/bindings/media/sunxi- > cedrus.txt > create mode 100644 drivers/media/platform/sunxi-cedrus/Makefile > create mode 100644 drivers/media/platform/sunxi-cedrus/sunxi_cedrus.c > create mode 100644 drivers/media/platform/sunxi- > cedrus/sunxi_cedrus_common.h > create mode 100644 drivers/media/platform/sunxi- > cedrus/sunxi_cedrus_dec.c > create mode 100644 drivers/media/platform/sunxi- > cedrus/sunxi_cedrus_dec.h > create mode 100644 drivers/media/platform/sunxi- > cedrus/sunxi_cedrus_hw.c > create mode 100644 drivers/media/platform/sunxi- > cedrus/sunxi_cedrus_hw.h > create mode 100644 drivers/media/platform/sunxi- > cedrus/sunxi_cedrus_mpeg2.c > create mode 100644 drivers/media/platform/sunxi- > cedrus/sunxi_cedrus_regs.h > -- Paul Kocialkowski, Bootlin (formerly Free Electrons) Embedded Linux and kernel engineering https://bootlin.com