summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/include
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2017-05-19 15:59:35 +0200
committerBen Skeggs <bskeggs@redhat.com>2017-06-16 06:04:57 +0200
commit6c22ea3747fd36409ce4a1e1a0cbac40f93e1e71 (patch)
tree3e59368a13cff78bed2206404138b0849b56c69d /drivers/gpu/drm/nouveau/include
parentdrm/nouveau/disp: remove hw-specific customisation of output paths (diff)
downloadlinux-6c22ea3747fd36409ce4a1e1a0cbac40f93e1e71.tar.xz
linux-6c22ea3747fd36409ce4a1e1a0cbac40f93e1e71.zip
drm/nouveau/disp: introduce acquire/release display path methods
These exist to give NVKM information on the set of display paths that the DD needs to be active at any given time. Previously, the supervisor attempted to determine this solely from OR state, but there's a few configurations where this information on its own isn't enough to determine the specific display paths in question: - ANX9805, where the PIOR protocol for both DP and TMDS is TMDS. - On a device using DCB Switched Outputs. - On GM20x and newer, with a crossbar between the SOR and macro links. After this commit, the DD tells NVKM *exactly* which display path it's attempting a modeset on. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/include')
-rw-r--r--drivers/gpu/drm/nouveau/include/nvif/cl5070.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/include/nvif/cl5070.h b/drivers/gpu/drm/nouveau/include/nvif/cl5070.h
index e3f5659295e2..542d95145a67 100644
--- a/drivers/gpu/drm/nouveau/include/nvif/cl5070.h
+++ b/drivers/gpu/drm/nouveau/include/nvif/cl5070.h
@@ -27,6 +27,8 @@ struct nv50_disp_scanoutpos_v0 {
struct nv50_disp_mthd_v1 {
__u8 version;
+#define NV50_DISP_MTHD_V1_ACQUIRE 0x01
+#define NV50_DISP_MTHD_V1_RELEASE 0x02
#define NV50_DISP_MTHD_V1_DAC_LOAD 0x11
#define NV50_DISP_MTHD_V1_SOR_HDA_ELD 0x21
#define NV50_DISP_MTHD_V1_SOR_HDMI_PWR 0x22
@@ -39,6 +41,13 @@ struct nv50_disp_mthd_v1 {
__u8 pad06[2];
};
+struct nv50_disp_acquire_v0 {
+ __u8 version;
+ __u8 or;
+ __u8 link;
+ __u8 pad03[5];
+};
+
struct nv50_disp_dac_load_v0 {
__u8 version;
__u8 load;