2008-02-07 21:47:20

by Pavel Machek

[permalink] [raw]
Subject: ACPI_WMI: worst config description of all times



See? It even has completely useless help text.

Does WMI stand for Windows Management Instrumentation? It is some
server management feature? What is it good for?

Pavel

WMI (EXPERIMENTAL) (ACPI_WMI) [N/m/y/?] (NEW) ?

This driver adds support for the ACPI-WMI mapper device (PNP0C14)
found on some systems.

NOTE: You will need another driver or userspace application on top of
this to actually use anything defined in the ACPI-WMI mapper.


--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


2008-02-07 22:28:17

by Len Brown

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Thursday 07 February 2008 16:47, Pavel Machek wrote:
>
> See? It even has completely useless help text.
>
> Does WMI stand for Windows Management Instrumentation? It is some
> server management feature? What is it good for?

Thank you for the feedback, Pavel.

There is an additional patch which creates
Documentation/acpi/wmi.txt, but I witheld it from
this batch because it needs to be revised.
If you are not subscribed to the linux-acpi list
you can find it here:

http://marc.info/?l=linux-acpi&m=120217838010224&w=2

Clearly we neeed to update the Kconfig doc as well when
we revise and push that patch.

-Len

ps. the answers to your questions are "yes" and "see NOTE" below.

> WMI (EXPERIMENTAL) (ACPI_WMI) [N/m/y/?] (NEW) ?
>
> This driver adds support for the ACPI-WMI mapper device (PNP0C14)
> found on some systems.
>
> NOTE: You will need another driver or userspace application on top of
> this to actually use anything defined in the ACPI-WMI mapper.
>
>

2008-02-07 22:35:20

by Pavel Machek

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Thu 2008-02-07 17:27:38, Len Brown wrote:
> On Thursday 07 February 2008 16:47, Pavel Machek wrote:
> >
> > See? It even has completely useless help text.
> >
> > Does WMI stand for Windows Management Instrumentation? It is some
> > server management feature? What is it good for?
>
> Thank you for the feedback, Pavel.
>
> There is an additional patch which creates
> Documentation/acpi/wmi.txt, but I witheld it from
> this batch because it needs to be revised.
> If you are not subscribed to the linux-acpi list
> you can find it here:
>
> http://marc.info/?l=linux-acpi&m=120217838010224&w=2
>
> Clearly we neeed to update the Kconfig doc as well when
> we revise and push that patch.

+ACPI-WMI mapping driver
+
+Copyright (C) 2007-2008 Carlos Corbacho <[email protected]>
+
+Updated: 5th February 2008
+
+1) About this guide
+
+This guide is a basic introduction on how to interact with the ACPI-WMI mapper
+driver in the kernel - it presumes you already have a basic knowledge of
+ACPI-WMI, ACPI and the hardware you are writing the driver for.
+
+2) What is ACPI-WMI
+
+At its simplest, ACPI-WMI is a proprietary extension to the ACPI specification
+from Microsoft to allow WMI (their implementation of WBEM) to access
+instrumentation data and methods in ACPI from userspace, via the ACPI _HID
+device PNP0C14.
+
+3) What is the ACPI-WMI mapper
+
+The Linux ACPI-WMI driver is the implementation of this mapper for Linux.

Yes, please. This needs translation into plain english.

What is WBEM, in plain terms? What is it good for?
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2008-02-07 23:18:54

by Carlos Corbacho

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Thursday 07 February 2008 22:34:55 Pavel Machek wrote:
> +3) What is the ACPI-WMI mapper
> +
> +The Linux ACPI-WMI driver is the implementation of this mapper for Linux.
>
> Yes, please. This needs translation into plain english.

In plain English? ACPI-WMI is a nasty hack/ abuse of ACPI by Microsoft to
force their driver model into ACPI, and that should be thoroughly discouraged
from further use.

However, since quite a few laptop vendors rely on it for basic functionality,
we have to implement it (or a part of it) as well.

Yes, WMI itself is supposed to be an instrumentation/ management thing, as
well as, if I understand, part of their driver model, and ACPI-WMI is a part
of that - by and of itself though, ACPI-WMI is _not_ the whole of WMI.

All that the Linux driver currently cares about is translating this crap into
something that we can actually use in Linux to make hardware work (kernel
space). So at the moment, ACPI-WMI is exactly what it says it is - not a lot.
It needs another driver on top to do something useful (e.g. acer-wmi,
tc1100-wmi).

Later on, we will try and replicate the rest of the 'specification', which is
supposed to export all this rubbish (data, and direct access to various ACPI
methods defined in a WMI device) to userspace.

