~ubuntu-branches/ubuntu/saucy/seabios/saucy-proposed

« back to all changes in this revision

Viewing changes to src/acpi-dsdt-pci-crs.dsl

  • Committer: Package Import Robot
  • Author(s): Michael Tokarev
  • Date: 2013-07-08 21:34:44 UTC
  • mfrom: (1.1.7)
  • Revision ID: package-import@ubuntu.com-20130708213444-6ed9q23j39x143lu
Tags: 1.7.3-1
Multi-Arch: allowed

Show diffs side-by-side

added added

removed removed

Lines of Context:
56
56
    })
57
57
 
58
58
    Method(_CRS, 0) {
59
 
        /* see see acpi.h, struct bfld */
60
 
        External(BDAT, OpRegionObj)
61
 
        Field(BDAT, QWordAcc, NoLock, Preserve) {
62
 
            P0S, 64,
63
 
            P0E, 64,
64
 
            P0L, 64,
65
 
            P1S, 64,
66
 
            P1E, 64,
67
 
            P1L, 64,
68
 
        }
69
 
        Field(BDAT, DWordAcc, NoLock, Preserve) {
70
 
            P0SL, 32,
71
 
            P0SH, 32,
72
 
            P0EL, 32,
73
 
            P0EH, 32,
74
 
            P0LL, 32,
75
 
            P0LH, 32,
76
 
            P1SL, 32,
77
 
            P1SH, 32,
78
 
            P1EL, 32,
79
 
            P1EH, 32,
80
 
            P1LL, 32,
81
 
            P1LH, 32,
82
 
        }
 
59
        /* Fields provided by dynamically created ssdt */
 
60
        External(P0S, IntObj)
 
61
        External(P0E, IntObj)
 
62
        External(P1V, IntObj)
 
63
        External(P1S, BuffObj)
 
64
        External(P1E, BuffObj)
 
65
        External(P1L, BuffObj)
83
66
 
84
67
        /* fixup 32bit pci io window */
85
68
        CreateDWordField(CRES, \_SB.PCI0.PW32._MIN, PS32)
86
69
        CreateDWordField(CRES, \_SB.PCI0.PW32._MAX, PE32)
87
70
        CreateDWordField(CRES, \_SB.PCI0.PW32._LEN, PL32)
88
 
        Store(P0SL, PS32)
89
 
        Store(P0EL, PE32)
90
 
        Store(P0LL, PL32)
 
71
        Store(P0S, PS32)
 
72
        Store(P0E, PE32)
 
73
        Store(Add(Subtract(P0E, P0S), 1), PL32)
91
74
 
92
 
        If (LAnd(LEqual(P1SL, 0x00), LEqual(P1SH, 0x00))) {
 
75
        If (LEqual(P1V, Zero)) {
93
76
            Return (CRES)
94
 
        } Else {
95
 
            /* fixup 64bit pci io window */
96
 
            CreateQWordField(CR64, \_SB.PCI0.PW64._MIN, PS64)
97
 
            CreateQWordField(CR64, \_SB.PCI0.PW64._MAX, PE64)
98
 
            CreateQWordField(CR64, \_SB.PCI0.PW64._LEN, PL64)
99
 
            Store(P1S, PS64)
100
 
            Store(P1E, PE64)
101
 
            Store(P1L, PL64)
102
 
            /* add window and return result */
103
 
            ConcatenateResTemplate(CRES, CR64, Local0)
104
 
            Return (Local0)
105
77
        }
 
78
 
 
79
        /* fixup 64bit pci io window */
 
80
        CreateQWordField(CR64, \_SB.PCI0.PW64._MIN, PS64)
 
81
        CreateQWordField(CR64, \_SB.PCI0.PW64._MAX, PE64)
 
82
        CreateQWordField(CR64, \_SB.PCI0.PW64._LEN, PL64)
 
83
        Store(P1S, PS64)
 
84
        Store(P1E, PE64)
 
85
        Store(P1L, PL64)
 
86
        /* add window and return result */
 
87
        ConcatenateResTemplate(CRES, CR64, Local0)
 
88
        Return (Local0)
106
89
    }
107
90
}