Bob,
Is my use of the Debug AML object below valid?
I seem to get 0 for \_SB.PCI0.ISA0.PIRA no matter
how I try to read it.  As this is the PIIX4 PIRQA
Route Control Register, getting 0 is actually consistent
with the Linux failure.  So I guess the next question
is how to figure out how the DSDT is coming up with
an address for this register that doesn't work --
is there a way to print out the address of that object?

full acpidump and dmesg are here:
http://bugzilla.kernel.org/show_bug.cgi?id=5966

Oh, and VIPR() in _CRS is a method to check if the register
is enabled and valid, given a value of 0, it always
returns invalid.

notably, _SRS prints out
 
[ACPI Debug]  String: [0x03] "SRS"
[ACPI Debug]  Integer: 0x00000000
[ACPI Debug]  Integer: 0x00000009
[ACPI Debug]  Integer: 0x00000000

So we always read 0 -- our write has no effect.

thanks,
-Len

    Scope (_SB)
    {
        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, One)
            Method (_INI, 0, NotSerialized)
            {
Store("_INI", Debug)
                If (W98F)
                {
                    And (DerefOf (Index (_PRS, 0x02)), 0x7F, Index
(_PRS, 0x02))
                }
Else
{
Store("NOT W98F", Debug)
}
            }

            Method (_STA, 0, NotSerialized)
            {
Store("STA", Debug)
Store(\_SB.PCI0.ISA0.PIRA, Debug)
Store(VIPR(\_SB.PCI0.ISA0.PIRA), Debug)
                If (LNot (VPIR (\_SB.PCI0.ISA0.PIRA)))
                {
Store("Disabled", Debug)
                    Return (0x09)
                }
                Else
                {
Store("Enabled", Debug)
                    Return (0x0B)
                }
            }

            Name (_PRS, ResourceTemplate ()
            {
                IRQ (Level, ActiveLow, Shared)
                    {3,4,5,6,7,9,10,11,12,14,15}
            })
            Method (_DIS, 0, NotSerialized)
            {
Store("DIS", Debug)
Or(\_SB.PCI0.ISA0.PIRA, 0, Local0)
Store(Local0, Debug)
                Or (\_SB.PCI0.ISA0.PIRA, 0x80, \_SB.PCI0.ISA0.PIRA)
Or(\_SB.PCI0.ISA0.PIRA, 0, Local0)
Store(Local0, Debug)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Name (BUFA, ResourceTemplate ()
                {
                    IRQ (Level, ActiveLow, Shared)
                        {}
                })
Store("CRS", Debug)
                CreateWordField (BUFA, One, IRA1)
                And (\_SB.PCI0.ISA0.PIRA, 0x8F, Local0)
Store(Local0, Debug)
                If (VPIR (Local0))
                {
                    Store (ShiftLeft (One, Local0), IRA1)
Store("VALID", Debug)
                }

                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)
            {
Store("SRS", Debug)
Store(\_SB.PCI0.ISA0.PIRA, Local0)
Store(Local0, Debug)
                CreateWordField (Arg0, One, IRA2)
                FindSetRightBit (IRA2, Local0)
                And (\_SB.PCI0.ISA0.PIRA, 0x70, Local1)
                Or (Local1, Decrement (Local0), Local1)
                Store (Local1, \_SB.PCI0.ISA0.PIRA)
Store(Local1, Debug)
Or(\_SB.PCI0.ISA0.PIRA, 0, Local0)
Store(Local0, Debug)
            }
        }
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to