Hello. I have a Silicon Motion SM720 Lynx3DM card which X in Ubuntu 8.10 (and Fedora 9) will not start on. The log seems fine but ends with: AddScreen/ScreenInit failed for driver 0
The issue it experience seems to have been introduced by changes to X to use libpciaccess. Using GDB, and modified source littered with print statements, I see that it is failing like so: Xorg's dix/main.c's main() calls AddScreen(), which calls (*pfnInit)(...) pfnInit points to Silicon Motion's smi_driver.c's SMI_ScreenInit. SMI_ScreenInit calls SMI_MapMem(). SMI_MapMem calls libpciaccess's common_interface.c's pci_device_map_range(). It finds that the range that wants mapping is already mapped, and everything falls apart. The only other time pci_device_map_range() is called (and indeed for the same region) is earlier when dix.main.c's main() calls InitOutput(), InitOutput() called xf86Screen[0]->PreInit(...). PreInit pointed to Silicon Motion's smi_driver.c's SMI_PreInit() and SMI_PreInit calls SMI_MapMem (which maps the same region as later via pci_device_map_range()). So, I'm going to try and find out what the correct behaviour should be to fix it, but any hints would be gratefully appreciated. I've filed bug #18816 (https://bugs.freedesktop.org/show_bug.cgi?id=18816) with regard to this. Cheers, Richard Schwarting. _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg