1. 21 Dec, 2017 7 commits
    • Arnd Bergmann's avatar
      drm/tegra: Mark Tegra186 display hub PM functions __maybe_unused · 013e2b72
      Arnd Bergmann authored
      The newly introduced driver has optional suspend/resume functions,
      causing a warning when CONFIG_PM is disabled:
      
      drivers/gpu/drm/tegra/hub.c:749:12: error: 'tegra_display_hub_resume' defined but not used [-Werror=unused-function]
      drivers/gpu/drm/tegra/hub.c:733:12: error: 'tegra_display_hub_suspend' defined but not used [-Werror=unused-function]
      
      This marks them __maybe_unused to shut up the warnings.
      
      Fixes: c4755fb9 ("drm/tegra: Add Tegra186 display hub support")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      013e2b72
    • Thierry Reding's avatar
      drm/tegra: Use IOMMU groups · bc8828bd
      Thierry Reding authored
      In order to support IOMMUs more generically and transparently handle the
      ARM SMMU on Tegra186, move to using groups instead of devices for domain
      attachment. An IOMMU group is a set of devices that share the same IOMMU
      domain and is therefore a good match to represent what Tegra DRM needs.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      bc8828bd
    • Thierry Reding's avatar
      gpu: host1x: Use IOMMU groups · 41c3068c
      Thierry Reding authored
      Use IOMMU groups to attach the host1x device to its IOMMU domain. This
      is not strictly necessary because the domain isn't shared with any other
      device, but it makes the code consistent with how IOMMU is handled in
      other drivers and provides an easy way to detect when no IOMMU has been
      attached via device tree.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      41c3068c
    • Thierry Reding's avatar
      drm/tegra: Implement zpos property · ab7d3f58
      Thierry Reding authored
      Implement the standard zpos property for planes on Tegra124 and later.
      Earlier generations have a different blending unit that needs different
      programming.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      ab7d3f58
    • Thierry Reding's avatar
      drm/tegra: dc: Remove redundant spinlock · 363541e8
      Thierry Reding authored
      The spinlock is only used to serialize accesses to the DC_CMD_INT_MASK
      register. However, this register is accesses either with interrupts
      masked (in tegra_crtc_atomic_enable()) or protected by the vbl_lock and
      vblank_time_lock spinlocks of the DRM device. Therefore, these accesses
      don't need any extra serialization and the lock can be removed.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      363541e8
    • Thierry Reding's avatar
      drm/tegra: dc: Use direct offset to plane registers · 1087fac1
      Thierry Reding authored
      Traditionally, windows were accessed indirectly, through a register
      selection window that required a global register to be programmed with
      the index of the window to access. Since the global register could be
      written from modesetting functions as well as the interrupt handler
      concurrently, accesses had to be serialized using a lock. Using direct
      accesses to the window registers the lock can be avoided.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      1087fac1
    • Thierry Reding's avatar
      drm/tegra: dc: Support more formats · 511c7023
      Thierry Reding authored
      Also, split up formats into per-SoC lists because not all generations
      support all of them. Note that the list is now exhaustive for all RGB
      formats, but not for YUV and indexed formats.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      511c7023
  2. 13 Dec, 2017 33 commits