Here is part of my DSDT,but how to combine existing data with new one,
If I declare Name (_ADR, 0x001F0002) twice wouldn't be a problem?
CODE
Device (IDE0)
{
Name (_ADR, 0x001F0002)
OperationRegion (PCFG, PCI_Config, 0x00, 0x0100)
Field (PCFG, DWordAcc, NoLock, Preserve)
{
Offset (0x40),
TPF0, 1,
TPI0, 1,
TPP0, 1,
TPD0, 1,
TPF1, 1,
TPI1, 1,
TPP1, 1,
TPD1, 1,
TPRT, 2,
, 2,
TPIS, 2,
TPTR, 1,
TPDE, 1,
TSF0, 1,
TSI0, 1,
TSP0, 1,
TSD0, 1,
TSF1, 1,
TSI1, 1,
TSP1, 1,
TSD1, 1,
TSRT, 2,
, 2,
TSIS, 2,
TSTR, 1,
TSDE, 1,
PRTS, 2,
PIOS, 2,
SRTS, 2,
SIOS, 2,
Offset (0x48),
SCP0, 1,
SCP1, 1,
SCS0, 1,
SCS1, 1,
Offset (0x4A),
PCT0, 2,
, 2,
PCT1, 2,
Offset (0x4B),
SCT0, 2,
, 2,
SCT1, 2,
Offset (0x4C),
Offset (0x54),
PCB0, 1,
PCB1, 1,
SCB0, 1,
SCB1, 1,
, 2,
PMCR, 1,
PSCR, 1,
, 4,
FPC0, 1,
FPC1, 1,
FSC0, 1,
FSC1, 1,
PSIG, 2,
SSIG, 2,
Offset (0x90),
AHCI, 8
}
Name (GTMT, Buffer (0x14)
{
/* 0000 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
/* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
/* 0010 */ 0x11, 0x00, 0x00, 0x00
})
CreateDWordField (GTMT, 0x00, PIO0)
CreateDWordField (GTMT, 0x04, DMA0)
CreateDWordField (GTMT, 0x08, PIO1)
CreateDWordField (GTMT, 0x0C, DMA1)
CreateDWordField (GTMT, 0x10, IFLG)
Method (GTMI, 0, NotSerialized)
{
Store (Ones, PIO0)
Store (Ones, DMA0)
Store (Ones, PIO1)
Store (Ones, DMA1)
Store (0x10, IFLG)
}
Method (UDMA, 3, NotSerialized)
{
If (Arg0)
{
Return (0x14)
}
If (Arg1)
{
If (LEqual (Arg2, 0x02))
{
Return (0x3C)
}
Else
{
Return (0x5A)
}
}
Else
{
Multiply (Subtract (0x04, Arg2), 0x1E, Local0)
Return (Local0)
}
}
Method (PIOM, 2, NotSerialized)
{
Store (0x09, Local0)
Subtract (Local0, Arg0, Local0)
Subtract (Local0, Arg1, Local0)
Multiply (Local0, 0x1E, Local0)
Return (Local0)
}
Method (GTMP, 0, NotSerialized)
{
GTMI ()
If (LEqual (TPDE, 0x00))
{
Return (GTMT)
}
Or (SCP0, IFLG, IFLG)
ShiftLeft (TPI0, 0x01, Local0)
Or (Local0, IFLG, IFLG)
ShiftLeft (SCP1, 0x02, Local0)
Or (Local0, IFLG, IFLG)
ShiftLeft (TPI1, 0x03, Local0)
Or (Local0, IFLG, IFLG)
Store (PIOM (TPIS, TPRT), PIO0)
Store (PIOM (PRTS, PIOS), PIO1)
If (SCP0)
{
Store (UDMA (FPC0, PCB0, PCT0), DMA0)
}
Else
{
If (TPD0)
{
Store (PIO0, DMA0)
}
}
If (SCP1)
{
Store (UDMA (FPC1, PCB1, PCT1), DMA1)
}
Else
{
If (TPD1)
{
Store (PIO1, DMA1)
}
}
Return (GTMT)
}
Method (GTMS, 0, NotSerialized)
{
GTMI ()
If (LEqual (TSDE, 0x00))
{
Return (GTMT)
}
Or (SCS0, IFLG, IFLG)
ShiftLeft (TSI0, 0x01, Local0)
Or (Local0, IFLG, IFLG)
ShiftLeft (SCS1, 0x02, Local0)
Or (Local0, IFLG, IFLG)
ShiftLeft (TSI1, 0x03, Local0)
Or (Local0, IFLG, IFLG)
Store (PIOM (TSIS, TSRT), PIO0)
Store (PIOM (SRTS, SIOS), PIO1)
If (SCS0)
{
Store (UDMA (FSC0, SCB0, SCT0), DMA0)
}
Else
{
If (TSD0)
{
Store (PIO0, DMA0)
}
}
If (SCS1)
{
Store (UDMA (FSC1, SCB1, SCT1), DMA1)
}
Else
{
If (TSD1)
{
Store (PIO1, DMA1)
}
}
Return (GTMT)
}
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}