linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Len Brown <lenb@kernel.org>
To: Tomas Carnecky <tom@dbservice.com>
Cc: Theodore Tso <tytso@mit.edu>,
	Matthew Garrett <mjg59@srcf.ucam.org>,
	Henrique de Moraes Holschuh <hmh@hmh.eng.br>,
	linux-acpi@vger.kernel.org
Subject: Re: [PATCH 5/5] ACPI: add DMI to enable OSI(Linux) on ThinkPad T61
Date: Sun, 20 Jan 2008 13:31:59 -0500	[thread overview]
Message-ID: <200801201331.59478.lenb@kernel.org> (raw)
In-Reply-To: <47933886.7050401@dbservice.com>

On Sunday 20 January 2008 07:03, Tomas Carnecky wrote:
> Len Brown wrote:
> >    I am okay with defining OSI strings for the benefit of BIOS vendors that
> >    need to know about Linux capabilities.  But the string must
> >    identify that specific capability (or lack of a capability).
> 
> Is there a chance this will be added to future ACPI specs, or have it 
> standardized in one way or another? I think that would be not only good 
> for Linux, but all other UNIX-like operating systems as well (and maybe 
> Windows as well).
> 
> Not that I care, really, but for me as an outsider to the whole ACPI 
> domain, it seems _OSI() isn't a well thought out interface. Checking for 
> an OS name rather than individual capabilities may not matter as much 
> under Windows, but for Linux, with its rather short release cycle, it 
> certainly does.

Originally, there was _OS="<insert your OS name>" to identify the OS to the BIOS.
We proudly answered _OS="Linux" and broke every BIOS on Earth
that assumed that the only two choices for _OS
which corresponded to Win98 and WinNT.
That is why _OS="Microsoft Windows NT" is hardwired
into Linux and any other OS that is concerned about
following what has proven to be the only tested
path through the BIOS.

So naming the OS turned out to be a failure (for everybody,
not just for Linux -- consider that XP and Vista claim they are NT
according to _OS or they hit the same BIOS bugs we do...)

_OSI is supposed to tell the BIOS what interfaces the OS supports,
for example "Extended Address Space Descriptor".

However, it is being mis-used to identify the
version of the OS, which is why you see this:

static char *acpi_interfaces_supported[] = {
        /* Operating System Vendor Strings */

        "Windows 2000",         /* Windows 2000 */
        "Windows 2001",         /* Windows XP */
        "Windows 2001 SP1",     /* Windows XP SP1 */
        "Windows 2001 SP2",     /* Windows XP SP2 */
        "Windows 2001.1",       /* Windows Server 2003 */
        "Windows 2001.1 SP1",   /* Windows Server 2003 SP1 - Added 03/2006 */
        "Windows 2006",         /* Windows Vista - Added 03/2006 */

ie. basically the OS name is a proxy for all the interfaces
that OS supports.  Taken another way, OS-version-specific quirks
and workarounds are included in the definition of that interface...

We could do the same with Linux, except that
1. the string "Linux" is even more poorly defined than those above,
   as it has no version information.
2. the presence of the string "Linux" tends to break as many BIOS'
   implementations as it fixes -- because it isn't universally tested.

So if new strings come up in the ACPI spec, we can use standard strings.
But I don't think the ACPI spec is necessary to address Linux'
problem-at-hand.

We as the Linux community can define "Needs BIOS S3 video restore" as a string
and ship it in our kernel, telling BIOS writers about it.
However, we'd reserve the right to _stop_ answering YES to a query on that string
when we no longer need it.

cheers,
-Len

  reply	other threads:[~2008-01-20 18:32 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-17 10:24 [PATCH 0/5] improved knobs to deal with OSI(Linux) Len Brown
2008-01-17 10:24 ` [PATCH 1/5] DMI: move dmi_available declaration to linux/dmi.h Len Brown
2008-01-17 10:24   ` [PATCH 2/5] DMI: create dmi_dump_entries() Len Brown
2008-01-17 10:24   ` [PATCH 3/5] ACPI: use dmi_dump_entries() instead of requesting dmidecode output Len Brown
2008-01-17 10:24   ` [PATCH 4/5] ACPI: OSI(Linux) cmdline and DMI BIOS workarounds Len Brown
2008-01-17 10:24   ` [PATCH 5/5] ACPI: add DMI to enable OSI(Linux) on ThinkPad T61 Len Brown
2008-01-17 12:28     ` Matthew Garrett
2008-01-17 14:46       ` Henrique de Moraes Holschuh
2008-01-17 20:04       ` Len Brown
2008-01-17 21:31         ` Theodore Tso
2008-01-19  7:40           ` Len Brown
2008-01-19 12:08             ` Henrique de Moraes Holschuh
2008-01-19 14:17               ` Theodore Tso
2008-01-19 15:33                 ` Henrique de Moraes Holschuh
2008-01-19 15:43                   ` Matthew Garrett
2008-01-19 23:19                     ` Theodore Tso
2008-01-20  4:13                       ` Len Brown
2008-01-20 11:16                         ` Rafael J. Wysocki
2008-01-20 12:03                         ` Tomas Carnecky
2008-01-20 18:31                           ` Len Brown [this message]
2008-01-20 19:21                             ` Tomas Carnecky
2008-01-21  1:52                             ` Theodore Tso
2008-01-21  9:50                               ` Matthew Garrett
2008-01-21 19:00                                 ` Theodore Tso
2008-01-21 19:37                                   ` Matthew Garrett
2008-01-22  5:37                                     ` Len Brown
2008-01-20 19:49                       ` Henrique de Moraes Holschuh
2008-02-18 16:58                         ` Thomas Renninger
2008-02-18 19:17                           ` Henrique de Moraes Holschuh
2008-02-19  0:00                             ` Thomas Renninger
2008-02-19  0:26                               ` Theodore Tso
2008-02-19  6:34                                 ` Thomas Renninger
2008-02-19 13:24                                 ` Henrique de Moraes Holschuh
2008-02-19 10:26                             ` Thomas Renninger
2008-02-19 14:24                               ` Henrique de Moraes Holschuh
2008-02-20  1:43                                 ` Thomas Renninger
2008-02-20  2:47                                   ` Henrique de Moraes Holschuh
2008-01-19  7:50     ` [PATCH 6/5] ACPI: DMI blacklist for OSI(Linux) Len Brown
2008-01-19  8:16       ` Andi Kleen
2008-01-20  4:18         ` Len Brown

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=200801201331.59478.lenb@kernel.org \
    --to=lenb@kernel.org \
    --cc=hmh@hmh.eng.br \
    --cc=linux-acpi@vger.kernel.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=tom@dbservice.com \
    --cc=tytso@mit.edu \
    /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).