[GIT PULL] drm/tegra: Changes for v5.17-rc1

Thierry Reding thierry.reding at gmail.com
Fri Dec 17 14:29:12 UTC 2021

Hi Dave, Daniel,

The following changes since commit 136057256686de39cc3a07c2e39ef6bc43003ff6:

  Linux 5.16-rc2 (2021-11-21 13:47:39 -0800)

are available in the Git repository at:

  https://gitlab.freedesktop.org/drm/tegra.git tags/drm/tegra/for-5.17-rc1

for you to fetch changes up to d210919dbdc8a82c676cc3e3c370b1802be63124:

  drm/tegra: Add back arm_iommu_detach_device() (2021-12-16 14:30:45 +0100)

This is unusually big because it contains essentially two cycles' worth
of work. I'm still not sure what happened for v5.16-rc1, but the PR was
never merged.

Fingers crossed that it will work better this time.

As mentioned last time already, the userspace for the new NVDEC driver
can be found here:



drm/tegra: Changes for v5.17-rc1

This contains a fairly large rework that makes the buffer objects behave
more according to what the DMA-BUF infrastructure expects. A buffer
object cache is implemented on top of that to make certain operations
such as page-flipping more efficient by avoiding needless map/unmap
operations. This in turn is useful to implement asynchronous commits to
support legacy cursor updates.

Another fairly big addition is the NVDEC driver. This uses the updated
UABI introduced in v5.15-rc1 to provide access to the video decode
engines found on Tegra210 and later.

This also includes some power management improvements that are useful on
older devices in particular because they, together with a bunch of other
changes across the kernel, allow the system to scale down frequency and
voltages when mostly idle and prevent these devices from becoming
excessively hot.

The remainder of these changes is an assortment of cleanups and minor

Arnd Bergmann (3):
      gpu: host1x: select CONFIG_DMA_SHARED_BUFFER
      drm/tegra: Mark nvdec_writel() as inline
      drm/tegra: Mark nvdec PM functions as __maybe_unused

Dmitry Osipenko (19):
      soc/tegra: Enable runtime PM during OPP state-syncing
      soc/tegra: Add devm_tegra_core_dev_init_opp_table_common()
      drm/tegra: dc: rgb: Move PCLK shifter programming to CRTC
      drm/tegra: dc: rgb: Allow changing PLLD rate on Tegra30+
      drm/tegra: hdmi: Unwind tegra_hdmi_init() errors
      drm/tegra: hdmi: Register audio CODEC on Tegra20
      gpu: host1x: Add initial runtime PM and OPP support
      gpu: host1x: Add host1x_channel_stop()
      drm/tegra: submit: Add missing pm_runtime_mark_last_busy()
      drm/tegra: dc: Support OPP and SoC core voltage scaling
      drm/tegra: hdmi: Add OPP support
      drm/tegra: gr2d: Support generic power domain and runtime PM
      drm/tegra: gr3d: Support generic power domain and runtime PM
      drm/tegra: vic: Stop channel on suspend
      drm/tegra: nvdec: Stop channel on suspend
      drm/tegra: submit: Remove pm_runtime_enabled() checks
      drm/tegra: Consolidate runtime PM management of older UAPI codepath
      gpu: host1x: Add back arm_iommu_detach_device()
      drm/tegra: Add back arm_iommu_detach_device()

Mikko Perttunen (3):
      drm/tegra: Add NVDEC driver
      drm/tegra: Bump VIC/NVDEC clock rates to Fmax
      drm/tegra: vic: Use autosuspend

Randy Dunlap (1):
      gpu: host1x: Drop excess kernel-doc entry @key

Robin Murphy (2):
      drm/tegra: vic: Fix DMA API misuse
      gpu: host1x: Add missing DMA API include

Thierry Reding (8):
      Merge branch 'tegra-for-5.17-soc-opp' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into drm/tegra/for-next
      drm/tegra: Implement correct DMA-BUF semantics
      drm/tegra: Implement buffer object cache
      drm/tegra: Do not reference tegra_plane_funcs directly
      drm/tegra: Propagate errors from drm_gem_plane_helper_prepare_fb()
      drm/tegra: Support asynchronous commits for cursor
      drm/tegra: gr2d: Explicitly control module reset
      drm/tegra: vic: Handle tegra_drm_alloc() failure

Wan Jiabing (1):
      drm/tegra: Remove duplicate struct declaration

 drivers/gpu/drm/tegra/Kconfig      |   3 +
 drivers/gpu/drm/tegra/Makefile     |   3 +-
 drivers/gpu/drm/tegra/dc.c         | 194 +++++++++++++--
 drivers/gpu/drm/tegra/dc.h         |   3 +
 drivers/gpu/drm/tegra/drm.c        |  30 ++-
 drivers/gpu/drm/tegra/drm.h        |   1 +
 drivers/gpu/drm/tegra/gem.c        | 171 +++++++++-----
 drivers/gpu/drm/tegra/gr2d.c       | 151 +++++++++++-
 drivers/gpu/drm/tegra/gr3d.c       | 353 +++++++++++++++++++++++-----
 drivers/gpu/drm/tegra/hdmi.c       | 183 +++++++++++++--
 drivers/gpu/drm/tegra/hub.h        |   1 -
 drivers/gpu/drm/tegra/nvdec.c      | 466 +++++++++++++++++++++++++++++++++++++
 drivers/gpu/drm/tegra/plane.c      |  65 ++----
 drivers/gpu/drm/tegra/plane.h      |   2 +-
 drivers/gpu/drm/tegra/rgb.c        |  53 ++++-
 drivers/gpu/drm/tegra/submit.c     |  77 ++++--
 drivers/gpu/drm/tegra/uapi.c       |  68 ++----
 drivers/gpu/drm/tegra/uapi.h       |   5 +-
 drivers/gpu/drm/tegra/vic.c        |  61 +++--
 drivers/gpu/host1x/Kconfig         |   1 +
 drivers/gpu/host1x/bus.c           |  80 ++++++-
 drivers/gpu/host1x/channel.c       |   8 +
 drivers/gpu/host1x/debug.c         |  15 ++
 drivers/gpu/host1x/dev.c           | 185 ++++++++++++---
 drivers/gpu/host1x/dev.h           |   5 +-
 drivers/gpu/host1x/hw/channel_hw.c |  44 ++--
 drivers/gpu/host1x/intr.c          |   3 -
 drivers/gpu/host1x/job.c           | 160 +++++--------
 drivers/gpu/host1x/job.h           |   6 +-
 drivers/gpu/host1x/syncpt.c        |   5 +-
 drivers/soc/tegra/common.c         |  25 ++
 include/linux/host1x.h             |  76 ++++--
 include/soc/tegra/common.h         |  15 ++
 33 files changed, 2020 insertions(+), 498 deletions(-)
 create mode 100644 drivers/gpu/drm/tegra/nvdec.c

More information about the dri-devel mailing list