> What is WBEM, in plain terms? What is it good for?

If you can make heads or tails of WBEM, please feel free to let me know.

AFAICT, it's supposed to be a means of providing some sort of web based
management/ instrumentation.

So yes, I agree with you the documentation is crap - but it needs to be redone
anyway, and I've already had that pointed out to me.

As for the Kconfig - I'm open to suggestions.

-Carlos
--
E-Mail: [email protected]
Web: strangeworlds.co.uk
GPG Key ID: 0x23EE722D

2008-02-07 23:34:22

by Ray Lee

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Feb 7, 2008 3:18 PM, Carlos Corbacho <[email protected]> wrote:
> As for the Kconfig - I'm open to suggestions.

While the kconfig text is supposed to say 'what' something is, the
more valuable piece of information it provides is *why* one would want
to enable it.

Do you have list of hardware/platforms that require this feature to
get the hardware to work? (acer abc123, tcm1100 xyz) If so, providing
that information to the user/distributions is the right first step.
Tell them why they want this feature.

Better, if there are kernel drivers that require this (and currently
only those drivers), then have those kernel drivers enable ACPI WMI,
and otherwise leave it off. If/when the userspace accessible bits go
in, it can be exposed to the configurator then.

Ray

2008-02-07 23:51:59

by Carlos Corbacho

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Thursday 07 February 2008 23:33:54 Ray Lee wrote:
> Do you have list of hardware/platforms that require this feature to
> get the hardware to work? (acer abc123, tcm1100 xyz)

I have a very long list of Acer laptops that are supported - which is far too
long, and changes on far too much of a regular basis to put in there.

Perhaps adding something like "This driver is also a required dependency to
build the firmware specific drivers needed for many laptops, including Acer
and HP machines"?

(There's currently another ACPI-WMI based driver in development related to
more HP laptops, and acer-wmi also supports a handful of non-Acer laptops).

I don't think explaining what WMI is, and how ACPI-WMI is related to it is
that useful in Kconfig here; so I agree that further elaborating on the 'why'
this should be enabled is definitely worth doing.

> Better, if there are kernel drivers that require this (and currently
> only those drivers), then have those kernel drivers enable ACPI WMI,

Wouldn't that require 'select' though, and I'm led to believe that's seriously
frowned upon these days?

-Carlos
--
E-Mail: [email protected]
Web: strangeworlds.co.uk
GPG Key ID: 0x23EE722D

2008-02-08 00:12:38

by Ray Lee

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Feb 7, 2008 3:51 PM, Carlos Corbacho <[email protected]> wrote:
> On Thursday 07 February 2008 23:33:54 Ray Lee wrote:
> > Do you have list of hardware/platforms that require this feature to
> > get the hardware to work? (acer abc123, tcm1100 xyz)
>
> I have a very long list of Acer laptops that are supported - which is far too
> long, and changes on far too much of a regular basis to put in there.
>
> Perhaps adding something like "This driver is also a required dependency to
> build the firmware specific drivers needed for many laptops, including Acer
> and HP machines"?

<nod>

> (There's currently another ACPI-WMI based driver in development related to
> more HP laptops, and acer-wmi also supports a handful of non-Acer laptops).
>
> I don't think explaining what WMI is, and how ACPI-WMI is related to it is
> that useful in Kconfig here; so I agree that further elaborating on the 'why'
> this should be enabled is definitely worth doing.
>
> > Better, if there are kernel drivers that require this (and currently
> > only those drivers), then have those kernel drivers enable ACPI WMI,
>
> Wouldn't that require 'select' though, and I'm led to believe that's seriously
> frowned upon these days?

Depends who you talk to. It's certainly the fodder for a yearly flamewar.

While I'm not trying to set you up for a firing squad, if you can show
that the only use this driver has is as underlying support for Acer/HP
xyz drivers, and that those drivers require this one, then that
situation really is what select is in there for. Anyone who argues
against using select in that case is really just arguing against the
mere existence of the kconfig select keyword itself.

2008-02-08 00:50:07

by Carlos Corbacho

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Friday 08 February 2008 00:12:24 Ray Lee wrote:
> While I'm not trying to set you up for a firing squad, if you can show
> that the only use this driver has is as underlying support for Acer/HP
> xyz drivers,

Certainly at the moment, this is the only real use it has (and the only reason
I spent any time working on a generic ACPI-WMI driver - probably one of the
reasons Kconfig is somewhat neglected - ACPI-WMI is a means to an end for me
(getting my laptop properly supported by another driver on top of it), not
the end itself).

