Workstation, HP XW9300
Bios Version 2.09a, latest from HP
Processors 2x opteron 885.
Memory 4Gb
Segmented PCI bus/PCI domains turned on in bios.

Having an issue with linux kernel > 2.6.26 not recognising devices
behind PCI bus 1 and 2.  From about kernel 2.6.24 to 2.6.26 everything
worked ok but from 2.6.27 the kernel ignores the secondary bus devices.
 Devices behind the secondary buses include the SCSI controller and
Video card.  I hope I've included the required info below.

dmesg extract from 2.6.26:-
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Transparent bridge - 0000:00:09.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.EXPA._PRT]
ACPI: PCI Root Bridge [PCI1] (0001:40)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI1.GLMA._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI1.GLMB._PRT]
ACPI: PCI Root Bridge [PCI2] (0002:80)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI2.EXPA._PRT]

dmesg extract from 2.6.28:-
ACPI: PCI Root Bridge [PCI0] (0000:00)
pci 0000:00:09.0: transparent bridge
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.EXPA._PRT]
ACPI: PCI Root Bridge [PCI1] (0001:40)
ACPI: PCI Root Bridge [PCI2] (0002:80)

As you can see the pci routing information is missing for the secondary
domains on the 2.6.28 output.  I've tried every linux kernel point
release from 2.6.27 onwards including mm kernels up to and including
2.6.29.  As I said above the last time it worked was 2.6.26.8.  Tried
all manner of kernel boot options with >= 2.6.27 eg, pci=nomsi,
nommconf, assign-busses etc.... to no avail.

Looking at the DSDT table from bios version 2.09a, included below, it
seems to be missing PRT information for the secondary buses.  This is,
as I understand from reading the ACPI docs, a required part of the ACPI
specification and would appear to me to be incorrect.  I believe the
acpi code in the kernel changed circa 2.6.27 to ignore bridges with no
PRT information which would seem to explain the problem.

I was looking for someone with more knowledge than I to give any
suggestions as to how to get around this.  I think it would be possible
to include a modified DSDT table in the kernel itself to override the
one from the BIOS but I wouldn't know where to begin adding the required
PRT information to the DSDT table.  I've attached the decoded dsdt table
 to this message.

I could, of course, be barking up the wrong tree.  If any other
information is required please let me know and I'll provide it.

Thanks in advance
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20060912
 *
 * Disassembly of dsdt.aml, Sat Mar 28 01:02:23 2009
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x000014AF (5295)
 *     Revision         0x01
 *     OEM ID           "HP    "
 *     OEM Table ID     "DSDT"
 *     OEM Revision     0x00000001 (1)
 *     Creator ID       "MSFT"
 *     Creator Revision 0x0100000E (16777230)
 */
