NVIDIA 331.20 will not load with kernel 3.13 on EFI without CSM

Linux 3.13 dropped the DEVICE_ACPI_HANDLE() macro in favor of ACPI_HANDLE(). This causes the NVIDIA 331.20 driver (and probably other versions, but I haven’t tested) to fail to load complaining something about failure to load the vbios into system RAM when running on an EFI system with CSM (Compatibility Support Module) disabled. It also causes backlight control to fail once X is running on BIOS systems or EFI systems with CSM enabled.

Editing the nv-acpi.c file and changing all references of DEVICE_ACPI_HANDLE() to ACPI_HANDLE() fixes the problem.

The kernel commit that caused the issue is kernel/git/torvalds/linux.git - Linux kernel source tree
nvidia-bug-report.log.gz (70.9 KB)

Just for info - nvidia 337.25 checks for both DEVICE_ACPI_HANDLE and ACPI_HANDLE, in nv-acpi.c