mbox series

[0/6] media: allegro: Add support for the Encoder Buffer

Message ID 20210908130315.3295253-1-m.tretter@pengutronix.de (mailing list archive)
Headers show
Series media: allegro: Add support for the Encoder Buffer | expand

Message

Michael Tretter Sept. 8, 2021, 1:03 p.m. UTC
Hello,

This series adds support for the Encoder Buffer to the Allegro DVT driver.

The Encoder Buffer (the reference manual sometime also uses the terms L2 cache
or Prefetch Buffer) acts as a cache for the reference frames. The Encoder
Buffer reduces the read accesses of the encoder on its AXI ports. The size of
the buffer is configurable with Vivado before the FPGA bitstream is
synthesized, but not during runtime. The driver is responsible for configuring
the firmware to the configured size of the Encoder Buffer.

Patch 1 adds a check to make sure that the response mailbox is initialized
before the interrupt handler tries to handle mails from this mailbox. This
should never happen, but having the check does not hurt and should make the
checkers happy.

Patch 2 fixes the removal of the module when the firmware initialization has
failed.

Patch 3 and 4 integrate the Allegro DVT driver with the Xilinx VCU driver,
which handles the glue code between the encoder and the FPGA.

Patch 5 and 6 add support for the actual Encoder Buffer and add a control to
explicitly disable it per encoding context, because the Encoder Buffer might
have a negativ impact on the encoding quality.

This series is independent of my other series regarding the NAL unit fixes.

Michael

Michael Tretter (6):
  media: allegro: ignore interrupt if mailbox is not initialized
  media: allegro: fix module removal if initialization failed
  media: allegro: lookup VCU settings
  media: allegro: add pm_runtime support
  media: allegro: add encoder buffer support
  media: allegro: add control to disable encoder buffer

 .../media/platform/allegro-dvt/allegro-core.c | 229 +++++++++++++++++-
 .../media/platform/allegro-dvt/allegro-mail.c |  19 +-
 .../media/platform/allegro-dvt/allegro-mail.h |  10 +-
 include/uapi/linux/v4l2-controls.h            |   5 +
 4 files changed, 235 insertions(+), 28 deletions(-)

Comments

Michael Tretter Oct. 1, 2021, 9:14 a.m. UTC | #1
On Wed, 08 Sep 2021 15:03:09 +0200, Michael Tretter wrote:
> This series adds support for the Encoder Buffer to the Allegro DVT driver.

Gentle Ping.

Michael

> 
> The Encoder Buffer (the reference manual sometime also uses the terms L2 cache
> or Prefetch Buffer) acts as a cache for the reference frames. The Encoder
> Buffer reduces the read accesses of the encoder on its AXI ports. The size of
> the buffer is configurable with Vivado before the FPGA bitstream is
> synthesized, but not during runtime. The driver is responsible for configuring
> the firmware to the configured size of the Encoder Buffer.
> 
> Patch 1 adds a check to make sure that the response mailbox is initialized
> before the interrupt handler tries to handle mails from this mailbox. This
> should never happen, but having the check does not hurt and should make the
> checkers happy.
> 
> Patch 2 fixes the removal of the module when the firmware initialization has
> failed.
> 
> Patch 3 and 4 integrate the Allegro DVT driver with the Xilinx VCU driver,
> which handles the glue code between the encoder and the FPGA.
> 
> Patch 5 and 6 add support for the actual Encoder Buffer and add a control to
> explicitly disable it per encoding context, because the Encoder Buffer might
> have a negativ impact on the encoding quality.
> 
> This series is independent of my other series regarding the NAL unit fixes.
> 
> Michael
> 
> Michael Tretter (6):
>   media: allegro: ignore interrupt if mailbox is not initialized
>   media: allegro: fix module removal if initialization failed
>   media: allegro: lookup VCU settings
>   media: allegro: add pm_runtime support
>   media: allegro: add encoder buffer support
>   media: allegro: add control to disable encoder buffer
> 
>  .../media/platform/allegro-dvt/allegro-core.c | 229 +++++++++++++++++-
>  .../media/platform/allegro-dvt/allegro-mail.c |  19 +-
>  .../media/platform/allegro-dvt/allegro-mail.h |  10 +-
>  include/uapi/linux/v4l2-controls.h            |   5 +
>  4 files changed, 235 insertions(+), 28 deletions(-)
> 
> -- 
> 2.30.2
> 
>