For Linux, I
personally separate the issues into two issues: "Hardware support is possible but doesn't exist", and "hardware support is impossible because the hardware vendor or standards bodies are either withholding documentation, failed to follow their own standards, or in some cases even actively fighting Linux developers". The "ACPI that only works in Windows" spent quite a lot of time in the latter case. If you had an IBM laptop that is now 6 years old, it probably fell into that category, based on the timing.
(A surprising amount of hardware fails to follow standards. I have a hard time laying the blame on Linux when that happens. I realize that as a user you may not care, but assigning blame to the proper entities is important if you want it to be fixed; cussing out Linus when in fact the hardware vendors are deliberately withholding specs may feel good but is not productive otherwise.)