Originally Posted by zander
The problem appears to be a duplicate entry in the DSDT for the PCI-E bridge upstream of the discrete GPU. On the systems I looked at, the devices PEGP and PEG3 both refer to the bridge @ 00:03.0, i.e. both have an _ADR identifier with the value 0x30000. This indirectly causes the NVIDIA driver's ACPI handle lookup attempt to fail for the GPU in question, which in turns prevents the driver from obtaining important information via ACPI methods associated with the GPU.
In my experiments, I found that either reordering or merging the two devices in the DSDT was enough to avoid the problem. In order to do this, the DSDT needs to be dumped , disassembled, patched up (in my case, there were various errors aside from the problem discussed above), reassembled and finally fed to the Linux kernel as a custom DSDT.
With this info I was able to get the nvidia driver running on my HP 8540w/Quadro FX 1800M/Dreamcolor display.
Tested it with nvidia-settings/glxinfo/openarena/compiz. Works like a charm.