I've been struggling with this for months. I just did some Googling and found this kernel bug report: https://bugzilla.kernel.org/show_bug.cgi?id=119831. The last post says to put acpi_osi=! acpi_osi="Windows 2009" in the Grub boot line. I have no idea why this work but it does.