Hi Kenji, Kristen,
* Kristen Carlson Accardi <kristen.c.accardi@intel.com>:
Yes, I agree that is what we are discussing here.
This is also true, but I would like to point out that the *scope*
of these control methods is confusing the issue slightly.
On my machine, I have a namespace that looks like this:
| | |-- L001 [6]
| | | |-- _UID (0x100) [1]
| | | |-- LMUT [9]
| | | |-- _STA (0xf) [8]
| | | |-- _BBN (0x1) [8]
| | | |-- _HID (HWP0002) [8]
| | | |-- _CID (PNP0A03) [8]
| | | |-- _PRT [8]
| | | |-- _CRS [8]
| | | |-- RDFM [8]
| | | |-- WRFM [8]
| | | |-- _DSM [8]
| | | |-- _OSC [8]
| | | |-- _INI [8]
| | | |-- S1F0 [6]
| | | | |-- SLOT (0x0) [1]
| | | | |-- FUNC (0x0) [1]
| | | | |-- _UID (0x100) [8]
| | | | |-- _ADR (0x10000) [8]
| | | | |-- _STA (0x0) [8]
| | | | |-- _SUN (0x9) [8]
| | | | |-- _EJ0 [8]
| | | | |-- _PS0 [8]
| | | | |-- _PS3 [8]
| | | | |-- ATNS [8]
| | | | |-- ASTA [8]
| | | | |-- PWRS [8]
| | | | `-- PSTA [8]
| | | |-- S1F1 [6]
My L001 object is the PCI bridge. Note that it has _STA and _INI.
My S1F0 object is the PCI slot. Note that it has a _STA and a
_SUN, but it does *not* have an _INI.
So on my machine, if L001._STA indicates "present", then we
should evaluate L001._INI and examine the children for _INI
methods. (according to acpi 3.0b spec).
If the children have _INI, then we need to check child._STA
before evaluating the child._INI.
On my machine, it is legal to evaluate S1F0._SUN independent of
S1F0._STA because L001._INI has already been evaluated.
It would be helpful to know what Fujitsu's namespace looks like.
If Fujitsu slot objects contain _STA and _INI, then I agree with
Kenji-san -- I definitely need to check _STA before evaluating
_SUN.
But in any case, I think both HP and Fujitsu firmware are doing
legal things -- neither firmware is breaking the spec.
I should not have called Fujitsu's machine a quirk, so I
apologize for that. I can change the comments to remove that
language.
I do think that what we should do is see which list is easier to
maintain, based on "what interpretation is being implemented on
most platforms".
If one list is shorter than the other, then that should be the
list to put in the kernel, and the default behavior should be
"majority rule".
Thanks.
/ac
--