linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Len Brown <lenb@kernel.org>
To: Graham Adams <gadams@takelap.com>
Cc: linux-acpi@vger.kernel.org
Subject: Re: ACPI dmidecode output requested in dmesg output - Dell Dimension 5150
Date: Sun, 3 Feb 2008 17:03:28 -0500	[thread overview]
Message-ID: <200802031703.28815.lenb@kernel.org> (raw)
In-Reply-To: <5aedf440801270507gca2d36cvb7feacaf431453c4@mail.gmail.com>

On Sunday 27 January 2008 08:07, Graham Adams wrote:
> On 1/23/08, Graham Adams <gadams@takelap.com> wrote:
> > On 1/23/08, Len Brown <lenb@kernel.org> wrote:
> > > On Tuesday 22 January 2008 12:56, you wrote:
> > > > On 1/22/08, Len Brown <lenb@kernel.org> wrote:
> > > > > On Monday 21 January 2008 12:28, Graham Adams wrote:
> > > > > > On 1/19/08, Len Brown <lenb@kernel.org> wrote:
> > > > > > >
> > > > > > > > Please find attached the output of dmidecode after booting with
> > > > > > > > acpi_osi=!Linux as requested in dmesg output.  The system seems to be
> > > > > > > > working OK apart from problems with STAC9221 Line In (which has never
> > > > > > > > worked under Linux).
> > > > > > >
> > > > > > > > The system is a Dell Dimension 5150.
> > > > > > >
> > > > > > > > System Information
> > > > > > > > Manufacturer: Dell Inc.
> > > > > > > > Product Name: Dell DM051
> > > > > > > > Version: Not Specified
> > > > > > > > Serial Number: 6X8B32J
> > > > > > > > UUID: 44454C4C-5800-1038-8042-B6C04F33324A
> > > > > > > > Wake-up Type: Power Switch
> > > > > > > >
> > > > > > > > Handle 0x0200, DMI type 2, 8 bytes
> > > > > > > > Base Board Information
> > > > > > > > Manufacturer: Dell Inc.
> > > > > > > > Product Name: 0WG261
> > > > >
> > > > > This is "different"....
> > > > >
> > > > > some magic happens at initialization and at wake from suspend-to-disk
> > > > > to PCI device 00:1d -- which is apparently USB.
> > > > >
> > > > > The code reads as if Dell really did intend to do something special for Linux -
> > > > > at least the version of Linux they were testing...
> > > > >
> > > > > for non-Linux, ISLI does some SMI magic, for Linux the SMI magic is skipped.
> > > > >
> > > > > Does USB work properly in both cases, both before and after suspend to disk?
> > > > >
> > > > > thanks,
> > > > > -Len
> > > > >
> > > > >        Method (ISLI, 0, NotSerialized)
> > > > >         {
> > > > >             If (CondRefOf (_OSI, Local0))
> > > > >             {
> > > > >                 If (_OSI ("Linux"))
> > > > >                 {
> > > > >                     Return (One)
> > > > >                 }
> > > > >                 Else
> > > > >                 {
> > > > >                     Return (Zero)
> > > > >                 }
> > > > >             }
> > > > >             Else
> > > > >             {
> > > > >                 Return (Zero)
> > > > >             }
> > > > >         }
> > > > >
> > > > > ...
> > > > >     Method (GUSB, 0, NotSerialized)
> > > > >     {
> > > > >         If (ISLI ())    # the only reference to ISLI is this one
> > > > >         {
> > > > >             Return (Zero)
> > > > >                 # return valie of GUSB is ignored,
> > > > >                 # so this is the NO-OP path
> > > > >         }
> > > > >         Else
> > > > >         {
> > > > >             Return (SMI2 (0xBA))
> > > > >         }
> > > > >     }
> > > > > ...
> > > > > # surely this is SMI command/SMI Data method:
> > > > > # no telling what the actual command 0xBA is, though...
> > > > >
> > > > >     Method (SMI2, 1, NotSerialized)
> > > > >     {
> > > > >         Acquire (SMIM, 0xFFFF)
> > > > >         Store (Arg0, SMIC)
> > > > >         Store (SMIC, Local0)
> > > > >         Store (SMID, Local0)
> > > > >         ShiftLeft (Local0, 0x08, Local0)
> > > > >         Add (SMIC, Local0, Local0)
> > > > >         Release (SMIM)
> > > > >         Return (Local0)
> > > > >     }
> > > > > ...
> > > > >     Method (_WAK, 1, NotSerialized)
> > > > >     {
> > > > >         If (LEqual (Arg0, 0x04))
> > > > >         {
> > > > > # we come here on wakeup from suspend-to-disk
> > > > >
> > > > >             GUSB ()
> > > > >         }
> > > > >
> > > > >         If (Or (And (PMS2, One), Or (And (LNot (HACK ()),
> > > > >             And (GLBT, 0x11)), And (LNot (HACK ()), And (THRP, 0x18
> > > > >             )))))
> > > > >         {
> > > > >             Notify (\_SB.VBTN, 0x02)
> > > > >         }
> > > > >
> > > > >         Return (Zero)
> > > > >     }
> > > > > ...
> > > > >    Scope (_SB.PCI0)
> > > > >     {
> > > > >         Device (USB0)
> > > > >         {
> > > > >             Name (_ADR, 0x001D0000)
> > > > >             Name (_UID, 0x05)
> > > > >             Name (_PRW, Package (0x02)
> > > > >             {
> > > > >                 0x03,
> > > > >                 0x03
> > > > >             })
> > > > >             OperationRegion (UPC1, PCI_Config, 0xC1, One)
> > > > >             Field (UPC1, ByteAcc, NoLock, Preserve)
> > > > >             {
> > > > >                 LEGK,   8
> > > > >             }
> > > > >
> > > > >             Method (_INI, 0, NotSerialized)
> > > > >             {
> > > > >                 If (HACK ()) {}
> > > > >                 Else
> > > > >                 {
> > > > >                     Store (LEGK, Local0)
> > > > >                     And (Local0, 0x60, Local0)
> > > > >                     Or (Local0, 0x20, Local0)
> > > > >                     Store (Local0, LEGK)
> > > > >                 }
> > > > >
> > > > >                 GUSB ()
> > > > >             }
> > > > >
> > > > > ...
> > > > > This is different too....
> > > > >         Method (_INI, 0, NotSerialized)
> > > > >         {
> > > > >             If (CondRefOf (_OSI, Local0))
> > > > >             {
> > > > >                 If (_OSI ("Windows 2001"))
> > > > >                 {
> > > > >                     Store (0x04, MSOS)
> > > > > # yes, Linux does come here
> > > > > # MSOS is effectively "XP" or newer
> > > > >                 }
> > > > >             }
> > > > >         }
> > > > >
> > > > > ...
> > > > >         Method (HACK, 0, NotSerialized)
> > > > >         {
> > > > >             If (LEqual (MSOS, 0x04))
> > > > >             {
> > > > >                 Store (CMRD (0x6F), Local0)
> > > > >                 Or (Local0, 0x04, Local0)
> > > > >                 CMWR (0x6F, Local0)
> > > > > # Linux come shere b/c of OSI(Microsoft Windows 2001)
> > > > >                 Return (One)
> > > > >             }
> > > > >             Else
> > > > >             {
> > > > >                 Store (CMRD (0x6F), Local0)
> > > > >                 And (Local0, 0xFB, Local0)
> > > > >                 CMWR (0x6F, Local0)
> > > > >             }
> > > > >
> > > > >             Add (SizeOf (_OS), One, Local0)
> > > > >             Store (Local0, Local1)
> > > > >             Name (BUF0, Buffer (Local0) {})
> > > > >             Name (BUF1, Buffer (Local0) {})
> > > > >             Name (OSNT, One)
> > > > >             Name (OS98, One)
> > > > >             Store (_OS, BUF0)
> > > > >             Store ("Microsoft Windows NT", BUF1)
> > > > >             While (Local0)
> > > > >             {
> > > > > # an in-line strcmp()...
> > > > >                 Decrement (Local0)
> > > > >                 If (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1,
> > > > >                     Local0)))) {}
> > > > >                 Else
> > > > >                 {
> > > > >                     Store (Zero, OSNT)
> > > > >                 }
> > > > >             }
> > > > >
> > > > >             If (OSNT)
> > > > >             {
> > > > >                 Store (0x03, MSOS)
> > > > >                 Return (One)
> > > > >             }
> > > > >             Else
> > > > >             {
> > > > >                 Store ("Microsoft Windows", BUF1)
> > > > >                 While (Local1)
> > > > >                 {
> > > > >                     Decrement (Local1)
> > > > >                     If (LEqual (DerefOf (Index (BUF0, Local1)), DerefOf (Index (BUF1,
> > > > >                         Local1)))) {}
> > > > >                     Else
> > > > >                     {
> > > > >                         Store (Zero, OS98)
> > > > >                     }
> > > > >                 }
> > > > >
> > > > >                 If (OS98)
> > > > >                 {
> > > > >                     Store (One, MSOS)
> > > > >                     Return (Zero)
> > > > >                 }
> > > > >                 Else
> > > > >                 {
> > > > >                     Store (0x02, MSOS)
> > > > >                     Return (Zero)
> > > > >                 }
> > > > >             }
> > > > >         }
> > > > >
> > > >
> > > >
> > > >
> > > > Len,
> > > >
> > > > I had to learn how to configure my desktop to suspend to disk.
> > > >
> > > > Using acpi_osi=Linux  it does not resume from suspend, I get an error
> > > > "Could not stat resume device file"
> > > > The resume device is /dev/sda5 specified on the kermel command line
> > > > via the grub menu.
> > > > Using acpi_osi=!Linux the resume works (and USB devices work).
> > >
> > > Hmmm,  so you've to 2.6.22 or earlier where the default is acpi_osi=Linux
> > > and suspend to disk fails; but when you add "acpi_osi=!Linux" suspend
> > > to disk works?!
> > >
> > > I guess it is important that we stay Windows compatible
> > > on this box and trigger whatever SMI Dell has in that path.
> > >
> > > thanks,
> > > -Len
> > >
> >
> > I'll have another look at this today if I get a chance - it's possible
> > I messed something up with the suspend as it's the first time I've set
> > it up - a normal reboot (not after suspend) failed with
> > resume=/dev/sda5 and acpi_osi=!Linux.  I don't know if it always tries
> > a resume if you give a resume= kernel argument or looks for a
> > signature and if not found does a normal reboot.
> >
> > --
> > Graham Adams
> > gadams@takelap.com
> >
> 
> Len,
> 
> My problems were due I think to switching to initramfs from initrd so
> I could use suspend.  Initramfs seems to detect devices in a different
> order and it couldn't find the root filesystem, strange it worked
> sometimes though.  I'm sorry about the confusion.
> 
> Anyway, the upshot is that I haven't found any functional difference
> after all with acpi_osi=!Linux or acpi_osi=Linux on a normal boot or a
> resume after suspend.
> USB seems to work OK in each case (hotplugged disk, also keyboard and
> mouse are USB anyway).
> 
> 
> Let me know if you want me to try anything else.

Thanks for testing -- I've removed the comment that OSI(Linux) breaks hibernate.
I'll keep OSI(Linux) disabled on this box since it is a risk and has not
proven to help anything.

-Len

      parent reply	other threads:[~2008-02-03 22:03 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-15 11:04 ACPI dmidecode output requested in dmesg output Graham Adams
     [not found] ` <200801182305.48685.lenb@kernel.org>
     [not found]   ` <5aedf440801210928m31840000qed11c986437bd1e9@mail.gmail.com>
2008-01-22  2:57     ` ACPI dmidecode output requested in dmesg output - Dell Dimension 5150 Len Brown
     [not found]       ` <5aedf440801220956h3f99cbffp97c664fdea0ef571@mail.gmail.com>
2008-01-23  5:43         ` Len Brown
     [not found] ` <5aedf440801230032m45a9defbs735887c2ea0b302c@mail.gmail.com>
     [not found]   ` <5aedf440801270507gca2d36cvb7feacaf431453c4@mail.gmail.com>
2008-02-03 22:03     ` Len Brown [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200802031703.28815.lenb@kernel.org \
    --to=lenb@kernel.org \
    --cc=gadams@takelap.com \
    --cc=linux-acpi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).