http://bugzilla.kernel.org/show_bug.cgi?id=2884





------- Comment #31 from [EMAIL PROTECTED]  2008-01-12 16:00 -------
The DSDT in comment #30 looks this way,

            If (LEqual (\SCMP (\_OS, "Microsoft Windows"), Zero))
            {
                Store (0x01, \W98F) // Windows 98
            }
            Else
            {
                If (CondRefOf (\_OSI, Local0))
                {
                    If (\_OSI ("Windows 2001.1"))
                    {
                        Store (0x01, \WDNF)
                        Store (0x01, \WXPF)
                        Store (0x01, \WNTF)
                    }
                    Else
                    {
                        If (\_OSI ("Windows 2001 SP1"))
                        {
                            Store (0x01, \WSPV)
                            Store (0x01, \WXPF)
                            Store (0x01, \WNTF)
                            // XP SP1 -- Linux w/o cmdline comes here
                        }
                        Else
                        {
                            If (\_OSI ("Windows 2001"))
                            {
                                Store (0x01, \WXPF)
                                Store (0x01, \WNTF)
                                // Windows 2001 is Windows XP
                            }
                        }
                    }
                }
                Else
                {
                    If (LEqual (\SCMP (\_OS, "Microsoft Windows NT"), Zero))
                    {
                        Store (0x01, \WNTF)
                    }
                    Else
                    {
                        If (LEqual (\SCMP (\_OS, "Microsoft WindowsME:
Millennium Edition"), Zero))
                        {
                            Store (0x01, \WMEF)
                            Store (0x01, \W98F)
                        }
                    }
                }
            }

Without any bootparams, Linux would take the Windows 2001.1 path.
With acpi_os_name=Linux acpi_osi= it looks like we take a path
through the AML where no OS bits are set -- probably a path
that has never been tested...  As the DSDT never checks the
string "Linux", you'd get the same result if you replaced
it with any random string that doesn't begin with "Microsoft".

It is possible to test all of the paths above using some
cmdline options to see which one matters:

acpi_os_name="Microsoft Windows"
   This will take the 1st path above, and so no acpi_osi= params
   would have an effect here, since they'd not be tested.

acpi_osi=
   This will keep our default _OS name and thus end up at the 
   "Microsoft Windows NT" case

acpi_osi= acpi_os_name="Microsoft WindowsME: Millennium Edition"
    this will take us to the ME case

acpi_osi="!Windows 2001.1"
    this will take us to the Windows 2001 SP1 case

acpi_osi="!Windows 2001.1" acpi_osi="!Windows 2001 SP1"
    this will take us to the Windows 2001 case


-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to