Although, given most of the other laptop drivers in drivers/misc use 'select'
for various things, I don't see the harm here - unless anyone else has a
great objection to acer-wmi and tc1100-wmi having 'select ACPI_WMI'?

-Carlos
--
E-Mail: [email protected]
Web: strangeworlds.co.uk
GPG Key ID: 0x23EE722D

2008-02-08 01:19:38

by Carlos Corbacho

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Friday 08 February 2008 00:12:24 Ray Lee wrote:
> On Feb 7, 2008 3:51 PM, Carlos Corbacho <[email protected]> wrote:
> > On Thursday 07 February 2008 23:33:54 Ray Lee wrote:
> > > Do you have list of hardware/platforms that require this feature to
> > > get the hardware to work? (acer abc123, tcm1100 xyz)
> >
> > I have a very long list of Acer laptops that are supported - which is far
> > too long, and changes on far too much of a regular basis to put in there.
> >
> > Perhaps adding something like "This driver is also a required dependency
> > to build the firmware specific drivers needed for many laptops, including
> > Acer and HP machines"?

Would this be acceptable then?

-Carlos
---
ACPI: WMI: Improve Kconfig entry

From: Carlos Corbacho <[email protected]>

As Pavel Machek has pointed out, the Kconfig entry for WMI is pretty
non-descriptive.

Rewrite it so that it explains what ACPI-WMI is, and why anyone
would want to enable it.

Many thanks to Ray Lee for ideas on this.

Signed-off-by: Carlos Corbacho <[email protected]>
CC: Pavel Machek <[email protected]>
CC: Ray Lee <[email protected]>
CC: Len Brown <[email protected]>
---

drivers/acpi/Kconfig | 19 +++++++++++++++----
1 files changed, 15 insertions(+), 4 deletions(-)


diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index b7fbf16..ea763ef 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -207,11 +207,22 @@ config ACPI_WMI
depends on EXPERIMENTAL
depends on X86
help
- This driver adds support for the ACPI-WMI mapper device (PNP0C14)
- found on some systems.
+ This driver adds support for the ACPI-WMI (Windows Management
+ Instrumentation) mapper device (PNP0C14) found on some systems.

- NOTE: You will need another driver or userspace application on top of
- this to actually use anything defined in the ACPI-WMI mapper.
+ ACPI-WMI is a proprietary extension to ACPI to expose parts of the
+ ACPI firmware to userspace - this is done through various vendor
+ defined methods and data blocks in a PNP0C14 device, which are then
+ made available for userspace to call.
+
+ The implementation of this in Linux currently only exposes this to
+ other kernel space drivers.
+
+ This driver is a required dependency to build the firmware specific
+ drivers needed on many machines, including Acer and HP laptops.
+
+ It is safe to enable this driver even if your DSDT doesn't define
+ any ACPI-WMI devices.

config ACPI_ASUS
tristate "ASUS/Medion Laptop Extras"

2008-02-08 01:38:34

by Ray Lee

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Feb 7, 2008 5:19 PM, Carlos Corbacho <[email protected]> wrote:
> On Friday 08 February 2008 00:12:24 Ray Lee wrote:
> > On Feb 7, 2008 3:51 PM, Carlos Corbacho <[email protected]> wrote:
> > > On Thursday 07 February 2008 23:33:54 Ray Lee wrote:
> > > > Do you have list of hardware/platforms that require this feature to
> > > > get the hardware to work? (acer abc123, tcm1100 xyz)
> > >
> > > I have a very long list of Acer laptops that are supported - which is far
> > > too long, and changes on far too much of a regular basis to put in there.
> > >
> > > Perhaps adding something like "This driver is also a required dependency
> > > to build the firmware specific drivers needed for many laptops, including
> > > Acer and HP machines"?
>
> Would this be acceptable then?
>
> -Carlos
> ---
> ACPI: WMI: Improve Kconfig entry
>
> From: Carlos Corbacho <[email protected]>
>
> As Pavel Machek has pointed out, the Kconfig entry for WMI is pretty
> non-descriptive.
>
> Rewrite it so that it explains what ACPI-WMI is, and why anyone
> would want to enable it.
>
> Many thanks to Ray Lee for ideas on this.
>
> Signed-off-by: Carlos Corbacho <[email protected]>
> CC: Pavel Machek <[email protected]>
> CC: Ray Lee <[email protected]>
> CC: Len Brown <[email protected]>
> ---
>
> drivers/acpi/Kconfig | 19 +++++++++++++++----
> 1 files changed, 15 insertions(+), 4 deletions(-)
>
>
> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
> index b7fbf16..ea763ef 100644
> --- a/drivers/acpi/Kconfig
> +++ b/drivers/acpi/Kconfig
> @@ -207,11 +207,22 @@ config ACPI_WMI
> depends on EXPERIMENTAL
> depends on X86
> help
> - This driver adds support for the ACPI-WMI mapper device (PNP0C14)
> - found on some systems.
> + This driver adds support for the ACPI-WMI (Windows Management
> + Instrumentation) mapper device (PNP0C14) found on some systems.
>
> - NOTE: You will need another driver or userspace application on top of
> - this to actually use anything defined in the ACPI-WMI mapper.
> + ACPI-WMI is a proprietary extension to ACPI to expose parts of the
> + ACPI firmware to userspace - this is done through various vendor
> + defined methods and data blocks in a PNP0C14 device, which are then
> + made available for userspace to call.
> +
> + The implementation of this in Linux currently only exposes this to
> + other kernel space drivers.
> +
> + This driver is a required dependency to build the firmware specific
> + drivers needed on many machines, including Acer and HP laptops.
> +
> + It is safe to enable this driver even if your DSDT doesn't define
> + any ACPI-WMI devices.
>
> config ACPI_ASUS
> tristate "ASUS/Medion Laptop Extras"
>

