aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_drv.h
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2011-10-12 02:36:42 -0400
committerBen Skeggs <bskeggs@redhat.com>2011-12-21 04:01:41 -0500
commitb4c26818aeb4159dd537eff6453ae5ebf7a69723 (patch)
treec88d961c30eb46da840781f5c1173c4cdcf6b8f3 /drivers/gpu/drm/nouveau/nouveau_drv.h
parentbefb51e9c97e783c86a1da27bdda3a638d2f02c7 (diff)
drm/nouveau/mxm: initial implementation of dcb sanitisation
The DCB table provided by the VBIOS on most MXM chips has a number of entries which either need to be disabled, or modified according to the MXM-SIS Output Device Descriptors. The x86 vbios code usually takes care of this for us, however, with the large number of laptops now with switchable graphics or optimus, a lot of the time nouveau is responsible for POSTing the card instead - leaving some fun situations like, plugging in a monitor and having nouveau decide 3 connectors actually just got plugged in.. No MXM-SIS fetching methods implemented yet. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_drv.h')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_drv.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
index fb126c1508b5..891c91b14886 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drv.h
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
@@ -793,6 +793,7 @@ struct drm_nouveau_private {
793 struct nouveau_vm *chan_vm; 793 struct nouveau_vm *chan_vm;
794 794
795 struct nvbios vbios; 795 struct nvbios vbios;
796 u8 *mxms;
796 struct list_head i2c_ports; 797 struct list_head i2c_ports;
797 798
798 struct nv04_mode_state mode_reg; 799 struct nv04_mode_state mode_reg;
@@ -864,6 +865,7 @@ extern char *nouveau_perflvl;
864extern int nouveau_perflvl_wr; 865extern int nouveau_perflvl_wr;
865extern int nouveau_msi; 866extern int nouveau_msi;
866extern int nouveau_ctxfw; 867extern int nouveau_ctxfw;
868extern int nouveau_mxmdcb;
867 869
868extern int nouveau_pci_suspend(struct pci_dev *pdev, pm_message_t pm_state); 870extern int nouveau_pci_suspend(struct pci_dev *pdev, pm_message_t pm_state);
869extern int nouveau_pci_resume(struct pci_dev *pdev); 871extern int nouveau_pci_resume(struct pci_dev *pdev);
@@ -1108,6 +1110,10 @@ extern int call_lvds_script(struct drm_device *, struct dcb_entry *, int head,
1108 enum LVDS_script, int pxclk); 1110 enum LVDS_script, int pxclk);
1109bool bios_encoder_match(struct dcb_entry *, u32 hash); 1111bool bios_encoder_match(struct dcb_entry *, u32 hash);
1110 1112
1113/* nouveau_mxm.c */
1114int nouveau_mxm_init(struct drm_device *dev);
1115void nouveau_mxm_fini(struct drm_device *dev);
1116
1111/* nouveau_ttm.c */ 1117/* nouveau_ttm.c */
1112int nouveau_ttm_global_init(struct drm_nouveau_private *); 1118int nouveau_ttm_global_init(struct drm_nouveau_private *);
1113void nouveau_ttm_global_release(struct drm_nouveau_private *); 1119void nouveau_ttm_global_release(struct drm_nouveau_private *);