acpi_cpu: _PDC vs _OSC
Andriy Gapon
avg at icyb.net.ua
Thu Feb 4 22:33:22 UTC 2010
on 05/02/2010 00:29 John Baldwin said the following:
> But is GCAP loading an additional SSDT? That is what the "loading something"
> refers to and I think we've only observed that occurring with _OSC. I'd
> rather we only document unexpected quirks that someone has actually reported
> and not assume that just because an _OSC method on some box did it, there's
> bound to be a _PDC method on some other box that does it. In truth, the
> comment is probably not needed now anyway since this will always do _OSC
> first.
I agree with you. Probably the comment is too obvious or too useless now, when
such things are a common place.
To answer your first question - yes it does:
Method (GCAP, 1, NotSerialized)
{
CreateDWordField (Arg0, Zero, STS0)
CreateDWordField (Arg0, 0x04, CAP0)
If (LOr (LEqual (STS0, 0x06), LEqual (STS0, 0x0A)))
{
Return (Zero)
}
If (And (STS0, One))
{
And (CAP0, 0x0BFF, CAP0)
Return (Zero)
}
Or (And (PDC0, 0x7FFFFFFF), CAP0, PDC0)
If (And (CFGD, One))
{
If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (PDC0,
0x09), 0x09)), LNot (And (SDTL, One))))
{
Or (SDTL, One, SDTL)
OperationRegion (IST0, SystemMemory, DerefOf (Index (SSDT, One)),
DerefOf (Index (SSDT, 0x02
)))
Load (IST0, HI0)
}
}
If (And (CFGD, 0xF0))
{
If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC0, 0x18
)), LNot (And (SDTL, 0x02))))
{
Or (SDTL, 0x02, SDTL)
OperationRegion (CST0, SystemMemory, DerefOf (Index (SSDT, 0x07)),
DerefOf (Index (SSDT, 0x08
)))
Load (CST0, HC0)
}
}
Return (Zero)
}
--
Andriy Gapon
More information about the freebsd-acpi
mailing list