Re: 2.6.24: Serial disabled in BIOS but serial modules still loaded (probably PnP related)

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Yinghai Lu <yhlu.kernel@...>
Cc: <linux-serial@...>, <linux-kernel@...>, <linux-acpi@...>
Date: Sunday, November 25, 2007 - 12:50 pm

--Boundary-01=_+eaSHugZpVwV/8S
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On Sunday 25 November 2007, Yinghai Lu wrote:
have)
vice
 this
 to
 COM is alive.
 sharing enabled

DSDT attached.

To illustrate the problem. Here is what I get booting exactly the same kern=
el
with the only difference that COM is enabled in BIOS:

[  147.721790] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sha=
ring enabled
[  147.722658] serial8250: ttyS0 at I/O 0x3f8 (irq =3D 4) is a 16550A
[  147.813557] 00:09: ttyS0 at I/O 0x3f8 (irq =3D 4) is a 16550A

When COM is disabled I get

[  235.865683] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sha=
ring enabled
[  236.221995] serial 00:09: activated

No ttyS0 - and it is correct.

I'd expect that either serial driver should not be loaded at all in this ca=
se.

--Boundary-01=_+eaSHugZpVwV/8S
Content-Type: text/x-objcsrc;
  charset="iso-8859-1";
  name="dsdt.dsl"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline;
	filename="dsdt.dsl"

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20051216
 *
 * Disassembly of dsdt, Mon Mar  6 22:51:55 2006
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x000068DA (26842)
 *     Revision         0x01
 *     OEM ID           "TOSHIB"
 *     OEM Table ID     "4000    "
 *     OEM Revision     0x20020417 (537003031)
 *     Creator ID       "MSFT"
 *     Creator Revision 0x0100000A (16777226)
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "TOSHIB", "4000    ", 0x20020417)
{
    Name (\_S0, Package (0x04)
    {
        0x00,=20
        0x00,=20
        0x00,=20
        0x00
    })
    Name (\_S3, Package (0x04)
    {
        0x07,=20
        0x00,=20
        0x00,=20
        0x00
    })
    Name (\_S4, Package (0x04)
    {
        0x07,=20
        0x00,=20
        0x00,=20
        0x00
    })
    Name (\_S5, Package (0x04)
    {
        0x07,=20
        0x00,=20
        0x00,=20
        0x00
    })
    Scope (\_PR)
    {
        Processor (CPU0, 0x01, 0x0000EE10, 0x06)
        {
            Name (_PCT, Package (0x02)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO,=20
                        0x08,               // Register Bit Width
                        0x00,               // Register Bit Offset
                        0x00000000000000B1, // Register Address
                        )
                },=20

                ResourceTemplate ()
                {
                    Register (SystemIO,=20
                        0x10,               // Register Bit Width
                        0x00,               // Register Bit Offset
                        0x000000000000EF40, // Register Address
                        )
                }
            })
            Method (_PSS, 0, NotSerialized)
            {
                If (\_SB.MEM.PSS1)
                {
                    Name (PSSD, Package (0x02)
                    {
                        Package (0x00) {},=20
                        Package (0x00) {}
                    })
                    Name (PSD0, Package (0x06)
                    {
                        0x03E8,=20
                        0x55F0,=20
                        0xFA,=20
                        0xFA,=20
                        0x90,=20
                        0x00
                    })
                    Name (PSD1, Package (0x06)
                    {
                        0x02BC,=20
                        0x2648,=20
                        0xFA,=20
                        0xFA,=20
                        0x91,=20
                        0x01
                    })
                    Store (\_SB.MEM.PSS0, Index (PSD0, 0x00))
                    Store (\_SB.MEM.PSS1, Index (PSD1, 0x00))
                    Store (PSD0, Index (PSSD, 0x00))
                    Store (PSD1, Index (PSSD, 0x01))
                    Return (PSSD)
                }
                Else
                {
                    Name (PSSC, Package (0x01)
                    {
                        Package (0x00) {}
                    })
                    Name (PSC0, Package (0x06)
                    {
                        0x03E8,=20
                        0x55F0,=20
                        0xFA,=20
                        0xFA,=20
                        0x90,=20
                        0x00
                    })
                    Store (\_SB.MEM.PSS0, Index (PSC0, 0x00))
                    Store (PSC0, Index (PSSC, 0x00))
                    Return (PSSC)
                }
            }

            Method (_PPC, 0, NotSerialized)
            {
                SMBR (0xFC00, 0x3D, 0x00, 0x00, 0xB2)
                And (\_SB.MEM.OECX, 0x03, Local0)
                If (LEqual (Local0, 0x00))
                {
                    If (\_SB.MEM.HPSU)
                    {
                        If (\_SB.MEM.ACST)
                        {
                            Return (\_SB.MEM.PULA)
                        }
                        Else
                        {
                            Return (\_SB.MEM.PULD)
                        }
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }
                Else
                {
                    If (LEqual (Local0, 0x01))
                    {
                        Return (0x00)
                    }
                    Else
                    {
                        Return (0x01)
                    }
                }
            }
        }
    }

    Scope (\_SB)
    {
        Device (MEM)
        {
            Name (_HID, EisaId ("PNP0C01"))
            Name (_STA, 0x0F)
            Method (_CRS, 0, NotSerialized)
            {
                Return (CRS (0x01))
            }

            OperationRegion (SRAM, SystemMemory, 0x000EE800, 0x1800)
            Field (SRAM, AnyAcc, NoLock, Preserve)
            {
                PAR1,   16,=20
                PAR2,   16,=20
                PAR3,   16,=20
                PAR4,   16,=20
                PAR5,   16,=20
                PAR6,   16
            }

            Field (SRAM, AnyAcc, NoLock, Preserve)
            {
                Offset (0x02),=20
                RDID,   32,=20
                RDSN,   32,=20
                CAPB,   16
            }

            Field (SRAM, AnyAcc, NoLock, Preserve)
            {
                IEAX,   32,=20
                IEBX,   32,=20
                IECX,   32,=20
                IEDX,   32,=20
                IESI,   32,=20
                IEDI,   32,=20
                IEBP,   32,=20
                Offset (0x20),=20
                OEAX,   32,=20
                OEBX,   32,=20
                OECX,   32,=20
                OEDX,   32,=20
                OESI,   32,=20
                OEDI,   32,=20
                OEBP,   32,=20
                Offset (0xFF),=20
                ACST,   1,=20
                BES1,   1,=20
                BES2,   1,=20
                Offset (0x100),=20
                BMN1,   104,=20
                BSN1,   88,=20
                BTP1,   72,=20
                BPU1,   32,=20
                BDC1,   32,=20
                BLF1,   32,=20
                BTC1,   32,=20
                BDV1,   32,=20
                BST1,   32,=20
                BPR1,   32,=20
                BRC1,   32,=20
                BPV1,   32,=20
                Offset (0x149),=20
                BCW1,   32,=20
                BCL1,   32,=20
                BG11,   32,=20
                BG21,   32,=20
                BOI1,   8,=20
                BRF1,   1,=20
                Offset (0x200),=20
                BMN2,   104,=20
                BSN2,   88,=20
                BTP2,   72,=20
                BPU2,   32,=20
                BDC2,   32,=20
                BLF2,   32,=20
                BTC2,   32,=20
                BDV2,   32,=20
                BST2,   32,=20
                BPR2,   32,=20
                BRC2,   32,=20
                BPV2,   32,=20
                Offset (0x249),=20
                BCW2,   32,=20
                BCL2,   32,=20
                BG12,   32,=20
                BG22,   32,=20
                BOI2,   32,=20
                Offset (0x300),=20
                AC01,   16,=20
                AC11,   16,=20
                PSV1,   16,=20
                CRT1,   16,=20
                TMP1,   16,=20
                AST1,   16,=20
                AC21,   16,=20
                AC31,   16,=20
                AC02,   16,=20
                AC12,   16,=20
                PSV2,   16,=20
                CRT2,   16,=20
                TMP2,   16,=20
                AST2,   16,=20
                AC22,   16,=20
                AC32,   16,=20
                AC03,   16,=20
                AC13,   16,=20
                PSV3,   16,=20
                CRT3,   16,=20
                TMP3,   16,=20
                AST3,   16,=20
                AC23,   16,=20
                AC33,   16,=20
                Offset (0x340),=20
                TMPF,   16,=20
                Offset (0x3F0),=20
                FANH,   1,=20
                FANL,   7,=20
                TF11,   1,=20
                TF21,   1,=20
                TF31,   1,=20
                    ,   1,=20
                TF10,   1,=20
                TF20,   1,=20
                TF30,   1,=20
                Offset (0x3F2),=20
                TP11,   1,=20
                TP21,   1,=20
                TP31,   1,=20
                Offset (0x400),=20
                GP50,   1,=20
                GP51,   1,=20
                GP52,   1,=20
                GP53,   1,=20
                GP54,   1,=20
                Offset (0x401),=20
                GP60,   1,=20
                GP61,   1,=20
                GP62,   1,=20
                GP63,   1,=20
                GP64,   1,=20
                GP65,   1,=20
                GP66,   1,=20
                Offset (0x402),=20
                GP70,   1,=20
                GP71,   1,=20
                GP72,   1,=20
                GP73,   1,=20
                GP74,   1,=20
                GP75,   1,=20
                GP76,   1,=20
                GP77,   1,=20
                WED0,   1,=20
                WED1,   1,=20
                WED2,   1,=20
                WED3,   1,=20
                WED4,   1,=20
                Offset (0x404),=20
                SBL0,   1,=20
                SBL1,   1,=20
                SBL2,   1,=20
                SBL3,   1,=20
                Offset (0x405),=20
                LIDS,   1,=20
                VALF,   1,=20
                DCST,   1,=20
                DOS2,   1,=20
                DCKI,   1,=20
                DCKF,   1,=20
                BT1F,   1,=20
                BT2F,   1,=20
                NXLA,   1,=20
                NXCA,   1,=20
                NXTA,   1,=20
                NXDA,   1,=20
                CTLA,   1,=20
                CTCA,   1,=20
                CTTA,   1,=20
                CTDA,   1,=20
                LANA,   1,=20
                Offset (0x483),=20
                GCVS,   8,=20
                Offset (0x4C0),=20
                PSS0,   16,=20
                PSS1,   16,=20
                Offset (0x4D0),=20
                SYU0,   1,=20
                SYU1,   1,=20
                SYU2,   1,=20
                SYU3,   1,=20
                SYU4,   1,=20
                SYU5,   1,=20
                SYU6,   1,=20
                SYU7,   1,=20
                Offset (0x500),=20
                HKCD,   8,=20
                Offset (0x502),=20
                DLID,   32,=20
                DSRN,   32,=20
                Offset (0x50E),=20
                BDID,   32,=20
                DSPW,   1,=20
                VGAF,   1,=20
                VWE0,   1,=20
                VWE1,   1,=20
                PPSC,   1,=20
                SPSC,   1,=20
                EWLD,   1,=20
                EPWS,   1,=20
                LCDS,   4,=20
                CRTS,   4,=20
                VWE2,   1,=20
                WEF0,   1,=20
                WEF1,   1,=20
                WED5,   1,=20
                IEWE,   1,=20
                Offset (0x515),=20
                BTMD,   1,=20
                WSF0,   1,=20
                WSF1,   1,=20
                GP83,   1,=20
                WUIE,   1,=20
                    ,   1,=20
                BPFE,   1,=20
                BWUE,   1,=20
                DVIS,   4,=20
                Offset (0x517),=20
                HTM0,   1,=20
                HTM1,   1,=20
                Offset (0x518),=20
                PSND,   1,=20
                PMDM,   1,=20
                Offset (0x520),=20
                VGAR,   1,=20
                KBCR,   1,=20
                ID0R,   1,=20
                ID1R,   1,=20
                ID2R,   1,=20
                ID3R,   1,=20
                IDAR,   1,=20
                ACLR,   1,=20
                BTRE,   1,=20
                Offset (0x701),=20
                HAPS,   2,=20
                HHSW,   2,=20
                HPSU,   2,=20
                HRCU,   2,=20
                HGSU,   2,=20
                HEBI,   2,=20
                HTMD,   2,=20
                Offset (0x708),=20
                TNVS,   1,=20
                OSPC,   1,=20
                ACBK,   1,=20
                Offset (0x70A),=20
                PULD,   8,=20
                PULA,   8,=20
                BCLD,   8,=20
                BCLA,   8,=20
                Offset (0x710),=20
                OSID,   8,=20
                Offset (0x720),=20
                MSSI,   16,=20
                MSSS,   8,=20
                MSSR,   8,=20
                MSP0,   8,=20
                MSC0,   8,=20
                MSP1,   8,=20
                MSC1,   8,=20
                Offset (0x740),=20
                Offset (0x800),=20
                PRES,   32768
            }

            Field (SRAM, AnyAcc, NoLock, Preserve)
            {
                Offset (0x406),=20
                NXDD,   4,=20
                CTDD,   4
            }

            Field (SRAM, AnyAcc, NoLock, Preserve)
            {
                Offset (0x800),=20
                Offset (0x808),=20
                Offset (0x812),=20
                Offset (0x814),=20
                Offset (0x818),=20
                FSDP,   8,=20
                Offset (0x823),=20
                Offset (0x826),=20
                Offset (0x836),=20
                Offset (0x87E),=20
                Offset (0x87F),=20
                EDCK,   8
            }
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, 0x00)
            Name (_CRS, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDec=
ode,
                    0x0000,             // Address Space Granularity
                    0x0000,             // Address Range Minimum
                    0x00FF,             // Address Range Maximum
                    0x0000,             // Address Translation Offset
                    0x0100,             // Address Length
                    ,,)
                IO (Decode16,
                    0x0CF8,             // Address Range Minimum
                    0x0CF8,             // Address Range Maximum
                    0x01,               // Address Alignment
                    0x08,               // Address Length
                    )
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, En=
tireRange,
                    0x0000,             // Address Space Granularity
                    0x0000,             // Address Range Minimum
                    0x0CF7,             // Address Range Maximum
                    0x0000,             // Address Translation Offset
                    0x0CF8,             // Address Length
                    ,,, TypeStatic)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, En=
