linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michael Tretter <m.tretter@pengutronix.de>
To: linux-media@vger.kernel.org, devicetree@vger.kernel.org
Cc: kernel@pengutronix.de, robh+dt@kernel.org, mchehab@kernel.org,
	tfiga@chromium.org, Michael Tretter <m.tretter@pengutronix.de>
Subject: [PATCH 0/3] Add ZynqMP VCU/Allegro DVT H.264 encoder driver
Date: Wed,  9 Jan 2019 12:30:34 +0100	[thread overview]
Message-ID: <20190109113037.28430-1-m.tretter@pengutronix.de> (raw)

This series adds support for the Allegro DVT H.264 encoder found in the EV
family of the Xilinx ZynqMP platform.

The encoder is part of the ZynqMP VCU (video codec unit), which supports
encoding and decoding of H.264 and H.265. I am planning to support decoding
and H.265 as well in this driver.

The codec engines are separate hard IP cores in the FPGA of the ZynqMP and
each engine is controlled by a microcontroller (MCU). Each MCU executes code
in its own memory mapped SRAM. This SRAM also contains mailboxes that the
driver uses to exchange command and status messages with the MCU.

Encoder and decoder share an interrupt that is triggered whenever a message is
available in one of the mailboxes. Each MCU provides an interrupt status
register in its own register space.

I would appreciate feedback to the device tree bindings, the overall
architecture of the driver and if there are any major issues that I need to
address.

There are several things already on my own TODO list:

- The driver still contains various hard coded values and only works with a
  resolution of 144x144. I am working on enabling more resolutions and
  actually calculating the hard-coded values.

- The driver also only works with the vcu-firmware release 2018.2 [0]. The
  2018.3 release uses a different mailbox size, which needs to be reflected in
  the driver.

- There is the xlnx-vcu driver for managing the clocks via the FPGA glue code.
  Right now, the allegro driver does not interact with the driver to configure
  the clocks.

I ran v4l2-compliance without failures on the driver, but I think adding the
test results right now only distracts from more important open issues in the
driver.

Michael

[0] https://github.com/Xilinx/vcu-firmware/tree/xilinx-v2018.2

Michael Tretter (3):
  media: dt-bindings: media: document allegro-dvt bindings
  [media] allegro: add Allegro DVT video IP core driver
  [media] allegro: add SPS/PPS nal unit writer

 .../devicetree/bindings/media/allegro.txt     |   35 +
 MAINTAINERS                                   |    6 +
 drivers/staging/media/Kconfig                 |    2 +
 drivers/staging/media/Makefile                |    1 +
 drivers/staging/media/allegro-dvt/Kconfig     |    6 +
 drivers/staging/media/allegro-dvt/Makefile    |    6 +
 .../staging/media/allegro-dvt/allegro-core.c  | 2425 +++++++++++++++++
 drivers/staging/media/allegro-dvt/nal-h264.c  | 1278 +++++++++
 drivers/staging/media/allegro-dvt/nal-h264.h  |  188 ++
 9 files changed, 3947 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/allegro.txt
 create mode 100644 drivers/staging/media/allegro-dvt/Kconfig
 create mode 100644 drivers/staging/media/allegro-dvt/Makefile
 create mode 100644 drivers/staging/media/allegro-dvt/allegro-core.c
 create mode 100644 drivers/staging/media/allegro-dvt/nal-h264.c
 create mode 100644 drivers/staging/media/allegro-dvt/nal-h264.h

-- 
2.19.1


             reply	other threads:[~2019-01-09 11:30 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-09 11:30 Michael Tretter [this message]
2019-01-09 11:30 ` [PATCH 1/3] media: dt-bindings: media: document allegro-dvt bindings Michael Tretter
2019-01-09 11:30 ` [PATCH 2/3] [media] allegro: add Allegro DVT video IP core driver Michael Tretter
2019-01-10  6:00   ` kbuild test robot
2019-01-10 19:49   ` kbuild test robot
2019-01-09 11:30 ` [PATCH 3/3] [media] allegro: add SPS/PPS nal unit writer Michael Tretter
2019-01-10 20:56   ` kbuild test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190109113037.28430-1-m.tretter@pengutronix.de \
    --to=m.tretter@pengutronix.de \
    --cc=devicetree@vger.kernel.org \
    --cc=kernel@pengutronix.de \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=tfiga@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).