<nod> That's clear to me (whereas the original wasn't), though I would
still argue for this driver being select'ed by the drivers that
require it. As you note, other laptop specific drivers do so, and
Linus has come down in favor of that as well in the past, so you have
a friend in high places :-).

2008-02-08 02:04:26

by Carlos Corbacho

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Friday 08 February 2008 01:38:01 Ray Lee wrote:
> <nod> That's clear to me (whereas the original wasn't), though I would
> still argue for this driver being select'ed by the drivers that
> require it. As you note, other laptop specific drivers do so, and
> Linus has come down in favor of that as well in the past, so you have
> a friend in high places :-).

I have some other patches lined up to do so. Unless I hear some arguments
against it, or some better alternatives, I'll put them together with this
and get Len to apply them to the ACPI tree (and then hopefully push back
out before the -rc1 release).

-Carlos
--
E-Mail: [email protected]
Web: strangeworlds.co.uk
GPG Key ID: 0x23EE722D

2008-02-08 05:27:24

by Len Brown

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

good description, Carlos.

applied.
thanks,
-Len

On Thursday 07 February 2008 20:19, Carlos Corbacho wrote:
> On Friday 08 February 2008 00:12:24 Ray Lee wrote:
> > On Feb 7, 2008 3:51 PM, Carlos Corbacho <[email protected]> wrote:
> > > On Thursday 07 February 2008 23:33:54 Ray Lee wrote:
> > > > Do you have list of hardware/platforms that require this feature to
> > > > get the hardware to work? (acer abc123, tcm1100 xyz)
> > >
> > > I have a very long list of Acer laptops that are supported - which is far
> > > too long, and changes on far too much of a regular basis to put in there.
> > >
> > > Perhaps adding something like "This driver is also a required dependency
> > > to build the firmware specific drivers needed for many laptops, including
> > > Acer and HP machines"?
>
> Would this be acceptable then?
>
> -Carlos
> ---
> ACPI: WMI: Improve Kconfig entry
>
> From: Carlos Corbacho <[email protected]>
>
> As Pavel Machek has pointed out, the Kconfig entry for WMI is pretty
> non-descriptive.
>
> Rewrite it so that it explains what ACPI-WMI is, and why anyone
> would want to enable it.
>
> Many thanks to Ray Lee for ideas on this.
>
> Signed-off-by: Carlos Corbacho <[email protected]>
> CC: Pavel Machek <[email protected]>
> CC: Ray Lee <[email protected]>
> CC: Len Brown <[email protected]>
> ---
>
> drivers/acpi/Kconfig | 19 +++++++++++++++----
> 1 files changed, 15 insertions(+), 4 deletions(-)
>
>
> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
> index b7fbf16..ea763ef 100644
> --- a/drivers/acpi/Kconfig
> +++ b/drivers/acpi/Kconfig
> @@ -207,11 +207,22 @@ config ACPI_WMI
> depends on EXPERIMENTAL
> depends on X86
> help
> - This driver adds support for the ACPI-WMI mapper device (PNP0C14)
> - found on some systems.
> + This driver adds support for the ACPI-WMI (Windows Management
> + Instrumentation) mapper device (PNP0C14) found on some systems.
>
> - NOTE: You will need another driver or userspace application on top of
> - this to actually use anything defined in the ACPI-WMI mapper.
> + ACPI-WMI is a proprietary extension to ACPI to expose parts of the
> + ACPI firmware to userspace - this is done through various vendor
> + defined methods and data blocks in a PNP0C14 device, which are then
> + made available for userspace to call.
> +
> + The implementation of this in Linux currently only exposes this to
> + other kernel space drivers.
> +
> + This driver is a required dependency to build the firmware specific
> + drivers needed on many machines, including Acer and HP laptops.
> +
> + It is safe to enable this driver even if your DSDT doesn't define
> + any ACPI-WMI devices.
>
> config ACPI_ASUS
> tristate "ASUS/Medion Laptop Extras"
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2008-02-08 05:43:36

