While the identifier is likely set before the input classes are merged, the driver may not be. Hence don't check for a driver before we've completed configuration for this device.
Signed-off-by: Peter Hutterer <[email protected]> --- hw/xfree86/common/xf86Xinput.c | 21 +++++++++++---------- 1 files changed, 11 insertions(+), 10 deletions(-) diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index f686095..57db056 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -702,16 +702,6 @@ NewInputDeviceRequest (InputOption *options, InputAttributes *attrs, } } } - if (!idev->driver || !idev->identifier) { - xf86Msg(X_ERROR, "No input driver/identifier specified (ignoring)\n"); - rval = BadRequest; - goto unwind; - } - - if (!idev->identifier) { - xf86Msg(X_ERROR, "No device identifier specified (ignoring)\n"); - return BadMatch; - } for (option = options; option; option = option->next) { /* Steal option key/value strings from the provided list. @@ -729,6 +719,17 @@ NewInputDeviceRequest (InputOption *options, InputAttributes *attrs, goto unwind; } + if (!idev->driver || !idev->identifier) { + xf86Msg(X_ERROR, "No input driver/identifier specified (ignoring)\n"); + rval = BadRequest; + goto unwind; + } + + if (!idev->identifier) { + xf86Msg(X_ERROR, "No device identifier specified (ignoring)\n"); + return BadMatch; + } + rval = xf86NewInputDevice(idev, pdev, (!is_auto || (is_auto && xf86Info.autoEnableDevices))); if (rval == Success) -- 1.6.5.2 _______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
