summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans De Goede <hdegoede@redhat.com>2016-08-08 14:53:59 +0200
committerAdam Jackson <ajax@redhat.com>2016-08-18 14:29:53 -0400
commit48c5c23a1b250c7f9d7a1747c76e4669ebf752cf (patch)
tree86e3d89322b335b40937178622175e2b03de0c9c
parent6acd0d098add5a14f23d326ac6ee8cebab14b86a (diff)
Fix Xorg -configure not working anymore
Xorg -configure relies on the bus implementation, e.g. xf86pciBus.c to call xf86AddBusDeviceToConfigure(). The new xf86platformBus code does not have support for this. Almost all drivers support both the xf86platformBus and xf86pciBus nowadays, and the generic xf86Bus xf86CallDriverProbe() function prefers the new xf86platformBus probe method when available. Since the platformBus paths do not call xf86AddBusDeviceToConfigure() this results in Xorg -configure failing with the following error: "No devices to configure. Configuration failed.". Adding support for the xf86Configure code to xf86platformBus.c is non trivial and since we advise users to normally run without any Xorg.conf at all not worth the trouble. However some users still want to use Xorg -configure to generate a template config file, this commit implements a minimal fix to make things work again for PCI devices by skipping the platform probe method when xf86DoConfigure is set. This has been tested on a system with integrated intel graphics, with both the intel and modesetting drivers and restores Xorg -configure functionality on both cases. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r--hw/xfree86/common/xf86Bus.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
index bd36fc5ab..5b93940a2 100644
--- a/hw/xfree86/common/xf86Bus.c
+++ b/hw/xfree86/common/xf86Bus.c
@@ -78,7 +78,8 @@ xf86CallDriverProbe(DriverPtr drv, Bool detect_only)
Bool foundScreen = FALSE;
#ifdef XSERVER_PLATFORM_BUS
- if (drv->platformProbe != NULL) {
+ /* xf86platformBus.c does not support Xorg -configure */
+ if (!xf86DoConfigure && drv->platformProbe != NULL) {
foundScreen = xf86platformProbeDev(drv);
}
if (ServerIsNotSeat0() && foundScreen)