by Len Brown

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Thursday 07 February 2008 21:02, Carlos Corbacho wrote:
> On Friday 08 February 2008 01:38:01 Ray Lee wrote:
> > <nod> That's clear to me (whereas the original wasn't), though I would
> > still argue for this driver being select'ed by the drivers that
> > require it. As you note, other laptop specific drivers do so, and
> > Linus has come down in favor of that as well in the past, so you have
> > a friend in high places :-).
>
> I have some other patches lined up to do so. Unless I hear some arguments
> against it, or some better alternatives, I'll put them together with this
> and get Len to apply them to the ACPI tree (and then hopefully push back
> out before the -rc1 release).

done.

cheers,
-Len

>From 4a507d93fac78ecd37d18343c57c564f6a126f01 Mon Sep 17 00:00:00 2001
From: Len Brown <[email protected]>
Date: Fri, 8 Feb 2008 00:37:16 -0500
Subject: [PATCH] acer-wmi, tc1100-wmi: select ACPI_WMI
Organization: Intel Open Source Technology Center

It is safe for these Kconfig entries to use select because
they select ACPI_WMI, which already has its dependencies
satisfied. This makes Kconfig more user friendly, since
the user selects the driver they want and the dependency
is met for them. Otherwise, the user would have to find
and enable ACPI_WMI to make enabling these drivers possible.

Signed-off-by: Len Brown <[email protected]>
---
drivers/misc/Kconfig | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 218c65a..e19343e 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -97,9 +97,9 @@ config ACER_WMI
depends on X86
depends on EXPERIMENTAL
depends on ACPI
- depends on ACPI_WMI
depends on LEDS_CLASS
depends on BACKLIGHT_CLASS_DEVICE
+ select ACPI_WMI
---help---
This is a driver for newer Acer (and Wistron) laptops. It adds
wireless radio and bluetooth control, and on some laptops,
@@ -146,7 +146,7 @@ config TC1100_WMI
tristate "HP Compaq TC1100 Tablet WMI Extras"
depends on X86 && !X86_64
depends on ACPI
- depends on ACPI_WMI
+ select ACPI_WMI
---help---
This is a driver for the WMI extensions (wireless and bluetooth power
control) of the HP Compaq TC1100 tablet.
--
1.5.4.34.g053d9

2008-02-08 06:53:32

by Pavel Machek

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

Hi!

> On Friday 08 February 2008 00:12:24 Ray Lee wrote:
> > While I'm not trying to set you up for a firing squad, if you can show
> > that the only use this driver has is as underlying support for Acer/HP
> > xyz drivers,
>
> Certainly at the moment, this is the only real use it has (and the only reason
> I spent any time working on a generic ACPI-WMI driver - probably one of the
> reasons Kconfig is somewhat neglected - ACPI-WMI is a means to an end for me
> (getting my laptop properly supported by another driver on top of it), not
> the end itself).
>
> Although, given most of the other laptop drivers in drivers/misc use 'select'
> for various things, I don't see the harm here - unless anyone else has a
> great objection to acer-wmi and tc1100-wmi having 'select ACPI_WMI'?

I believe selct is the way to go here. What do acer-wmi handle?
Additional buttons? Leds? Temperatures? Fan states?

The laptops will boot fine without it, right?

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2008-02-08 09:38:41

by Carlos Corbacho

[permalink] [raw]
Subject: Re: ACPI_WMI: worst config description of all times

On Friday 08 February 2008 06:53:13 Pavel Machek wrote:
> I believe selct is the way to go here. What do acer-wmi handle?
> Additional buttons? Leds? Temperatures? Fan states?

Enabling wireless, bluetooth and 3G; and exposing the mail LED and backlight.

tc1100-wmi handles wireless and the jog dial, IIRC.

> The laptops will boot fine without it, right?

Yes.

-Carlos
--
E-Mail: [email protected]
Web: strangeworlds.co.uk
GPG Key ID: 0x23EE722D