mirror of
https://github.com/X11Libre/xf86-video-nv.git
synced 2026-03-24 01:24:21 +00:00
Revert "Refuse to bind to a device which has kernel modesetting active."
It was superseded by 3e9f7704122e0685ce83f7d3d3630e8a07293671, which depends on
libpciaccess and not libdrm. This is better, because the server already depends
on the former, while the latter is optional.
This reverts commit 17ab5dbea6.
Conflicts:
src/nv_driver.c
This commit is contained in:
11
configure.ac
11
configure.ac
@@ -134,17 +134,6 @@ AC_SUBST([modes_dir])
|
||||
AC_SUBST([XORG_CFLAGS])
|
||||
AC_SUBST([moduledir])
|
||||
|
||||
if test "x$XSERVER_LIBPCIACCESS" = xyes; then
|
||||
PKG_CHECK_MODULES(LIBDRM, [libdrm > 2.4.3 xf86driproto], HAVE_KMS="yes", HAVE_KMS="no")
|
||||
if test "x$HAVE_KMS" = xyes; then
|
||||
AC_DEFINE(HAVE_KMS, 1, [Have kernel modesetting])
|
||||
else
|
||||
AC_MSG_WARN(Support for detecting kernel modesetting drivers is not available.)
|
||||
AC_MSG_WARN(This driver can cause display problems in the presence of kernel modesetting.)
|
||||
AC_MSG_WARN(Please install libdrm > 2.4.3 and xf86driproto to enable KMS detection.)
|
||||
fi
|
||||
fi
|
||||
|
||||
DRIVER_NAME=nv
|
||||
AC_SUBST([DRIVER_NAME])
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
# -avoid-version prevents gratuitous .0.0.0 version numbers on the end
|
||||
# _ladir passes a dummy rpath to libtool so the thing will actually link
|
||||
# TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
|
||||
AM_CFLAGS = @XMODES_CFLAGS@ @XORG_CFLAGS@ $(LIBDRM_CFLAGS)
|
||||
AM_CFLAGS = @XMODES_CFLAGS@ @XORG_CFLAGS@
|
||||
nv_drv_la_LTLIBRARIES = nv_drv.la
|
||||
nv_drv_la_LDFLAGS = -module -avoid-version
|
||||
nv_drv_ladir = @moduledir@/drivers
|
||||
|
||||
@@ -33,11 +33,6 @@
|
||||
#include "xf86int10.h"
|
||||
#include "vbeModes.h"
|
||||
|
||||
#ifdef HAVE_KMS
|
||||
#include <xf86drmMode.h>
|
||||
#include <dri.h>
|
||||
#endif
|
||||
|
||||
const OptionInfoRec * RivaAvailableOptions(int chipid, int busid);
|
||||
Bool RivaGetScrnInfoRec(PciChipsets *chips, int chip);
|
||||
Bool G80GetScrnInfoRec(PciChipsets *chips, int chip);
|
||||
@@ -835,26 +830,6 @@ NVIsSupported(CARD32 id)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#ifdef HAVE_KMS
|
||||
static Bool NVKernelModesettingEnabled(struct pci_device *device)
|
||||
{
|
||||
char *busIdString;
|
||||
int ret;
|
||||
|
||||
if (!xf86LoaderCheckSymbol("DRICreatePCIBusID"))
|
||||
return FALSE;
|
||||
|
||||
busIdString = DRICreatePCIBusID(device);
|
||||
|
||||
ret = drmCheckModesettingSupported(busIdString);
|
||||
free(busIdString);
|
||||
|
||||
return (ret == 0);
|
||||
}
|
||||
#else
|
||||
static inline Bool NVKernelModesettingEnabled(struct pci_device *device) { return FALSE; }
|
||||
#endif //HAVE_KMS
|
||||
|
||||
/* Mandatory */
|
||||
#if XSERVER_LIBPCIACCESS
|
||||
static Bool
|
||||
@@ -895,14 +870,6 @@ NVPciProbe(DriverPtr drv, int entity, struct pci_device *dev, intptr_t data)
|
||||
NV_NAME ": Found NVIDIA %s at %2.2x@%2.2x:%2.2x:%1.1x\n",
|
||||
name, dev->bus, dev->domain, dev->dev, dev->func);
|
||||
|
||||
/* Trying to bring up a NV mode while kernel modesetting is enabled
|
||||
results in badness */
|
||||
if (NVKernelModesettingEnabled(dev)) {
|
||||
xf86Msg(X_ERROR,
|
||||
NV_NAME ": Kernel modesetting driver in use, refusing to load\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if(NVIsG80(id))
|
||||
return G80GetScrnInfoRec(NULL, entity);
|
||||
else if(dev->vendor_id == PCI_VENDOR_NVIDIA_SGS)
|
||||
|
||||
Reference in New Issue
Block a user