Re: Re: [Lhms-devel] [PATCH 1/1] patch to fix acpi_memhotplug.c

KAMEZAWA Hiroyuki
2005-11-18T02:56:49Z

keith wrote:
>> >
>>Could you show your AML tree around Memory ?
>
>
> See attached SSDT.
>
Thanks, at the first look.....

> Device (ME00)
> {
<snip>
> Method (_STA, 0, NotSerialized)
> {
> If (CondRefOf (_OSI, Local0))
> {
> If (\_OSI ("Windows 2001"))
> {
> If (LAnd (LEqual (BADH, EADH), LEqual (BADL, EADL)))
> {
> Or (MEID, \_SB.MEMI, \_SB.MEMI)
> Return (0x00)
> }
> Else
> {
> And (Not (MEID), \_SB.MEMI, \_SB.MEMI)
> Return (0x0F)
> }
> }
> }
>
> Return (0x00)
> }
It seems memory device's _STA never returns 0xF always returns 0x0.
(Device is online and enabled) when OS is not Windows2001.
All PNP0C80 decvices in this SSDT has same _STA function.

So, I think why your hot add failes is _STA has no present bit.
==
drivers/acpi/scan.c

acpi_add_single_object()
<snip>
case ACPI_BUS_TYPE_DEVICE:
result = acpi_bus_get_status(device); in drivers/acpi/bus.c
if (ACPI_FAILURE(result) || !device->status.present) { <----(*)
result = -ENOENT;
goto end;
}
break;
==

rewriting your DSDT would be sane approach.

-- Kame