tireRange,
                    0x0000,             // Address Space Granularity
                    0x0D00,             // Address Range Minimum
                    0xFFFF,             // Address Range Maximum
                    0x0000,             // Address Translation Offset
                    0xF300,             // Address Length
                    ,,, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixe=
d, NonCacheable, ReadWrite,
                    0x00000000,         // Address Space Granularity
                    0x000A0000,         // Address Range Minimum
                    0x000BFFFF,         // Address Range Maximum
                    0x00000000,         // Address Translation Offset
                    0x00020000,         // Address Length
                    ,,, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixe=
d, NonCacheable, ReadWrite,
                    0x00000000,         // Address Space Granularity
                    0x000D8000,         // Address Range Minimum
                    0x000DFFFF,         // Address Range Maximum
                    0x00000000,         // Address Translation Offset
                    0x00008000,         // Address Length
                    ,,, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixe=
d, NonCacheable, ReadWrite,
                    0x00000000,         // Address Space Granularity
                    0x40100000,         // Address Range Minimum
                    0xFEE9FFFF,         // Address Range Maximum
                    0x00000000,         // Address Translation Offset
                    0xBEEA0000,         // Address Length
                    ,,, AddressRangeMemory, TypeStatic)
            })
            Name (_PRT, Package (0x0A)
            {
                Package (0x04)
                {
                    0x0014FFFF,=20
                    0x00,=20
                    \_SB.PCI0.FNC0.LNKD,=20
                    0x00
                },=20

                Package (0x04)
                {
                    0x0011FFFF,=20
                    0x00,=20
                    \_SB.PCI0.FNC0.LNKA,=20
                    0x00
                },=20

                Package (0x04)
                {
                    0x0011FFFF,=20
                    0x01,=20
                    \_SB.PCI0.FNC0.LNKB,=20
                    0x00
                },=20

                Package (0x04)
                {
                    0x000AFFFF,=20
                    0x00,=20
                    \_SB.PCI0.FNC0.LNKD,=20
                    0x00
                },=20

                Package (0x04)
                {
                    0x0010FFFF,=20
                    0x00,=20
                    \_SB.PCI0.FNC0.LNKC,=20
                    0x00
                },=20

                Package (0x04)
                {
                    0x0010FFFF,=20
                    0x01,=20
                    \_SB.PCI0.FNC0.LNKD,=20
                    0x00
                },=20

                Package (0x04)
                {
                    0x000CFFFF,=20
                    0x00,=20
                    \_SB.PCI0.FNC0.LNKD,=20
                    0x00
                },=20

                Package (0x04)
                {
                    0x0006FFFF,=20
                    0x00,=20
                    \_SB.PCI0.FNC0.LNKH,=20
                    0x00
                },=20

                Package (0x04)
                {
                    0x0012FFFF,=20
                    0x00,=20
                    \_SB.PCI0.FNC0.LNKA,=20
                    0x00
                },=20

                Package (0x04)
                {
                    0x0002FFFF,=20
                    0x00,=20
                    \_SB.PCI0.FNC0.LNKG,=20
                    0x00
                }
            })
            Device (FNC0)
            {
                Name (_ADR, 0x00070000)
                OperationRegion (M153, PCI_Config, 0x00, 0xFF)
                Field (M153, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x44),=20
                    IRQJ,   4,=20
                        ,   3,=20
                    RSTC,   1,=20
                    Offset (0x48),=20
                    IRQA,   4,=20
                    IRQB,   4,=20
                    IRQC,   4,=20
                    IRQD,   4,=20
                    IRQE,   4,=20
                    IRQF,   4,=20
                    IRQI,   4,=20
                    IRQH,   4,=20
                    Offset (0x52),=20
                        ,   13,=20
                    CUS1,   1,=20
                    Offset (0x74),=20
                    IRQG,   4,=20
                    Offset (0x75),=20
                    IRQK,   4,=20
                    Offset (0x77),=20
                        ,   3,=20
                    CSND,   1,=20
                        ,   1,=20
                    CMDM,   1
                }

                Device (LNKA)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x01)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STAL (\_SB.PCI0.FNC0.IRQA))
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared)
                            {3,4,5,6,7,10,11}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRSL (\_SB.PCI0.FNC0.IRQA))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, \_SB.PCI0.FNC0.IRQA)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        Name (IRQT, Package (0x10)
                        {
                            0x00,=20
                            0x08,=20
                            0x00,=20
                            0x02,=20
                            0x04,=20
                            0x05,=20
                            0x07,=20
                            0x06,=20
                            0x00,=20
                            0x01,=20
                            0x03,=20
                            0x09,=20
                            0x0B,=20
                            0x00,=20
                            0x0D,=20
                            0x0F
                        })
                        CreateWordField (Arg0, 0x01, IRQX)
                        FindSetRightBit (IRQX, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (IRQT, Local0)), Local1)
                        Store (Local1, \_SB.PCI0.FNC0.IRQA)
                    }
                }

                Device (LNKB)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x02)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STAL (\_SB.PCI0.FNC0.IRQB))
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared)
                            {3,4,5,6,7,10,11}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRSL (\_SB.PCI0.FNC0.IRQB))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, \_SB.PCI0.FNC0.IRQB)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        Name (IRQT, Package (0x10)
                        {
                            0x00,=20
                            0x08,=20
                            0x00,=20
                            0x02,=20
                            0x04,=20
                            0x05,=20
                            0x07,=20
                            0x06,=20
                            0x00,=20
                            0x01,=20
                            0x03,=20
                            0x09,=20
                            0x0B,=20
                            0x00,=20
                            0x0D,=20
                            0x0F
                        })
                        CreateWordField (Arg0, 0x01, IRQX)
                        FindSetRightBit (IRQX, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (IRQT, Local0)), Local1)
                        Store (Local1, \_SB.PCI0.FNC0.IRQB)
                    }
                }

                Device (LNKC)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x03)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STAL (\_SB.PCI0.FNC0.IRQC))
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared)
                            {3,4,5,6,7,10,11}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRSL (\_SB.PCI0.FNC0.IRQC))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, \_SB.PCI0.FNC0.IRQC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        Name (IRQT, Package (0x10)
                        {
                            0x00,=20
                            0x08,=20
                            0x00,=20
                            0x02,=20
                            0x04,=20
                            0x05,=20
                            0x07,=20
                            0x06,=20
                            0x00,=20
                            0x01,=20
                            0x03,=20
                            0x09,=20
                            0x0B,=20
                            0x00,=20
                            0x0D,=20
                            0x0F
                        })
                        CreateWordField (Arg0, 0x01, IRQX)
                        FindSetRightBit (IRQX, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (IRQT, Local0)), Local1)
                        Store (Local1, \_SB.PCI0.FNC0.IRQC)
                    }
                }

                Device (LNKD)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x04)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STAL (\_SB.PCI0.FNC0.IRQD))
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared)
                            {3,4,5,6,7,10,11}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRSL (\_SB.PCI0.FNC0.IRQD))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, \_SB.PCI0.FNC0.IRQD)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        Name (IRQT, Package (0x10)
                        {
                            0x00,=20
                            0x08,=20
                            0x00,=20
                            0x02,=20
                            0x04,=20
                            0x05,=20
                            0x07,=20
                            0x06,=20
                            0x00,=20
                            0x01,=20
                            0x03,=20
                            0x09,=20
                            0x0B,=20
                            0x00,=20
                            0x0D,=20
                            0x0F
                        })
                        CreateWordField (Arg0, 0x01, IRQX)
                        FindSetRightBit (IRQX, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (IRQT, Local0)), Local1)
                        Store (Local1, \_SB.PCI0.FNC0.IRQD)
                    }
                }

                Device (LNKG)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x07)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STAL (\_SB.PCI0.FNC0.IRQG))
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared)
                            {3,4,5,6,7,10,11}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRSL (\_SB.PCI0.FNC0.IRQG))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, \_SB.PCI0.FNC0.IRQG)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        Name (IRQT, Package (0x10)
                        {
                            0x00,=20
                            0x08,=20
                            0x00,=20
                            0x02,=20
                            0x04,=20
                            0x05,=20
                            0x07,=20
                            0x06,=20
                            0x00,=20
                            0x01,=20
                            0x03,=20
                            0x09,=20
                            0x0B,=20
                            0x00,=20
                            0x0D,=20
                            0x0F
                        })
                        CreateWordField (Arg0, 0x01, IRQX)
                        FindSetRightBit (IRQX, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (IRQT, Local0)), Local1)
                        Store (Local1, \_SB.PCI0.FNC0.IRQG)
                    }
                }

                Device (LNKH)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x08)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STAL (\_SB.PCI0.FNC0.IRQH))
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared)
                            {3,4,5,6,7,10,11}
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRSL (\_SB.PCI0.FNC0.IRQH))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        Store (0x00, \_SB.PCI0.FNC0.IRQH)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        Name (IRQT, Package (0x10)
                        {
                            0x00,=20
                            0x08,=20
                            0x00,=20
                            0x02,=20
                            0x04,=20
                            0x05,=20
                            0x07,=20
                            0x06,=20
                            0x00,=20
                            0x01,=20
                            0x03,=20
                            0x09,=20
                            0x0B,=20
                            0x00,=20
                            0x0D,=20
                            0x0F
                        })
                        CreateWordField (Arg0, 0x01, IRQX)
                        FindSetRightBit (IRQX, Local0)
                        Decrement (Local0)
                        Store (DerefOf (Index (IRQT, Local0)), Local1)
                        Store (Local1, \_SB.PCI0.FNC0.IRQH)
                    }
                }

                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_STA, 0x0F)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0000,             // Address Range Minimum
                            0x0000,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x10,               // Address Length
                            )
                        IO (Decode16,
                            0x0081,             // Address Range Minimum
                            0x0081,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x03,               // Address Length
                            )
                        IO (Decode16,
                            0x0087,             // Address Range Minimum
                            0x0087,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IO (Decode16,
                            0x0089,             // Address Range Minimum
                            0x0089,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x03,               // Address Length
                            )
                        IO (Decode16,
                            0x008F,             // Address Range Minimum
                            0x008F,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IO (Decode16,
                            0x00C0,             // Address Range Minimum
                            0x00C0,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x20,               // Address Length
                            )
                        DMA (Compatibility, NotBusMaster, Transfer8)
                            {4}
                    })
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_STA, 0x0F)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0020,             // Address Range Minimum
                            0x0020,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x02,               // Address Length
                            )
                        IO (Decode16,
                            0x00A0,             // Address Range Minimum
                            0x00A0,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x02,               // Address Length
                            )
                        IRQ (Edge, ActiveHigh, Exclusive)
                            {2}
                    })
                }

                Device (PIT)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_STA, 0x0F)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Address Range Minimum
                            0x0040,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x04,               // Address Length
                            )
                        IRQ (Edge, ActiveHigh, Exclusive)
                            {0}
                    })
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_STA, 0x0F)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0061,             // Address Range Minimum
                            0x0061,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                    })
                }

                Device (NDP)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_STA, 0x0F)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x00F0,             // Address Range Minimum
                            0x00F0,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x10,               // Address Length
                            )
                        IRQ (Edge, ActiveHigh, Shared)
                            {13}
                    })
                }

                Device (KBC)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Method (_STA, 0, NotSerialized)
                    {
                        While (LEqual (\_SB.MEM.KBCR, 0x00)) {}
                        Return (0x0F)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0060,             // Address Range Minimum
                            0x0060,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IO (Decode16,
                            0x0064,             // Address Range Minimum
                            0x0064,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IRQ (Edge, ActiveHigh, Exclusive)
                            {1}
                    })
                }

                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F13"))
                    Method (_STA, 0, NotSerialized)
                    {
                        While (LEqual (\_SB.MEM.KBCR, 0x00)) {}
                        Return (0x0F)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQ (Edge, ActiveHigh, Exclusive)
                            {12}
                    })
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_STA, 0x0F)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Address Range Minimum
                            0x0070,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x02,               // Address Length
                            )
                        IRQ (Edge, ActiveHigh, Exclusive)
                            {8}
                    })
                }

                Device (SYSR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_STA, 0x0F)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x002E,             // Address Range Minimum
                            0x002E,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x02,               // Address Length
                            )
                        IO (Decode16,
                            0x0062,             // Address Range Minimum
                            0x0062,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IO (Decode16,
                            0x0066,             // Address Range Minimum
                            0x0066,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IO (Decode16,
                            0x0080,             // Address Range Minimum
                            0x0080,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IO (Decode16,
                            0x0084,             // Address Range Minimum
                            0x0084,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x03,               // Address Length
                            )
                        IO (Decode16,
                            0x0088,             // Address Range Minimum
                            0x0088,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IO (Decode16,
                            0x008C,             // Address Range Minimum
                            0x008C,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x03,               // Address Length
                            )
                        IO (Decode16,
                            0x0092,             // Address Range Minimum
                            0x0092,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IO (Decode16,
                            0x00B0,             // Address Range Minimum
                            0x00B0,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x04,               // Address Length
                            )
                        IO (Decode16,
                            0x00E0,             // Address Range Minimum
                            0x00E0,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x10,               // Address Length
                            )
                        IO (Decode16,
                            0x0370,             // Address Range Minimum
                            0x0370,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x02,               // Address Length
                            )
                        IO (Decode16,
                            0x040B,             // Address Range Minimum
                            0x040B,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IO (Decode16,
                            0x0480,             // Address Range Minimum
                            0x0480,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x10,               // Address Length
                            )
                        IO (Decode16,
                            0x04D0,             // Address Range Minimum
                            0x04D0,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x02,               // Address Length
                            )
                        IO (Decode16,
                            0x04D6,             // Address Range Minimum
                            0x04D6,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IO (Decode16,
                            0x06C0,             // Address Range Minimum
                            0x06C0,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x40,               // Address Length
                            )
                        IO (Decode16,
                            0xE000,             // Address Range Minimum
                            0xE000,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x80,               // Address Length
                            )
                        IO (Decode16,
                            0xE080,             // Address Range Minimum
                            0xE080,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x80,               // Address Length
                            )
                        IO (Decode16,
                            0xE400,             // Address Range Minimum
                            0xE400,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x80,               // Address Length
                            )
                        IO (Decode16,
                            0xE480,             // Address Range Minimum
                            0xE480,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x80,               // Address Length
                            )
                        IO (Decode16,
                            0xE800,             // Address Range Minimum
                            0xE800,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x80,               // Address Length
                            )
                        IO (Decode16,
                            0xE880,             // Address Range Minimum
                            0xE880,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x80,               // Address Length
                            )
                        IO (Decode16,
                            0xEC00,             // Address Range Minimum
                            0xEC00,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x80,               // Address Length
                            )
                        IO (Decode16,
                            0xEC80,             // Address Range Minimum
                            0xEC80,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x80,               // Address Length
                            )
                        IO (Decode16,
                            0xEE00,             // Address Range Minimum
                            0xEE00,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x42,               // Address Length
                            )
                        IO (Decode16,
                            0xEE90,             // Address Range Minimum
                            0xEE90,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x10,               // Address Length
                            )
                        IO (Decode16,
                            0xEEAC,             // Address Range Minimum
                            0xEEAC,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x01,               // Address Length
                            )
                        IO (Decode16,
                            0xEF00,             // Address Range Minimum
                            0xEF00,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x40,               // Address Length
                            )
                        IO (Decode16,
                            0xEF40,             // Address Range Minimum
                            0xEF40,             // Address Range Maximum
                            0x01,               // Address Alignment
                            0x20,               // Address Length
                            )
                    })
                    OperationRegion (SRG1, SystemIO, 0xB1, 0x01)
                    Field (SRG1, ByteAcc, NoLock, Preserve)
                    {
                        TRP4,   8
                    }
                }

                Device (COM)
                {
                    Name (_HID, EisaId ("PNP0501"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STA (0x0E))
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS (0x0E))
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (PRS (0x0E))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        SRS (0x0E, Arg0)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DIS (0x0E)
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        PS0 (0x0E)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        PS3 (0x0E)
                    }

                    Method (_PSC, 0, NotSerialized)
                    {
                        Return (PSC (0x0E))
                    }

                    Name (_PRW, Package (0x02)
                    {
                        0x08,=20
                        0x03
                    })
                    Method (_PSW, 1, NotSerialized)
                    {
                        Store (Arg0, \_SB.MEM.WED0)
                    }
                }

                Device (FSIR)
                {
                    Name (_HID, EisaId ("SMCF010"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STA (0x0F))
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS (0x0F))
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (PRS (0x0F))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        SRS (0x0F, Arg0)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DIS (0x0F)
                    }
                }

                Device (PRT)
                {
                    Name (_HID, EisaId ("PNP0401"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STA (0x10))
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS (0x10))
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (PRS (0x10))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        SRS (0x10, Arg0)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DIS (0x10)
                    }
                }

                Device (PRT1)
                {
                    Name (_HID, EisaId ("PNP0400"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STA (0x12))
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS (0x12))
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (PRS (0x12))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        SRS (0x12, Arg0)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DIS (0x12)
                    }
                }

                Device (PCC0)
                {
                    Name (_HID, EisaId ("PNP0E00"))
                    Name (_UID, 0x01)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STA (0x13))
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS (0x13))
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (PRS (0x13))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        SRS (0x13, Arg0)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DIS (0x13)
                    }

                    Name (_PRW, Package (0x02)
                    {
                        0x09,=20
                        0x03
                    })
                    Method (_PSW, 1, NotSerialized)
                    {
                        Store (Arg0, \_SB.MEM.WED2)
                    }

                    Device (PCS0)
                    {
                        Name (_ADR, 0x00)
                        Name (_SUN, 0x00)
                    }

                    Device (PCS1)
                    {
                        Name (_ADR, 0x01)
                        Name (_SUN, 0x01)
                    }
                }

                Device (ATA)
                {
                    Name (_HID, EisaId ("PNP0600"))
                    Name (_UID, 0x03)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (STA (0x16))
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (CRS (0x16))
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (PRS (0x16))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        SRS (0x16, Arg0)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DIS (0x16)
                    }
                }
            }

            Device (FNC1)
            {
                Name (_ADR, 0x00040000)
                OperationRegion (IDEC, PCI_Config, 0x00, 0xFF)
                Field (IDEC, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x54),=20
                    FTHP,   4,=20
                    Offset (0x55),=20
                    FTHS,   4,=20
                    Offset (0x56),=20
                    PUDS,   4,=20
                    Offset (0x57),=20
                    SUDS,   4,=20
                    Offset (0x58),=20
                    PAST,   3,=20
                    Offset (0x59),=20
                    PCRC,   4,=20
                    PCAC,   3,=20
                    Offset (0x5A),=20
                    PDRC,   4,=20
                    PDAC,   3,=20
                    Offset (0x5C),=20
                    SAST,   3,=20
                    Offset (0x5D),=20
                    SCRC,   4,=20
                    SCAC,   3,=20
                    Offset (0x5E),=20
                    SDRC,   4,=20
                    SDAC,   3
                }

                Device (IDE0)
                {
                    Name (_ADR, 0x00)
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        While (LEqual (\_SB.MEM.ID0R, 0x00)) {}
                        Store (0x00, \_SB.MEM.PPSC)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        While (LEqual (\_SB.MEM.ID0R, 0x00)) {}
                        Store (0x01, \_SB.MEM.PPSC)
                    }

                    Method (_PSC, 0, NotSerialized)
                    {
                        While (LEqual (\_SB.MEM.ID0R, 0x00)) {}
                        If (\_SB.MEM.PPSC)
                        {
                            Return (0x03)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        While (LEqual (\_SB.MEM.ID0R, 0x00)) {}
                        Store (0x01, \_SB.MEM.HTM0)
                        CreateDWordField (Arg0, 0x00, PPIO)
                        CreateDWordField (Arg0, 0x04, PDMA)
                        CreateDWordField (Arg0, 0x10, PFLG)
                        Store (PPIO, Local0)
                        Store (0x03, Local1)
                        Store (0x0A, Local2)
                        Store (0x00, Local3)
                        Store (0x08, Local4)
                        Store (0x08, Local5)
                        If (LNot (LGreater (Local0, 0x78)))
                        {
                            Store (0x02, Local1)
                            Store (0x01, Local2)
                            Store (0x03, Local3)
                            Store (0x01, Local4)
                            Store (0x03, Local5)
                        }
                        Else
                        {
                            If (LNot (LGreater (Local0, 0xB4)))
                            {
                                Store (0x02, Local1)
                                Store (0x03, Local2)
                                Store (0x03, Local3)
                                Store (0x03, Local4)
                                Store (0x03, Local5)
                            }
                            Else
                            {
                                If (LNot (LGreater (Local0, 0xF0)))
                                {
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: 2.6.24: Serial disabled in BIOS but serial modules still..., Michael H. Warfield, (Sat Nov 24, 11:55 pm)
Re: 2.6.24: Serial disabled in BIOS but serial modules still..., Andrey Borzenkov, (Sun Nov 25, 12:50 pm)