xf86: fix multi-seat video device support. (v2)

If we are not seat 0 the following apply:

don't probe any bus other than platform
don't probe any drivers other than platform
assume the first platform device we match on the bus is the primary GPU.

This just adds checks in the correct places to ensure this, and
with this X can now start on a secondary seat for an output device.

v2: fix Seat0 macros
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 70e5766874)
This commit is contained in:
Dave Airlie 2012-08-27 15:22:44 +10:00
parent 1e8c960f87
commit b87edf1acc
2 changed files with 7 additions and 0 deletions

View file

@ -81,6 +81,8 @@ xf86CallDriverProbe(DriverPtr drv, Bool detect_only)
if (drv->platformProbe != NULL) {
foundScreen = xf86platformProbeDev(drv);
}
if (ServerIsNotSeat0())
return foundScreen;
#endif
#ifdef XSERVER_LIBPCIACCESS
@ -214,6 +216,8 @@ xf86BusProbe(void)
{
#ifdef XSERVER_PLATFORM_BUS
xf86platformProbe();
if (ServerIsNotSeat0())
return;
#endif
#ifdef XSERVER_LIBPCIACCESS
xf86PciProbe();

View file

@ -359,6 +359,9 @@ xf86platformProbeDev(DriverPtr drvp)
break;
}
else {
/* for non-seat0 servers assume first device is the master */
if (ServerIsNotSeat0())
break;
if (xf86_platform_devices[j].pdev) {
if (xf86IsPrimaryPlatform(&xf86_platform_devices[j]))
break;