Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com>
---
 src/nv_driver.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/nv_driver.c b/src/nv_driver.c
index 911b05d..c1a50cd 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -57,6 +57,8 @@ static void    NVFreeScreen(FREE_SCREEN_ARGS_DECL);
 
 static Bool    NVMapMem(ScrnInfoPtr pScrn);
 static Bool    NVUnmapMem(ScrnInfoPtr pScrn);
+static Bool    nouveau_kernel_mode_enabled(ScrnInfoPtr pScrn,
+                                  struct pci_device *pci_dev);
 
 #define NOUVEAU_PCI_DEVICE(_vendor_id, _device_id)                             
\
        { (_vendor_id), (_device_id), PCI_MATCH_ANY, PCI_MATCH_ANY,            \
@@ -76,7 +78,9 @@ static Bool NVPciProbe (      DriverPtr               drv,
 #ifdef XSERVER_PLATFORM_BUS
 static Bool
 NVPlatformProbe(DriverPtr driver,
-            int entity_num, int flags, struct xf86_platform_device *dev, 
intptr_t dev_match_data)
+                  int entity_num, int flags,
+                  struct xf86_platform_device *dev,
+                  intptr_t dev_match_data)
 {
        ScrnInfoPtr scrn = NULL;
        uint32_t scr_flags = 0;
@@ -84,12 +88,17 @@ NVPlatformProbe(DriverPtr driver,
        if (!dev->pdev)
                return FALSE;
 
-        if (flags & PLATFORM_PROBE_GPU_SCREEN)
-               scr_flags = XF86_ALLOCATE_GPU_SCREEN;
+       if (flags & PLATFORM_PROBE_GPU_SCREEN)
+               scr_flags = XF86_ALLOCATE_GPU_SCREEN;
 
        scrn = xf86AllocateScreen(driver, scr_flags);
+       if (!scrn)
+               return FALSE;
        xf86AddEntityToScreen(scrn, entity_num);
 
+       if (!nouveau_kernel_mode_enabled(scrn, dev->pdev))
+               return FALSE;
+
        scrn->driverVersion    = NV_VERSION;
        scrn->driverName       = NV_DRIVER_NAME;
        scrn->name             = NV_NAME;
@@ -102,7 +111,8 @@ NVPlatformProbe(DriverPtr driver,
        scrn->EnterVT          = NVEnterVT;
        scrn->LeaveVT          = NVLeaveVT;
        scrn->FreeScreen       = NVFreeScreen;
-       return scrn != NULL;
+
+       return TRUE;
 }
 #endif
 
-- 
1.8.0

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to