aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_encoder.h
diff options
context:
space:
mode:
authorLyude Paul <lyude@redhat.com>2020-05-11 18:41:27 -0400
committerBen Skeggs <bskeggs@redhat.com>2020-05-22 11:13:52 +1000
commitd6a9efece7248d3cbd7bf65d3a8325e8e5dceec0 (patch)
tree4ac9707f29795fe417756132a9d58fcc5c567c60 /drivers/gpu/drm/nouveau/nouveau_encoder.h
parentdrm/nouveau/kms/nv50-: Move 8BPC limit for MST into nv50_mstc_get_modes() (diff)
downloadlinux-dev-d6a9efece7248d3cbd7bf65d3a8325e8e5dceec0.tar.xz
linux-dev-d6a9efece7248d3cbd7bf65d3a8325e8e5dceec0.zip
drm/nouveau/kms/nv50-: Share DP SST mode_valid() handling with MST
Currently, the nv50_mstc_mode_valid() function is happy to take any and all modes, even the ones we can't actually support sometimes like interlaced modes. Luckily, the only difference between the mode validation that needs to be performed for MST vs. SST is that eventually we'll need to check the minimum PBN against the MSTB's full PBN capabilities (remember-we don't care about the current bw state here). Otherwise, all of the other code can be shared. So, we move all of the common mode validation in nouveau_connector_mode_valid() into a separate helper, nv50_dp_mode_valid(), and use that from both nv50_mstc_mode_valid() and nouveau_connector_mode_valid(). Note that we allow for returning the calculated clock that nv50_dp_mode_valid() came up with, since we'll eventually want to use that for PBN calculation in nv50_mstc_mode_valid(). Signed-off-by: Lyude Paul <lyude@redhat.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_encoder.h')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_encoder.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_encoder.h b/drivers/gpu/drm/nouveau/nouveau_encoder.h
index 3217f587eceb..de51733b0476 100644
--- a/drivers/gpu/drm/nouveau/nouveau_encoder.h
+++ b/drivers/gpu/drm/nouveau/nouveau_encoder.h
@@ -104,6 +104,10 @@ enum nouveau_dp_status {
};
int nouveau_dp_detect(struct nouveau_encoder *);
+enum drm_mode_status nv50_dp_mode_valid(struct drm_connector *,
+ struct nouveau_encoder *,
+ const struct drm_display_mode *,
+ unsigned *clock);
struct nouveau_connector *
nouveau_encoder_connector_get(struct nouveau_encoder *encoder);