public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: Neil Armstrong <narmstrong@baylibre•com>
To: dri-devel@lists•freedesktop.org
Cc: khilman@baylibre•com, linux-amlogic@lists•infradead.org,
	linux-arm-kernel@lists•infradead.org,
	Neil Armstrong <narmstrong@baylibre•com>
Subject: [PATCH 0/3] drm/meson: implement RDMA for AFBC reset on vsync
Date: Tue, 15 Oct 2019 13:33:14 +0200	[thread overview]
Message-ID: <20191015113317.8870-1-narmstrong@baylibre.com> (raw)

The VPU embeds a "Register DMA" that can write a sequence of registers
on the VPU AHB bus, either manually or triggered by an internal IRQ
event like VSYNC or a line input counter.

The initial implementation handles a single channel (over 8), triggered
by the VSYNC irq and does not handle the RDMA irq.

The RDMA will be usefull to reset and program the AFBC decoder unit
on each vsync without involving the interrupt handler that can
be masked for a long period of time, producing display glitches.

For this we use the meson_rdma_writel_sync() which adds the register
write tuple (VPU register offset and register value) to the RDMA buffer
and write the value to the HW.

When enabled, the RDMA is enabled to rewritte the same sequence at the
next VSYNC event, until a new buffer is committed to the OSD plane.

The the Amlogic G12A is switched to RDMA, the Amlogic GXM Decoder
doesn't need a reset/reprogram at each vsync.

Neil Armstrong (3):
  drm/meson: add RDMA register bits defines
  drm/meson: add RDMA module driver
  drm/meson: use RDMA to reconfigure AFBC on vsync

 drivers/gpu/drm/meson/Makefile          |   2 +-
 drivers/gpu/drm/meson/meson_crtc.c      |  27 ++----
 drivers/gpu/drm/meson/meson_drv.c       |  14 ++-
 drivers/gpu/drm/meson/meson_drv.h       |   6 ++
 drivers/gpu/drm/meson/meson_osd_afbcd.c | 100 ++++++++++---------
 drivers/gpu/drm/meson/meson_rdma.c      | 123 ++++++++++++++++++++++++
 drivers/gpu/drm/meson/meson_rdma.h      |  20 ++++
 drivers/gpu/drm/meson/meson_registers.h |  48 +++++++++
 8 files changed, 273 insertions(+), 67 deletions(-)
 create mode 100644 drivers/gpu/drm/meson/meson_rdma.c
 create mode 100644 drivers/gpu/drm/meson/meson_rdma.h

-- 
2.22.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2019-10-15 11:33 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-15 11:33 Neil Armstrong [this message]
2019-10-15 11:33 ` [PATCH 1/3] drm/meson: add RDMA register bits defines Neil Armstrong
2019-10-15 11:33 ` [PATCH 2/3] drm/meson: add RDMA module driver Neil Armstrong
2019-10-17  9:37   ` Neil Armstrong
2019-10-15 11:33 ` [PATCH 3/3] drm/meson: use RDMA to reconfigure AFBC on vsync Neil Armstrong

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=20191015113317.8870-1-narmstrong@baylibre.com \
    --to=narmstrong@baylibre$(echo .)com \
    --cc=dri-devel@lists$(echo .)freedesktop.org \
    --cc=khilman@baylibre$(echo .)com \
    --cc=linux-amlogic@lists$(echo .)infradead.org \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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