X.org breaks on newer Linux kernels as it re-writes BARs behind the kernels back when attempting to read the ROMs, this causes crashes and hangs on dual-card systems.
Created attachment 5483 [details] [review] patch to fix Linux BIOS Add a patch to call the Linux code, the other domain crap still used the code that modifies the BARs, so add an OS hook and call to use sysfs. If you don't get anything in sysfs it falls back to the old ways.
ajax: you might want to consider this for stable, dual-card gets really broken by later Linux kernels, you have to use this interface on them.
Good solution! Thanks!
looks good to me, i'll pop this in for RC2.
applied, thanks!
Can confirm that this fixed the problem for me too. Thank you very much!! Using an Intel i810 (notoriously difficult to run in dualhead), I had to set the i810 to be primary display in my BIOS (which is the opposite of what Windows needs), otherwise X would hang. However that is how things had worked all the way up until the problematic new VBIOS code was introduced, so I'm totally happy to run the i810 as primary display if it means I get dualhead again :-) Is there an approximate date for when the next stable version of X.org will include this path? Also, would it be viable to backport this patch to earlier, stable versions of X.org? This has hit Ubuntu Dapper Drake, and probably other distros, and it would be nice not to have to package and release an entirely new X.org version if it can be avoided. The patch looks fairly simple, so I hope so.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.