DefinitionBlock ("dsdt.aml", "DSDT", 1, "HP    ", "DSDT", 0x00000001)
{
    External (PSEG)
    External (PMEN)
    External (P32N)

    Name (\PICM, Zero)
    Method (\_PIC, 1, NotSerialized)
    {
        Store (Arg0, \PICM)
    }

    Scope (\_SB)
    {
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_UID, 0x07)
            Name (_ADR, 0x00)
            Name (_SEG, 0x00)
            Name (_BBN, 0x00)
            Name (_PRT, Package (0x0B)
            {
                Package (0x04)
                {
                    0x0001FFFF, 
                    0x00, 
                    \_SB.LSMB, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x00, 
                    \_SB.LSB0, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0002FFFF, 
                    0x01, 
                    \_SB.LSB2, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x000AFFFF, 
                    0x00, 
                    \_SB.LMAC, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0004FFFF, 
                    0x00, 
                    \_SB.LACI, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0006FFFF, 
                    0x00, 
                    \_SB.LIDE, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0006FFFF, 
                    0x01, 
                    \_SB.LIDE, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0006FFFF, 
                    0x02, 
                    \_SB.LIDE, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0006FFFF, 
                    0x03, 
                    \_SB.LIDE, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0007FFFF, 
                    0x00, 
                    \_SB.LSA0, 
                    0x00
                }, 

                Package (0x04)
                {
                    0x0008FFFF, 
                    0x00, 
                    \_SB.LSA1, 
                    0x00
                }
            })
            Name (_PRW, Package (0x02)
            {
                0x00, 
                0x05
            })
            Method (_S1D, 0, NotSerialized)
            {
                Return (One)
            }

            Method (_S4D, 0, NotSerialized)
            {
                Return (0x03)
            }

            Method (_S5D, 0, NotSerialized)
            {
                Return (0x03)
            }

            Device (NDE0)
            {
                Name (_ADR, 0x00180000)
                OperationRegion (NDE0, PCI_Config, 0x00, 0xFF)
                Field (NDE0, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x94), 
                    L0PR,   8, 
                    L0SE,   8, 
                    L0SU,   8, 
                            Offset (0xB4), 
                    L1PR,   8, 
                    L1SE,   8, 
                    L1SU,   8, 
                            Offset (0xB8), 
                    L1TY,   8, 
                            Offset (0xD4), 
                    L2PR,   8, 
                    L2SE,   8, 
                    L2SU,   8
                }
            }

            Device (NDE1)
            {
                Name (_ADR, 0x00190000)
                OperationRegion (NDE1, PCI_Config, 0x00, 0xFF)
                Field (NDE1, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x94), 
                    L0PR,   8, 
                    L0SE,   8, 
                    L0SU,   8
                }
            }

            Device (MEMC)
            {
                Name (_ADR, 0x00180001)
                OperationRegion (MEMC, PCI_Config, 0x00, 0xFF)
                Field (MEMC, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x80), 
                    MMB1,   32, 
                    MML1,   32, 
                    MMB2,   32, 
                    MML2,   32, 
                    MMB3,   32, 
                    MML3,   32, 
                    MMB4,   32, 
                    MML4,   32, 
                    MMB5,   32, 
                    MML5,   32, 
                    MMB6,   32, 
                    MML6,   32, 
                    MMB7,   32, 
                    MML7,   32, 
                    MMB8,   32, 
                    MML8,   32, 
                    IOB1,   32, 
                    IOL1,   32, 
                    IOB2,   32, 
                    IOL2,   32, 
                    IOB3,   32, 
                    IOL3,   32, 
                    IOB4,   32, 
                    IOL4,   32
                }
            }

            Device (HUB)
            {
                Name (_ADR, 0x00090000)
                Name (_PRW, Package (0x02)
                {
                    0x00, 
                    0x04
                })
                Method (_S1D, 0, NotSerialized)
                {
                    Return (One)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x03)
                }

                Method (_S5D, 0, NotSerialized)
                {
                    Return (0x03)
                }

                Device (SLO2)
                {
                    Name (_ADR, 0x00040000)
                    Name (_SUN, 0x02)
                    Name (_PRW, Package (0x02)
                    {
                        0x10, 
                        0x04
                    })
                    Method (_PSW, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x00))
                        {
                            Store (Zero, P32N)
                        }
                        Else
                        {
                            Store (One, PMEN)
                            Store (One, P32N)
                        }
                    }
                }
            }

            Device (EXPA)
            {
                Name (_ADR, 0x000E0000)
                Method (_S1D, 0, NotSerialized)
                {
                    Return (One)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x03)
                }

                Method (_S5D, 0, NotSerialized)
                {
                    Return (0x03)
                }
            }

            Device (LPC)
            {
                Name (_ADR, 0x00010000)
                OperationRegion (PIRQ, PCI_Config, 0x7C, 0x0C)
                Field (PIRQ, ByteAcc, NoLock, Preserve)
                {
                    PIRA,   4, 
                    PIRB,   4, 
                    PIRC,   4, 
                    PIRD,   4, 
                        ,   4, 
                    SSA1,   4, 
                    SSA0,   4, 
                            Offset (0x04), 
                    PSCI,   4, 
                    PTCO,   4, 
                    PSMB,   4, 
                    PSB2,   4, 
                        ,   4, 
                            Offset (0x07), 
                    PSA1,   4, 
                    PSA0,   4, 
                    PSB0,   4, 
                            Offset (0x09), 
                    PMAC,   4, 
                            Offset (0x0A), 
                    PACI,   4, 
                    PMCI,   4, 
                    PPID,   4, 
                    PSID,   4
                }
            }
        }

        Device (PCI1)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_UID, 0x08)
            Name (_ADR, 0x00)
            Method (_SEG, 0, NotSerialized)
            {
                If (LEqual (PSEG, 0x00))
                {
                    Return (0x01)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_BBN, 0, NotSerialized)
            {
                Return (\_SB.PCI0.NDE0.L2SE)
            }
        }

        Device (PCI2)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_UID, 0x09)
            Name (_ADR, 0x00)
            Method (_SEG, 0, NotSerialized)
            {
                If (LEqual (PSEG, 0x00))
                {
                    Return (0x02)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_BBN, 0, NotSerialized)
            {
                Store (\_SB.PCI0.NDE0.L1TY, Local0)
                And (Local0, 0x07, Local1)
                If (LEqual (Local1, 0x07))
                {
                    Return (\_SB.PCI0.NDE0.L1SE)
                }

                And (Local0, 0x01, Local1)
                If (LEqual (Local1, 0x01))
                {
                    Return (\_SB.PCI0.NDE1.L0SE)
                }
                Else
                {
                    Return (0xFF)
                }
            }

            Device (LPC)
            {
                Name (_ADR, 0x00010000)
                OperationRegion (PIRQ, PCI_Config, 0x7C, 0x0C)
                Field (PIRQ, ByteAcc, NoLock, Preserve)
                {
                    PIRW,   4, 
                    PIRX,   4, 
                    PIRY,   4, 
                    PIRZ,   4
                }
            }

            Device (EXPA)
            {
                Name (_ADR, 0x000E0000)
                Method (_S1D, 0, NotSerialized)
                {
                    Return (One)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x03)
                }

                Method (_S5D, 0, NotSerialized)
                {
                    Return (0x03)
                }
            }
        }

        Method (CRS, 2, Serialized)
        {
            Name (CRES, ResourceTemplate ()
            {
                Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, _Y00)
                {
                    0x00000007,
                }
            })
            CreateWordField (CRES, \_SB.CRS._Y00._INT, IRQW)
            Store (Arg0, IRQW)
            CreateField (CRES, \_SB.CRS._Y00._LL, 0x01, IRQA)
            If (LNotEqual (\PICM, Zero))
            {
                Store (Zero, IRQA)
            }

            If (LEqual (Arg1, 0x04))
            {
                If (LEqual (Arg0, 0x08))
                {
                    Store (0x10, IRQW)
                }
                Else
                {
                    If (LEqual (Arg0, 0x01))
                    {
                        Store (0x11, IRQW)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x02))
                        {
                            Store (0x12, IRQW)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x0D))
                            {
                                Store (0x13, IRQW)
                            }
                        }
                    }
                }
            }
            Else
            {
                If (LEqual (Arg0, 0x08))
                {
                    Store (0x14, IRQW)
                }
                Else
                {
                    If (LEqual (Arg0, 0x0D))
                    {
                        Store (0x15, IRQW)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x02))
                        {
                            Store (0x16, IRQW)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x01))
                            {
                                Store (0x17, IRQW)
                            }
                        }
                    }
                }
            }

            Return (CRES)
        }

        Method (PRS, 1, Serialized)
        {
            If (LEqual (\PICM, Zero))
            {
                Name (PRSP, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
                    {
                        0x00000003,
                        0x00000004,
                        0x00000005,
                        0x00000006,
                        0x00000007,
                        0x0000000A,
                        0x0000000B,
                        0x0000000C,
                    }
                })
                Return (PRSP)
            }
            Else
            {
                If (LEqual (Arg0, 0x04))
                {
                    Name (PRS4, ResourceTemplate ()
                    {
                        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, 
,, )
                        {
                            0x00000010,
                            0x00000011,
                            0x00000012,
                            0x00000013,
                        }
                    })
                    Return (PRS4)
                }
                Else
                {
                    Name (PRS3, ResourceTemplate ()
                    {
                        Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, 
,, )
                        {
                            0x00000014,
                            0x00000015,
                            0x00000016,
                            0x00000017,
                        }
                    })
                    Return (PRS3)
                }
            }
        }

        Name (IITX, Buffer (0x08)
        {
            /* 0000 */    0x08, 0x01, 0x02, 0x0D, 0x08, 0x0D, 0x02, 0x01
        })
        Method (SRS, 1, Serialized)
        {
            CreateWordField (Arg0, 0x05, IRQW)
            Store (IRQW, Local0)
            If (LNotEqual (\PICM, Zero))
            {
                Subtract (Local0, 0x10, Local0)
                CreateByteField (\_SB.IITX, Local0, ITXP)
                Store (ITXP, Local0)
            }

            Return (Local0)
        }

        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x01)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PIRA)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PIRA)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x04))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PIRA, 0x04))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PIRA)
            }
        }

        Device (LNKB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x02)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PIRB)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PIRB)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x04))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PIRB, 0x04))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PIRB)
            }
        }

        Device (LNKC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x03)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PIRC)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PIRC)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x04))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PIRC, 0x04))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PIRC)
            }
        }

        Device (LNKD)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x04)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PIRD)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PIRD)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x04))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PIRD, 0x04))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PIRD)
            }
        }

        Device (LNKW)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x05)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI2.LPC.PIRW)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI2.LPC.PIRW)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
                    {
                        0x00000030,
                    }
                })
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
                    {
                        0x00000030,
                    }
                })
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (0x08, \_SB.PCI2.LPC.PIRW)
            }
        }

        Device (LNKX)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x06)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI2.LPC.PIRX)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI2.LPC.PIRX)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
                    {
                        0x00000031,
                    }
                })
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
                    {
                        0x00000031,
                    }
                })
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (0x01, \_SB.PCI2.LPC.PIRX)
            }
        }

        Device (LNKY)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x07)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI2.LPC.PIRY)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI2.LPC.PIRY)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
                    {
                        0x00000032,
                    }
                })
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
                    {
                        0x00000032,
                    }
                })
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (0x02, \_SB.PCI2.LPC.PIRY)
            }
        }

        Device (LNKZ)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x08)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI2.LPC.PIRZ)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI2.LPC.PIRZ)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
                    {
                        0x00000033,
                    }
                })
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
                    {
                        0x00000033,
                    }
                })
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (0x0D, \_SB.PCI2.LPC.PIRZ)
            }
        }

        Device (LSMB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x09)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PSMB)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PSMB)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x03))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PSMB, 0x03))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PSMB)
            }
        }

        Device (LSB0)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0A)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PSB0)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PSB0)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x03))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PSB0, 0x03))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PSB0)
            }
        }

        Device (LSB2)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0B)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PSB2)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PSB2)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x03))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PSB2, 0x03))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PSB2)
            }
        }

        Device (LMAC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0C)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PMAC)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PMAC)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x03))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PMAC, 0x03))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PMAC)
            }
        }

        Device (LACI)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0D)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PACI)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PACI)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x03))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PACI, 0x03))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PACI)
            }
        }

        Device (LMCI)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0E)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PMCI)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PMCI)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x03))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PMCI, 0x03))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PMCI)
            }
        }

        Device (LIDE)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0F)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PPID)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PPID)
                Store (Zero, \_SB.PCI0.LPC.PSID)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x03))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PPID, 0x03))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PPID)
                Store (\_SB.PCI0.LPC.PPID, \_SB.PCI0.LPC.PSID)
            }
        }

        Device (LSA0)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x10)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PSA0)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PSA0)
                Store (Zero, \_SB.PCI0.LPC.SSA0)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x03))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PSA0, 0x03))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PSA0)
                Store (\_SB.PCI0.LPC.PSA0, \_SB.PCI0.LPC.SSA0)
            }
        }

        Device (LSA1)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x11)
            Method (_STA, 0, NotSerialized)
            {
                If (\_SB.PCI0.LPC.PSA1)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, \_SB.PCI0.LPC.PSA1)
                Store (Zero, \_SB.PCI0.LPC.SSA1)
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (\_SB.PRS (0x03))
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (\_SB.CRS (\_SB.PCI0.LPC.PSA1, 0x03))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (\_SB.SRS (Arg0), \_SB.PCI0.LPC.PSA1)
                Store (\_SB.PCI0.LPC.PSA1, \_SB.PCI0.LPC.SSA1)
            }
        }

        Scope (\_SB.PCI0)
        {
            Device (USB0)
            {
                Name (_ADR, 0x00020000)
                Method (_S1D, 0, NotSerialized)
                {
                    Return (One)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x03)
                }

                Method (_S5D, 0, NotSerialized)
                {
                    Return (0x03)
                }
            }

            Device (USB2)
            {
                Name (_ADR, 0x00020001)
                Method (_S1D, 0, NotSerialized)
                {
                    Return (One)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x03)
                }

                Method (_S5D, 0, NotSerialized)
                {
                    Return (0x03)
                }
            }

            Device (MAC0)
            {
                Name (_ADR, 0x000A0000)
                Name (_PRW, Package (0x02)
                {
                    0x0B, 
                    0x05
                })
                Method (_S1D, 0, NotSerialized)
                {
                    Return (One)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x03)
                }

                Method (_S5D, 0, NotSerialized)
                {
                    Return (0x03)
                }
            }

            Device (IDE)
            {
                Name (_ADR, 0x00060000)
                Method (PBLK, 1, NotSerialized)
                {
                    Return (Add (Arg0, 0x01F0))
                }

                Method (SBLK, 1, NotSerialized)
                {
                    Return (Add (Arg0, 0x0170))
                }

                Method (PCNL, 0, NotSerialized)
                {
                    Return (0x03F6)
                }

                Method (SCNL, 0, NotSerialized)
                {
                    Return (0x0376)
                }
            }
        }
    }
}

_______________________________________________
Discuss mailing list
[email protected]
http://mail.lesswatts.org/mailman/listinfo/discuss

Reply via email to