Question on xf86PciProbe(), primaryBus, and xf86IsolateDevice
Wayne Whitney
whitney at post.harvard.edu
Thu Jun 11 18:15:18 PDT 2009
Hello,
I'm using xorg-x11-server-Xorg-1.6.1.901-1.fc11.x86_64 from Fedora 11 on an
x86_64 machine and I'm having some trouble with a dual seat setup. I believe
I've traced my problem to the way xf86PciProbe() sets primaryBus when
xf86IsolateDevice is set.
>From my reading of xserver/hw/xfree86/common/xf86pciBus.c, whenever
xf86IsolateDevice is set, xf86PciProbe() will mark the isolated card as the
primary card by setting primaryBus, even if the isolated card is not the boot
video device. This is because xf86IsolateDevice causes xf86PciProbe() to only
see one card, and the code in xf86PciProbe() that decides whether to set
primaryBus includes the logic "if there's only one card, and PCI_CMD_MEM_ENABLE
is set, then it must be primary."
Is this the desired behavior? Or if xf86IsolateDevice is set to a secondary
card, should primaryBus remain unset?
This issue is causing me trouble with a dual radeon HD 2xxx/3xxx machine where
I would like to run separate X processes for each card. Presently radeonhd
uses xf86IsEntityPrimary() to determine where to look for the card's BIOS. So
when I run X with IsolateDevice on the secondary card, because of the behavior
of xf86PciProbe(), the radeonhd driver ends up looking at the primary card's
BIOS instead of the secondary card's BIOS.
So it seems like either xf86PciProbe() should change its behavior in this case,
or radeonhd needs to use something other than xf86IsEntityPrimary(). I'm just
trying to figure out which. Any guidance would be greatly appreciated.
Cheers,
Wayne Whitney
More information about the xorg
mailing list