Add video driver flag to indicate that console access is not needed.

Existing video drivers will get the console enabled by default.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Jamey Sharp 2009-10-28 16:45:44 -07:00 committed by Keith Packard
parent 25979c46b4
commit 83d520d86c
2 changed files with 22 additions and 11 deletions

View File

@ -97,6 +97,7 @@ static Bool add_matching_devices_to_configure_list(DriverPtr drvp);
#ifdef XF86PM
void (*xf86OSPMClose)(void) = NULL;
#endif
static Bool xorgHWOpenConsole = FALSE;
/* Common pixmap formats */
@ -601,8 +602,6 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
if (xf86DoShowOptions)
DoShowOptions();
xf86OpenConsole();
/* Do a general bus probe. This will be a PCI probe for x86 platforms */
xf86BusProbe();
@ -676,20 +675,29 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
*/
for (i = 0; i < xf86NumDrivers; i++) {
xorgHWFlags flags;
if (xf86DriverList[i]->Identify != NULL)
xf86DriverList[i]->Identify(0);
if (!xorgHWAccess
&& (!xf86DriverList[i]->driverFunc
if (!xorgHWAccess || !xorgHWOpenConsole) {
xorgHWFlags flags;
if(!xf86DriverList[i]->driverFunc
|| !xf86DriverList[i]->driverFunc(NULL,
GET_REQUIRED_HW_INTERFACES,
&flags)
|| NEED_IO_ENABLED(flags)))
xorgHWAccess = TRUE;
&flags))
flags = HW_IO;
if(NEED_IO_ENABLED(flags))
xorgHWAccess = TRUE;
if(!(flags & HW_SKIP_CONSOLE))
xorgHWOpenConsole = TRUE;
}
}
if (xorgHWOpenConsole)
xf86OpenConsole();
else
xf86Info.dontVTSwitch = TRUE;
/* Enable full I/O access */
if (xorgHWAccess)
xorgHWAccess = xf86EnableIO();
@ -966,7 +974,8 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
/*
* serverGeneration != 1; some OSs have to do things here, too.
*/
xf86OpenConsole();
if (xorgHWOpenConsole)
xf86OpenConsole();
#ifdef XF86PM
/*
@ -1203,7 +1212,8 @@ ddxGiveUp(void)
DGAShutdown();
#endif
xf86CloseConsole();
if (xorgHWOpenConsole)
xf86CloseConsole();
xf86CloseLog();

View File

@ -299,6 +299,7 @@ typedef struct {
/* GET_REQUIRED_HW_INTERFACES */
#define HW_IO 1
#define HW_MMIO 2
#define HW_SKIP_CONSOLE 4
#define NEED_IO_ENABLED(x) (x & HW_IO)
typedef CARD32 xorgHWFlags;