diff options
author | Thierry Reding <treding@nvidia.com> | 2017-10-12 19:12:57 +0200 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2017-12-13 14:36:36 +0100 |
commit | c57997bce423fb71334a1fefa524569e48a1718f (patch) | |
tree | cc01f3938060f960a0b8b3f3a52f17408ad47389 /drivers/gpu/drm/tegra/output.c | |
parent | 880cee0b7ff379ebcf1f3d839fa59d1bcd726797 (diff) |
drm/tegra: sor: Add Tegra186 support
The SOR found on Tegra186 is very similar to the one found on Tegra210
and earlier. However, due to some changes in the display architecture,
some programming sequences have changed and some register have moved
around.
Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/gpu/drm/tegra/output.c')
-rw-r--r-- | drivers/gpu/drm/tegra/output.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c index 24f8a3b712b4..ffe34bd0bb9d 100644 --- a/drivers/gpu/drm/tegra/output.c +++ b/drivers/gpu/drm/tegra/output.c @@ -9,7 +9,9 @@ #include <drm/drm_atomic_helper.h> #include <drm/drm_panel.h> + #include "drm.h" +#include "dc.h" #include <media/cec-notifier.h> @@ -218,3 +220,25 @@ void tegra_output_exit(struct tegra_output *output) if (output->panel) drm_panel_detach(output->panel); } + +void tegra_output_find_possible_crtcs(struct tegra_output *output, + struct drm_device *drm) +{ + struct device *dev = output->dev; + struct drm_crtc *crtc; + unsigned int mask = 0; + + drm_for_each_crtc(crtc, drm) { + struct tegra_dc *dc = to_tegra_dc(crtc); + + if (tegra_dc_has_output(dc, dev)) + mask |= drm_crtc_mask(crtc); + } + + if (mask == 0) { + dev_warn(dev, "missing output definition for heads in DT\n"); + mask = 0x3; + } + + output->encoder.possible_crtcs = mask; +} |