For Sure... This is our problem With Suspend...With Hibernation... With backlight.
"It seems unfortunate if we do this work and get our
partners to do the work and the result is that Linux works great without
having to do the work" (Bill Gates on Making ACPI Not Work with Linux,
if you look at Page 3 of this thread you can read my discription of how BIOS works. Well, I tell you that some parts of the BIOS are loaded into RAM and used by the OS to know what hardware it has... The DSDT and ECDT do that.. BOTH of them are buggy... The DSDT has one fullon Error's and 12 wornings (wich are errors too) the ECDT has 2 full on Error's.
I am almost done fixing my DSDT.... I still have 2 warnings in my DSDT... I am running my fised DSDT now and still have the same Backlight problem... Hopefuly after I fix these two things it will be fixed. I be the Suspend and Hibernation are fixed now but I don't have any program installed to Suspend or Hibernate... I also don't have a big enugh Swap Partition to Hibernate... i.e. I have 2GB of ram and only 1GB of Swap. I will edit this post with new info. If I conferm any fixes to anything I will start a new reply...
The ACPI Specification defines the requirements for the DSDT (and everything else, for that matter) pretty explicitly. Intel's ASL compiler, iasl, used to compile the DSDT to AML from ASL, will throw errors and warnings if the underlying ASL is buggy. Unfortunately, Microsoft's ASL compiler allows many of these errors and warnings to sneak by. As a result, many OEMs write buggy DSDTs, and it turns out that Windows is very forgiving of bugs in the DSDT that get by Microsoft's compiler (not surprisingly).
What this means is that a DSDT that does not conform to the ACPI specification will work under Windows, even though it shouldn't. However, when you try to use it in Linux, where the ACPI developers expect that the DSDT is written to comply with the standard (and the Intel ASL compiler), the buggy sections of the DSDT are unsupported. If you have a buggy DSDT, ACPI may not be aware that certain devices exist. Or, if it is aware, it may not support all of their capabilites. If you have either of these symptoms (missing or incompletely supported functionality in /proc/acpi), then the cause may be a buggy DSDT.
Anyway, My advice to you is git cracking on fixing your DSDT. Each laptop with difrent hardware will be different. Even if you have the same hardware it is safer to just fix your own....
DSDT.dsl 4620: Method (OGCD, 0, NotSerialized)
Warning 1086 - ^ Not all control paths return a value (OGCD)
DSDT.dsl 4673: Method (OGCA, 0, NotSerialized)
Warning 1086 - ^ Not all control paths return a value (OGCA)
ASL Input: DSDT.dsl - 13987 lines, 401852 bytes, 6662 keywords
AML Output: DSDT.aml - 50055 bytes 1470 named objects 5192 executable opcodes
Compilation complete. 0 Errors, 2 Warnings, 0 Remarks, 36 Optimizations
We are lucky though At lest Lenovo was thinking of Linux. This is not common at all!
Note: It dosn't through any errors but dosn't it look like there sould be an Else between Windows ME and Linux?...
If (MCTH (_OS, "Microsoft Windows NT"))
Store (0x04, OSVR)
If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
Store (0x02, OSVR)
If (MCTH (_OS, "Linux"))
Store (0x03, OSVR)
Well, I still have not fix the two errors left in the DSDT and no errors in the ECDT. However, there is no in your face tags that point to them causeing backlight errors.... But, I am still sre that the DSDT and/or ACPI are the cause of the Backlight problems and for sure suspend/ Hibernation problems(Bcause that is what DSDT and ACPI do). There is however one more way to fix this problem. There is a program that I can use to compare the last known working Kernel to then next Kernel that has the problem.. It will then tell me exacetly what the error is... SO, what is the last working kernel?? Ubuntu 7.10... what was the last kernel it used? Each Kernel has is't own ACPI.