I'm thinking that the issue is in the lead up to the following block of code in xf86platformBus.c, starting at line 382: static Bool probeSingleDevice(struct xf86_platform_device *dev, DriverPtr drvp, GDevPtr gdev, int flags) When I loaded this in kdbg over a remote X connection on SSH and stepped through the code, the comparison fell apart with the following values: drvp->supported_devices.device_id: int 12624 hex value: 0x3150 dev->pdev->device_id: int 38275 hex value: 0x9583 Obviously these will fail. It looks like the supported_devices entry is being populated with the wrong value somewhere along the way.