Guest User

X31 NetBSD acpidump

a guest
Jan 6th, 2026
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 427.62 KB | Software | 0 0
  1. /*
  2. RSD PTR: OEM=IBM, ACPI_Rev=2.0x (2)
  3. XSDT=0x000000003ff69e78, length=36, cksum=145
  4. */
  5. /*
  6. XSDT: Length=76, Revision=1, Checksum=143,
  7. OEMID=IBM, OEM Table ID=TP-1Q, OEM Revision=0x3020,
  8. Creator ID= LTP, Creator Revision=0x0
  9. Entries={ 0x000000003ff69f00, 0x000000003ff6a0b4, 0x000000003ff76e11, 0x000000003ff76e63, 0x000000003ff76fd8 }
  10. */
  11. /*
  12. FACP: Length=244, Revision=3, Checksum=190,
  13. OEMID=IBM, OEM Table ID=TP-1Q, OEM Revision=0x3020,
  14. Creator ID=IBM, Creator Revision=0x1
  15. FACS=0x3ff78000, DSDT=0x3ff6a0e7
  16. INT_MODEL=PIC
  17. Preferred_PM_Profile=Mobile (2)
  18. SCI_INT=9
  19. SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
  20. PSTATE_CNT=0xf3
  21. PM1a_EVT_BLK=0x1000-0x1003
  22. PM1a_CNT_BLK=0x1004-0x1005
  23. PM2_CNT_BLK=0x1020-0x1020
  24. PM_TMR_BLK=0x1008-0x100b
  25. GPE0_BLK=0x1028-0x102f
  26. CST_CNT=0xf4
  27. P_LVL2_LAT=1 us, P_LVL3_LAT=85 us
  28. FLUSH_SIZE=0, FLUSH_STRIDE=0
  29. DUTY_OFFSET=1, DUTY_WIDTH=3
  30. DAY_ALRM=13, MON_ALRM=0, CENTURY=50
  31. IAPC_BOOT_ARCH={LEGACY_DEVICES,8042}
  32. Flags={WBINVD,C1_SUPPORTED,C2_MP_SUPPORTED,SLEEP_BUTTON,S4_RTC_WAKE,DOCKING_SUPPORTED}
  33. ArmBootFlags={}
  34. MinorRevision=0
  35. X_FACS=0x000000003ff78000, X_DSDT=0x000000003ff6a0e7
  36. X_PM1a_EVT_BLK=0x1000:0[32] (IO)
  37. X_PM1a_CNT_BLK=0x1004:0[16] (IO)
  38. X_PM2_CNT_BLK=0x1020:0[8] (IO)
  39. X_PM_TMR_BLK=0x1008:0[32] (IO)
  40. X_GPE0_BLK=0x1028:0[32] (IO)
  41. X_GPE1_BLK=0x102c:0[32] (IO)
  42. */
  43. /*
  44. FACS: Length=64, HwSig=0x00001229, Firm_Wake_Vec=0x00000000
  45. Global_Lock={}
  46. Flags={}
  47. Version=1
  48. OspmFlags={}
  49. */
  50. /*
  51. DSDT: Length=52522, Revision=1, Checksum=164,
  52. OEMID=IBM, OEM Table ID=TP-1Q, OEM Revision=0x3020,
  53. Creator ID=MSFT, Creator Revision=0x100000e
  54. */
  55. /*
  56. SSDT: Length=51, Revision=1, Checksum=103,
  57. OEMID=IBM, OEM Table ID=TP-1Q, OEM Revision=0x3020,
  58. Creator ID=MSFT, Creator Revision=0x100000e
  59.  
  60. Data={
  61. 53 53 44 54 33 00 00 00 01 67 49 42 4d 20 20 20
  62. 54 50 2d 31 51 20 20 20 20 30 00 00 4d 53 46 54
  63. 0e 00 00 01 10 0e 5c 00 14 0a 4b 4f 55 32 00 5b
  64. 21 0a 64
  65. }
  66. */
  67. /*
  68. ECDT: Length=82, Revision=1, Checksum=22,
  69. OEMID=IBM, OEM Table ID=TP-1Q, OEM Revision=0x3020,
  70. Creator ID=IBM, Creator Revision=0x1
  71. EC_CONTROL=0x66:0[8] (IO)
  72. EC_DATA=0x62:0[8] (IO)
  73. UID=0, GPE_BIT=0x1c
  74. EC_ID=\_SB.PCI0.LPC.EC
  75. */
  76. /*
  77. TCPA: Length=50, Revision=1, Checksum=89,
  78. OEMID=IBM, OEM Table ID=TP-1Q, OEM Revision=0x3020,
  79. Creator ID=PTL, Creator Revision=0x1
  80. Class 0 Base Address 0x0 Length 0
  81.  
  82. Empty TCPA table
  83. */
  84. /*
  85. BOOT: Length=40, Revision=1, Checksum=34,
  86. OEMID=IBM, OEM Table ID=TP-1Q, OEM Revision=0x3020,
  87. Creator ID= LTP, Creator Revision=0x1
  88. CMOS Index=0x35
  89. */
  90. /*
  91. * Intel ACPI Component Architecture
  92. * AML/ASL+ Disassembler version 20190405 (32-bit version)
  93. * Copyright (c) 2000 - 2019 Intel Corporation
  94. *
  95. * Disassembling to symbolic ASL+ operators
  96. *
  97. * Disassembly of /tmp/acpidump.B0Ebag/acpdump.din, Mon Jan 5 11:36:16 2026
  98. *
  99. * Original Table Header:
  100. * Signature "DSDT"
  101. * Length 0x0000CD39 (52537)
  102. * Revision 0x01 **** 32-bit table (V1), no 64-bit math support
  103. * Checksum 0xF2
  104. * OEM ID "IBM "
  105. * OEM Table ID "TP-1Q "
  106. * OEM Revision 0x00003020 (12320)
  107. * Compiler ID "MSFT"
  108. * Compiler Version 0x0100000E (16777230)
  109. */
  110. DefinitionBlock ("", "DSDT", 1, "IBM ", "TP-1Q ", 0x00003020)
  111. {
  112. Scope (\_PR)
  113. {
  114. Processor (CPU, 0x01, 0x00001010, 0x06)
  115. {
  116. Name (PDC0, 0x00)
  117. Method (_PDC, 1, NotSerialized) // _PDC: Processor Driver Capabilities
  118. {
  119. CreateDWordField (Arg0, 0x08, CAP0)
  120. PDC0 = CAP0 /* \_PR_.CPU_._PDC.CAP0 */
  121. If (((PDC0 & 0x01) == 0x01))
  122. {
  123. PINI ()
  124. }
  125. }
  126.  
  127. Method (INI1, 0, NotSerialized)
  128. {
  129. DerefOf (_PSS [0x00]) [0x00] = \P0FQ
  130. DerefOf (_PSS [0x00]) [0x01] = \P0PW
  131. }
  132.  
  133. Method (INI2, 0, NotSerialized)
  134. {
  135. DerefOf (_PSS [0x00]) [0x00] = \P0FQ
  136. DerefOf (_PSS [0x00]) [0x01] = \P0PW
  137. DerefOf (_PSS [0x01]) [0x00] = \P1FQ
  138. DerefOf (_PSS [0x01]) [0x01] = \P1PW
  139. }
  140.  
  141. Method (INI3, 0, NotSerialized)
  142. {
  143. DerefOf (_PSS [0x00]) [0x00] = \P0FQ
  144. DerefOf (_PSS [0x00]) [0x01] = \P0PW
  145. DerefOf (_PSS [0x01]) [0x00] = \P1FQ
  146. DerefOf (_PSS [0x01]) [0x01] = \P1PW
  147. DerefOf (_PSS [0x02]) [0x00] = \P2FQ
  148. DerefOf (_PSS [0x02]) [0x01] = \P2PW
  149. }
  150.  
  151. Method (INI4, 0, NotSerialized)
  152. {
  153. DerefOf (_PSS [0x00]) [0x00] = \P0FQ
  154. DerefOf (_PSS [0x00]) [0x01] = \P0PW
  155. DerefOf (_PSS [0x01]) [0x00] = \P1FQ
  156. DerefOf (_PSS [0x01]) [0x01] = \P1PW
  157. DerefOf (_PSS [0x02]) [0x00] = \P2FQ
  158. DerefOf (_PSS [0x02]) [0x01] = \P2PW
  159. DerefOf (_PSS [0x03]) [0x00] = \P3FQ
  160. DerefOf (_PSS [0x03]) [0x01] = \P3PW
  161. }
  162.  
  163. Method (INI5, 0, NotSerialized)
  164. {
  165. DerefOf (_PSS [0x00]) [0x00] = \P0FQ
  166. DerefOf (_PSS [0x00]) [0x01] = \P0PW
  167. DerefOf (_PSS [0x01]) [0x00] = \P1FQ
  168. DerefOf (_PSS [0x01]) [0x01] = \P1PW
  169. DerefOf (_PSS [0x02]) [0x00] = \P2FQ
  170. DerefOf (_PSS [0x02]) [0x01] = \P2PW
  171. DerefOf (_PSS [0x03]) [0x00] = \P3FQ
  172. DerefOf (_PSS [0x03]) [0x01] = \P3PW
  173. DerefOf (_PSS [0x04]) [0x00] = \P4FQ
  174. DerefOf (_PSS [0x04]) [0x01] = \P4PW
  175. }
  176.  
  177. Method (_INI, 0, NotSerialized) // _INI: Initialize
  178. {
  179. DerefOf (_PSS [0x00]) [0x00] = \P0FQ
  180. DerefOf (_PSS [0x00]) [0x01] = \P0PW
  181. DerefOf (_PSS [0x01]) [0x00] = \P1FQ
  182. DerefOf (_PSS [0x01]) [0x01] = \P1PW
  183. DerefOf (_PSS [0x02]) [0x00] = \P2FQ
  184. DerefOf (_PSS [0x02]) [0x01] = \P2PW
  185. DerefOf (_PSS [0x03]) [0x00] = \P3FQ
  186. DerefOf (_PSS [0x03]) [0x01] = \P3PW
  187. DerefOf (_PSS [0x04]) [0x00] = \P4FQ
  188. DerefOf (_PSS [0x04]) [0x01] = \P4PW
  189. DerefOf (_PSS [0x05]) [0x00] = \P5FQ
  190. DerefOf (_PSS [0x05]) [0x01] = \P5PW
  191. }
  192.  
  193. Method (INI7, 0, NotSerialized)
  194. {
  195. DerefOf (_PSS [0x00]) [0x00] = \P0FQ
  196. DerefOf (_PSS [0x00]) [0x01] = \P0PW
  197. DerefOf (_PSS [0x01]) [0x00] = \P1FQ
  198. DerefOf (_PSS [0x01]) [0x01] = \P1PW
  199. DerefOf (_PSS [0x02]) [0x00] = \P2FQ
  200. DerefOf (_PSS [0x02]) [0x01] = \P2PW
  201. DerefOf (_PSS [0x03]) [0x00] = \P3FQ
  202. DerefOf (_PSS [0x03]) [0x01] = \P3PW
  203. DerefOf (_PSS [0x04]) [0x00] = \P4FQ
  204. DerefOf (_PSS [0x04]) [0x01] = \P4PW
  205. DerefOf (_PSS [0x05]) [0x00] = \P5FQ
  206. DerefOf (_PSS [0x05]) [0x01] = \P5PW
  207. DerefOf (_PSS [0x06]) [0x00] = \P6FQ
  208. DerefOf (_PSS [0x06]) [0x01] = \P6PW
  209. }
  210.  
  211. Method (INI8, 0, NotSerialized)
  212. {
  213. DerefOf (_PSS [0x00]) [0x00] = \P0FQ
  214. DerefOf (_PSS [0x00]) [0x01] = \P0PW
  215. DerefOf (_PSS [0x01]) [0x00] = \P1FQ
  216. DerefOf (_PSS [0x01]) [0x01] = \P1PW
  217. DerefOf (_PSS [0x02]) [0x00] = \P2FQ
  218. DerefOf (_PSS [0x02]) [0x01] = \P2PW
  219. DerefOf (_PSS [0x03]) [0x00] = \P3FQ
  220. DerefOf (_PSS [0x03]) [0x01] = \P3PW
  221. DerefOf (_PSS [0x04]) [0x00] = \P4FQ
  222. DerefOf (_PSS [0x04]) [0x01] = \P4PW
  223. DerefOf (_PSS [0x05]) [0x00] = \P5FQ
  224. DerefOf (_PSS [0x05]) [0x01] = \P5PW
  225. DerefOf (_PSS [0x06]) [0x00] = \P6FQ
  226. DerefOf (_PSS [0x06]) [0x01] = \P6PW
  227. DerefOf (_PSS [0x07]) [0x00] = \P7FQ
  228. DerefOf (_PSS [0x07]) [0x01] = \P7PW
  229. }
  230.  
  231. Method (PIN1, 0, NotSerialized)
  232. {
  233. DerefOf (_PSS [0x00]) [0x04] = \P0CT
  234. DerefOf (_PSS [0x00]) [0x05] = \P0CT
  235. }
  236.  
  237. Method (PIN2, 0, NotSerialized)
  238. {
  239. DerefOf (_PSS [0x00]) [0x04] = \P0CT
  240. DerefOf (_PSS [0x00]) [0x05] = \P0CT
  241. DerefOf (_PSS [0x01]) [0x04] = \P1CT
  242. DerefOf (_PSS [0x01]) [0x05] = \P1CT
  243. }
  244.  
  245. Method (PIN3, 0, NotSerialized)
  246. {
  247. DerefOf (_PSS [0x00]) [0x04] = \P0CT
  248. DerefOf (_PSS [0x00]) [0x05] = \P0CT
  249. DerefOf (_PSS [0x01]) [0x04] = \P1CT
  250. DerefOf (_PSS [0x01]) [0x05] = \P1CT
  251. DerefOf (_PSS [0x02]) [0x04] = \P2CT
  252. DerefOf (_PSS [0x02]) [0x05] = \P2CT
  253. }
  254.  
  255. Method (PIN4, 0, NotSerialized)
  256. {
  257. DerefOf (_PSS [0x00]) [0x04] = \P0CT
  258. DerefOf (_PSS [0x00]) [0x05] = \P0CT
  259. DerefOf (_PSS [0x01]) [0x04] = \P1CT
  260. DerefOf (_PSS [0x01]) [0x05] = \P1CT
  261. DerefOf (_PSS [0x02]) [0x04] = \P2CT
  262. DerefOf (_PSS [0x02]) [0x05] = \P2CT
  263. DerefOf (_PSS [0x03]) [0x04] = \P3CT
  264. DerefOf (_PSS [0x03]) [0x05] = \P3CT
  265. }
  266.  
  267. Method (PIN5, 0, NotSerialized)
  268. {
  269. DerefOf (_PSS [0x00]) [0x04] = \P0CT
  270. DerefOf (_PSS [0x00]) [0x05] = \P0CT
  271. DerefOf (_PSS [0x01]) [0x04] = \P1CT
  272. DerefOf (_PSS [0x01]) [0x05] = \P1CT
  273. DerefOf (_PSS [0x02]) [0x04] = \P2CT
  274. DerefOf (_PSS [0x02]) [0x05] = \P2CT
  275. DerefOf (_PSS [0x03]) [0x04] = \P3CT
  276. DerefOf (_PSS [0x03]) [0x05] = \P3CT
  277. DerefOf (_PSS [0x04]) [0x04] = \P4CT
  278. DerefOf (_PSS [0x04]) [0x05] = \P4CT
  279. }
  280.  
  281. Method (PINI, 0, NotSerialized)
  282. {
  283. DerefOf (_PSS [0x00]) [0x04] = \P0CT
  284. DerefOf (_PSS [0x00]) [0x05] = \P0CT
  285. DerefOf (_PSS [0x01]) [0x04] = \P1CT
  286. DerefOf (_PSS [0x01]) [0x05] = \P1CT
  287. DerefOf (_PSS [0x02]) [0x04] = \P2CT
  288. DerefOf (_PSS [0x02]) [0x05] = \P2CT
  289. DerefOf (_PSS [0x03]) [0x04] = \P3CT
  290. DerefOf (_PSS [0x03]) [0x05] = \P3CT
  291. DerefOf (_PSS [0x04]) [0x04] = \P4CT
  292. DerefOf (_PSS [0x04]) [0x05] = \P4CT
  293. DerefOf (_PSS [0x05]) [0x04] = \P5CT
  294. DerefOf (_PSS [0x05]) [0x05] = \P5CT
  295. }
  296.  
  297. Method (PIN7, 0, NotSerialized)
  298. {
  299. DerefOf (_PSS [0x00]) [0x04] = \P0CT
  300. DerefOf (_PSS [0x00]) [0x05] = \P0CT
  301. DerefOf (_PSS [0x01]) [0x04] = \P1CT
  302. DerefOf (_PSS [0x01]) [0x05] = \P1CT
  303. DerefOf (_PSS [0x02]) [0x04] = \P2CT
  304. DerefOf (_PSS [0x02]) [0x05] = \P2CT
  305. DerefOf (_PSS [0x03]) [0x04] = \P3CT
  306. DerefOf (_PSS [0x03]) [0x05] = \P3CT
  307. DerefOf (_PSS [0x04]) [0x04] = \P4CT
  308. DerefOf (_PSS [0x04]) [0x05] = \P4CT
  309. DerefOf (_PSS [0x05]) [0x04] = \P5CT
  310. DerefOf (_PSS [0x05]) [0x05] = \P5CT
  311. DerefOf (_PSS [0x06]) [0x04] = \P6CT
  312. DerefOf (_PSS [0x06]) [0x05] = \P6CT
  313. }
  314.  
  315. Method (PIN8, 0, NotSerialized)
  316. {
  317. DerefOf (_PSS [0x00]) [0x04] = \P0CT
  318. DerefOf (_PSS [0x00]) [0x05] = \P0CT
  319. DerefOf (_PSS [0x01]) [0x04] = \P1CT
  320. DerefOf (_PSS [0x01]) [0x05] = \P1CT
  321. DerefOf (_PSS [0x02]) [0x04] = \P2CT
  322. DerefOf (_PSS [0x02]) [0x05] = \P2CT
  323. DerefOf (_PSS [0x03]) [0x04] = \P3CT
  324. DerefOf (_PSS [0x03]) [0x05] = \P3CT
  325. DerefOf (_PSS [0x04]) [0x04] = \P4CT
  326. DerefOf (_PSS [0x04]) [0x05] = \P4CT
  327. DerefOf (_PSS [0x05]) [0x04] = \P5CT
  328. DerefOf (_PSS [0x05]) [0x05] = \P5CT
  329. DerefOf (_PSS [0x06]) [0x04] = \P6CT
  330. DerefOf (_PSS [0x06]) [0x05] = \P6CT
  331. DerefOf (_PSS [0x07]) [0x04] = \P7CT
  332. DerefOf (_PSS [0x07]) [0x05] = \P7CT
  333. }
  334.  
  335. Method (_PCT, 0, NotSerialized) // _PCT: Performance Control
  336. {
  337. If (((PDC0 & 0x01) == 0x01))
  338. {
  339. Return (Package (0x02)
  340. {
  341. ResourceTemplate ()
  342. {
  343. Register (FFixedHW,
  344. 0x40, // Bit Width
  345. 0x00, // Bit Offset
  346. 0x0000000000000199, // Address
  347. ,)
  348. },
  349.  
  350. ResourceTemplate ()
  351. {
  352. Register (FFixedHW,
  353. 0x10, // Bit Width
  354. 0x00, // Bit Offset
  355. 0x0000000000000198, // Address
  356. ,)
  357. }
  358. })
  359. }
  360. Else
  361. {
  362. Return (Package (0x02)
  363. {
  364. ResourceTemplate ()
  365. {
  366. Register (SystemIO,
  367. 0x08, // Bit Width
  368. 0x00, // Bit Offset
  369. 0x00000000000000B2, // Address
  370. ,)
  371. },
  372.  
  373. ResourceTemplate ()
  374. {
  375. Register (SystemIO,
  376. 0x08, // Bit Width
  377. 0x00, // Bit Offset
  378. 0x00000000000000B3, // Address
  379. ,)
  380. }
  381. })
  382. }
  383. }
  384.  
  385. Name (PSS1, Package (0x01)
  386. {
  387. Package (0x06)
  388. {
  389. 0x00,
  390. 0x00,
  391. 0x01F4,
  392. 0x00,
  393. 0xF6,
  394. 0x00
  395. }
  396. })
  397. Name (PSS2, Package (0x02)
  398. {
  399. Package (0x06)
  400. {
  401. 0x00,
  402. 0x00,
  403. 0x01F4,
  404. 0x00,
  405. 0xF6,
  406. 0x00
  407. },
  408.  
  409. Package (0x06)
  410. {
  411. 0x00,
  412. 0x00,
  413. 0x01F4,
  414. 0x00,
  415. 0xF7,
  416. 0x01
  417. }
  418. })
  419. Name (PSS3, Package (0x03)
  420. {
  421. Package (0x06)
  422. {
  423. 0x00,
  424. 0x00,
  425. 0x01F4,
  426. 0x00,
  427. 0xF6,
  428. 0x00
  429. },
  430.  
  431. Package (0x06)
  432. {
  433. 0x00,
  434. 0x00,
  435. 0x01F4,
  436. 0x00,
  437. 0xF7,
  438. 0x01
  439. },
  440.  
  441. Package (0x06)
  442. {
  443. 0x00,
  444. 0x00,
  445. 0x01F4,
  446. 0x00,
  447. 0xF8,
  448. 0x02
  449. }
  450. })
  451. Name (PSS4, Package (0x04)
  452. {
  453. Package (0x06)
  454. {
  455. 0x00,
  456. 0x00,
  457. 0x01F4,
  458. 0x00,
  459. 0xF6,
  460. 0x00
  461. },
  462.  
  463. Package (0x06)
  464. {
  465. 0x00,
  466. 0x00,
  467. 0x01F4,
  468. 0x00,
  469. 0xF7,
  470. 0x01
  471. },
  472.  
  473. Package (0x06)
  474. {
  475. 0x00,
  476. 0x00,
  477. 0x01F4,
  478. 0x00,
  479. 0xF8,
  480. 0x02
  481. },
  482.  
  483. Package (0x06)
  484. {
  485. 0x00,
  486. 0x00,
  487. 0x01F4,
  488. 0x00,
  489. 0xF9,
  490. 0x03
  491. }
  492. })
  493. Name (PSS5, Package (0x05)
  494. {
  495. Package (0x06)
  496. {
  497. 0x00,
  498. 0x00,
  499. 0x01F4,
  500. 0x00,
  501. 0xF6,
  502. 0x00
  503. },
  504.  
  505. Package (0x06)
  506. {
  507. 0x00,
  508. 0x00,
  509. 0x01F4,
  510. 0x00,
  511. 0xF7,
  512. 0x01
  513. },
  514.  
  515. Package (0x06)
  516. {
  517. 0x00,
  518. 0x00,
  519. 0x01F4,
  520. 0x00,
  521. 0xF8,
  522. 0x02
  523. },
  524.  
  525. Package (0x06)
  526. {
  527. 0x00,
  528. 0x00,
  529. 0x01F4,
  530. 0x00,
  531. 0xF9,
  532. 0x03
  533. },
  534.  
  535. Package (0x06)
  536. {
  537. 0x00,
  538. 0x00,
  539. 0x01F4,
  540. 0x00,
  541. 0xFA,
  542. 0x04
  543. }
  544. })
  545. Name (_PSS, Package (0x06) // _PSS: Performance Supported States
  546. {
  547. Package (0x06)
  548. {
  549. 0x00,
  550. 0x00,
  551. 0x01F4,
  552. 0x00,
  553. 0xF6,
  554. 0x00
  555. },
  556.  
  557. Package (0x06)
  558. {
  559. 0x00,
  560. 0x00,
  561. 0x01F4,
  562. 0x00,
  563. 0xF7,
  564. 0x01
  565. },
  566.  
  567. Package (0x06)
  568. {
  569. 0x00,
  570. 0x00,
  571. 0x01F4,
  572. 0x00,
  573. 0xF8,
  574. 0x02
  575. },
  576.  
  577. Package (0x06)
  578. {
  579. 0x00,
  580. 0x00,
  581. 0x01F4,
  582. 0x00,
  583. 0xF9,
  584. 0x03
  585. },
  586.  
  587. Package (0x06)
  588. {
  589. 0x00,
  590. 0x00,
  591. 0x01F4,
  592. 0x00,
  593. 0xFA,
  594. 0x04
  595. },
  596.  
  597. Package (0x06)
  598. {
  599. 0x00,
  600. 0x00,
  601. 0x01F4,
  602. 0x00,
  603. 0xFB,
  604. 0x05
  605. }
  606. })
  607. Name (PSS7, Package (0x07)
  608. {
  609. Package (0x06)
  610. {
  611. 0x00,
  612. 0x00,
  613. 0x01F4,
  614. 0x00,
  615. 0xF6,
  616. 0x00
  617. },
  618.  
  619. Package (0x06)
  620. {
  621. 0x00,
  622. 0x00,
  623. 0x01F4,
  624. 0x00,
  625. 0xF7,
  626. 0x01
  627. },
  628.  
  629. Package (0x06)
  630. {
  631. 0x00,
  632. 0x00,
  633. 0x01F4,
  634. 0x00,
  635. 0xF8,
  636. 0x02
  637. },
  638.  
  639. Package (0x06)
  640. {
  641. 0x00,
  642. 0x00,
  643. 0x01F4,
  644. 0x00,
  645. 0xF9,
  646. 0x03
  647. },
  648.  
  649. Package (0x06)
  650. {
  651. 0x00,
  652. 0x00,
  653. 0x01F4,
  654. 0x00,
  655. 0xFA,
  656. 0x04
  657. },
  658.  
  659. Package (0x06)
  660. {
  661. 0x00,
  662. 0x00,
  663. 0x01F4,
  664. 0x00,
  665. 0xFB,
  666. 0x05
  667. },
  668.  
  669. Package (0x06)
  670. {
  671. 0x00,
  672. 0x00,
  673. 0x01F4,
  674. 0x00,
  675. 0xFC,
  676. 0x06
  677. }
  678. })
  679. Name (PSS8, Package (0x08)
  680. {
  681. Package (0x06)
  682. {
  683. 0x00,
  684. 0x00,
  685. 0x01F4,
  686. 0x00,
  687. 0xF6,
  688. 0x00
  689. },
  690.  
  691. Package (0x06)
  692. {
  693. 0x00,
  694. 0x00,
  695. 0x01F4,
  696. 0x00,
  697. 0xF7,
  698. 0x01
  699. },
  700.  
  701. Package (0x06)
  702. {
  703. 0x00,
  704. 0x00,
  705. 0x01F4,
  706. 0x00,
  707. 0xF8,
  708. 0x02
  709. },
  710.  
  711. Package (0x06)
  712. {
  713. 0x00,
  714. 0x00,
  715. 0x01F4,
  716. 0x00,
  717. 0xF9,
  718. 0x03
  719. },
  720.  
  721. Package (0x06)
  722. {
  723. 0x00,
  724. 0x00,
  725. 0x01F4,
  726. 0x00,
  727. 0xFA,
  728. 0x04
  729. },
  730.  
  731. Package (0x06)
  732. {
  733. 0x00,
  734. 0x00,
  735. 0x01F4,
  736. 0x00,
  737. 0xFB,
  738. 0x05
  739. },
  740.  
  741. Package (0x06)
  742. {
  743. 0x00,
  744. 0x00,
  745. 0x01F4,
  746. 0x00,
  747. 0xFC,
  748. 0x06
  749. },
  750.  
  751. Package (0x06)
  752. {
  753. 0x00,
  754. 0x00,
  755. 0x01F4,
  756. 0x00,
  757. 0xFD,
  758. 0x07
  759. }
  760. })
  761. Method (_PPC, 0, NotSerialized) // _PPC: Performance Present Capabilities
  762. {
  763. If (!\SPEN)
  764. {
  765. Return (\LWST)
  766. }
  767.  
  768. If (\_SB.PCI0.LPC.EC.HPLO)
  769. {
  770. Return (\LPST)
  771. }
  772. ElseIf ((\_SB.PCI0.LPC.EC.HT00 || \_SB.PCI0.LPC.EC.HT10))
  773. {
  774. Return (\LWST)
  775. }
  776. Else
  777. {
  778. Return (0x00)
  779. }
  780. }
  781.  
  782. Name (CST1, Package (0x02)
  783. {
  784. 0x01,
  785. Package (0x04)
  786. {
  787. ResourceTemplate ()
  788. {
  789. Register (FFixedHW,
  790. 0x08, // Bit Width
  791. 0x00, // Bit Offset
  792. 0x0000000000000000, // Address
  793. ,)
  794. },
  795.  
  796. 0x01,
  797. 0x01,
  798. 0x03E8
  799. }
  800. })
  801. Name (CST2, Package (0x03)
  802. {
  803. 0x02,
  804. Package (0x04)
  805. {
  806. ResourceTemplate ()
  807. {
  808. Register (FFixedHW,
  809. 0x08, // Bit Width
  810. 0x00, // Bit Offset
  811. 0x0000000000000000, // Address
  812. ,)
  813. },
  814.  
  815. 0x01,
  816. 0x01,
  817. 0x03E8
  818. },
  819.  
  820. Package (0x04)
  821. {
  822. ResourceTemplate ()
  823. {
  824. Register (SystemIO,
  825. 0x08, // Bit Width
  826. 0x00, // Bit Offset
  827. 0x0000000000001014, // Address
  828. ,)
  829. },
  830.  
  831. 0x02,
  832. 0x01,
  833. 0x01F4
  834. }
  835. })
  836. Name (CST3, Package (0x04)
  837. {
  838. 0x03,
  839. Package (0x04)
  840. {
  841. ResourceTemplate ()
  842. {
  843. Register (FFixedHW,
  844. 0x08, // Bit Width
  845. 0x00, // Bit Offset
  846. 0x0000000000000000, // Address
  847. ,)
  848. },
  849.  
  850. 0x01,
  851. 0x01,
  852. 0x03E8
  853. },
  854.  
  855. Package (0x04)
  856. {
  857. ResourceTemplate ()
  858. {
  859. Register (SystemIO,
  860. 0x08, // Bit Width
  861. 0x00, // Bit Offset
  862. 0x0000000000001014, // Address
  863. ,)
  864. },
  865.  
  866. 0x02,
  867. 0x01,
  868. 0x01F4
  869. },
  870.  
  871. Package (0x04)
  872. {
  873. ResourceTemplate ()
  874. {
  875. Register (SystemIO,
  876. 0x08, // Bit Width
  877. 0x00, // Bit Offset
  878. 0x0000000000001015, // Address
  879. ,)
  880. },
  881.  
  882. 0x03,
  883. 0x55,
  884. 0xFA
  885. }
  886. })
  887. Name (CST4, Package (0x05)
  888. {
  889. 0x04,
  890. Package (0x04)
  891. {
  892. ResourceTemplate ()
  893. {
  894. Register (FFixedHW,
  895. 0x08, // Bit Width
  896. 0x00, // Bit Offset
  897. 0x0000000000000000, // Address
  898. ,)
  899. },
  900.  
  901. 0x01,
  902. 0x01,
  903. 0x03E8
  904. },
  905.  
  906. Package (0x04)
  907. {
  908. ResourceTemplate ()
  909. {
  910. Register (SystemIO,
  911. 0x08, // Bit Width
  912. 0x00, // Bit Offset
  913. 0x0000000000001014, // Address
  914. ,)
  915. },
  916.  
  917. 0x02,
  918. 0x01,
  919. 0x01F4
  920. },
  921.  
  922. Package (0x04)
  923. {
  924. ResourceTemplate ()
  925. {
  926. Register (SystemIO,
  927. 0x08, // Bit Width
  928. 0x00, // Bit Offset
  929. 0x0000000000001015, // Address
  930. ,)
  931. },
  932.  
  933. 0x03,
  934. 0x55,
  935. 0xFA
  936. },
  937.  
  938. Package (0x04)
  939. {
  940. ResourceTemplate ()
  941. {
  942. Register (SystemIO,
  943. 0x08, // Bit Width
  944. 0x00, // Bit Offset
  945. 0x0000000000001016, // Address
  946. ,)
  947. },
  948.  
  949. 0x03,
  950. 0xB9,
  951. 0x64
  952. }
  953. })
  954. Method (_CST, 0, NotSerialized) // _CST: C-States
  955. {
  956. If (\C2NA)
  957. {
  958. Return (CST1) /* \_PR_.CPU_.CST1 */
  959. }
  960.  
  961. If (\C3NA)
  962. {
  963. Return (CST2) /* \_PR_.CPU_.CST2 */
  964. }
  965.  
  966. If (\_SB.PCI0.LPC.EC.AC._PSR ())
  967. {
  968. Return (CST3) /* \_PR_.CPU_.CST3 */
  969. }
  970.  
  971. If (\C4NA)
  972. {
  973. Return (CST3) /* \_PR_.CPU_.CST3 */
  974. }
  975.  
  976. Return (CST4) /* \_PR_.CPU_.CST4 */
  977. }
  978. }
  979. }
  980.  
  981. Scope (\_SB)
  982. {
  983. Method (_INI, 0, NotSerialized) // _INI: Initialize
  984. {
  985. If ((\SCMP (\_OS, "Microsoft Windows") == Zero))
  986. {
  987. \W98F = 0x01
  988. }
  989. ElseIf (CondRefOf (\_OSI, Local0))
  990. {
  991. If (\_OSI ("Windows 2001.1"))
  992. {
  993. \WNTF = 0x00010000
  994. }
  995. ElseIf (\_OSI ("Windows 2001 SP1"))
  996. {
  997. \WNTF = 0x03
  998. }
  999. ElseIf (\_OSI ("Windows 2001"))
  1000. {
  1001. \WNTF = 0x02
  1002. }
  1003. }
  1004. ElseIf ((\SCMP (\_OS, "Microsoft Windows NT") == Zero))
  1005. {
  1006. \WNTF = 0x01
  1007. }
  1008. ElseIf ((\SCMP (\_OS, "Microsoft WindowsME: Millennium Edition") == Zero))
  1009. {
  1010. \WMEF = 0x01
  1011. \W98F = 0x01
  1012. }
  1013.  
  1014. If ((\_REV >= 0x02))
  1015. {
  1016. \H8DR = 0x01
  1017. }
  1018.  
  1019. \OSIF = 0x01
  1020. If (\W98F)
  1021. {
  1022. \_SB.PCI0.LPC.EC.BAT1._EJD = "_SB.PCI0"
  1023. \_SB.PCI0.LPC.EC.BAT2._EJD = "_SB.PCI0"
  1024. \_SB.PCI0.LPC.FDC.FDD0._EJD = "_SB.PCI0"
  1025. }
  1026.  
  1027. \_SB.PCI0.RID = \SRP0
  1028. \_SB.PCI0.AGP.RID = \SRAG
  1029. }
  1030.  
  1031. Device (LNKA)
  1032. {
  1033. Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
  1034. Name (_UID, 0x01) // _UID: Unique ID
  1035. Method (_STA, 0, NotSerialized) // _STA: Status
  1036. {
  1037. If (!VPIR (\_SB.PCI0.LPC.PIRA))
  1038. {
  1039. Return (0x09)
  1040. }
  1041. Else
  1042. {
  1043. Return (0x0B)
  1044. }
  1045. }
  1046.  
  1047. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  1048. {
  1049. IRQ (Level, ActiveLow, Shared, )
  1050. {3,4,5,6,7,9,10,11}
  1051. })
  1052. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  1053. {
  1054. \_SB.PCI0.LPC.PIRA |= 0x80
  1055. }
  1056.  
  1057. Name (BUFA, ResourceTemplate ()
  1058. {
  1059. IRQ (Level, ActiveLow, Shared, _Y00)
  1060. {}
  1061. })
  1062. CreateWordField (BUFA, \_SB.LNKA._Y00._INT, IRA1) // _INT: Interrupts
  1063. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  1064. {
  1065. Local0 = (\_SB.PCI0.LPC.PIRA & 0x8F)
  1066. If (VPIR (Local0))
  1067. {
  1068. IRA1 = (0x01 << Local0)
  1069. }
  1070. Else
  1071. {
  1072. IRA1 = 0x00
  1073. }
  1074.  
  1075. Return (BUFA) /* \_SB_.LNKA.BUFA */
  1076. }
  1077.  
  1078. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  1079. {
  1080. CreateWordField (Arg0, 0x01, IRA2)
  1081. FindSetRightBit (IRA2, Local0)
  1082. Local1 = (\_SB.PCI0.LPC.PIRA & 0x70)
  1083. Local1 |= Local0--
  1084. \_SB.PCI0.LPC.PIRA = Local1
  1085. }
  1086. }
  1087.  
  1088. Device (LNKB)
  1089. {
  1090. Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
  1091. Name (_UID, 0x02) // _UID: Unique ID
  1092. Method (_STA, 0, NotSerialized) // _STA: Status
  1093. {
  1094. If (!VPIR (\_SB.PCI0.LPC.PIRB))
  1095. {
  1096. Return (0x09)
  1097. }
  1098. Else
  1099. {
  1100. Return (0x0B)
  1101. }
  1102. }
  1103.  
  1104. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  1105. {
  1106. IRQ (Level, ActiveLow, Shared, )
  1107. {3,4,5,6,7,9,10,11}
  1108. })
  1109. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  1110. {
  1111. \_SB.PCI0.LPC.PIRB |= 0x80
  1112. }
  1113.  
  1114. Name (BUFB, ResourceTemplate ()
  1115. {
  1116. IRQ (Level, ActiveLow, Shared, _Y01)
  1117. {}
  1118. })
  1119. CreateWordField (BUFB, \_SB.LNKB._Y01._INT, IRB1) // _INT: Interrupts
  1120. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  1121. {
  1122. Local0 = (\_SB.PCI0.LPC.PIRB & 0x8F)
  1123. If (VPIR (Local0))
  1124. {
  1125. IRB1 = (0x01 << Local0)
  1126. }
  1127. Else
  1128. {
  1129. IRB1 = 0x00
  1130. }
  1131.  
  1132. Return (BUFB) /* \_SB_.LNKB.BUFB */
  1133. }
  1134.  
  1135. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  1136. {
  1137. CreateWordField (Arg0, 0x01, IRB2)
  1138. FindSetRightBit (IRB2, Local0)
  1139. Local1 = (\_SB.PCI0.LPC.PIRB & 0x70)
  1140. Local1 |= Local0--
  1141. \_SB.PCI0.LPC.PIRB = Local1
  1142. }
  1143. }
  1144.  
  1145. Device (LNKC)
  1146. {
  1147. Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
  1148. Name (_UID, 0x03) // _UID: Unique ID
  1149. Method (_STA, 0, NotSerialized) // _STA: Status
  1150. {
  1151. If (!VPIR (\_SB.PCI0.LPC.PIRC))
  1152. {
  1153. Return (0x09)
  1154. }
  1155. Else
  1156. {
  1157. Return (0x0B)
  1158. }
  1159. }
  1160.  
  1161. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  1162. {
  1163. IRQ (Level, ActiveLow, Shared, )
  1164. {3,4,5,6,7,9,10,11}
  1165. })
  1166. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  1167. {
  1168. \_SB.PCI0.LPC.PIRC |= 0x80
  1169. }
  1170.  
  1171. Name (BUFC, ResourceTemplate ()
  1172. {
  1173. IRQ (Level, ActiveLow, Shared, _Y02)
  1174. {}
  1175. })
  1176. CreateWordField (BUFC, \_SB.LNKC._Y02._INT, IRC1) // _INT: Interrupts
  1177. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  1178. {
  1179. Local0 = (\_SB.PCI0.LPC.PIRC & 0x8F)
  1180. If (VPIR (Local0))
  1181. {
  1182. IRC1 = (0x01 << Local0)
  1183. }
  1184. Else
  1185. {
  1186. IRC1 = 0x00
  1187. }
  1188.  
  1189. Return (BUFC) /* \_SB_.LNKC.BUFC */
  1190. }
  1191.  
  1192. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  1193. {
  1194. CreateWordField (Arg0, 0x01, IRC2)
  1195. FindSetRightBit (IRC2, Local0)
  1196. Local1 = (\_SB.PCI0.LPC.PIRC & 0x70)
  1197. Local1 |= Local0--
  1198. \_SB.PCI0.LPC.PIRC = Local1
  1199. }
  1200. }
  1201.  
  1202. Device (LNKD)
  1203. {
  1204. Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
  1205. Name (_UID, 0x04) // _UID: Unique ID
  1206. Method (_STA, 0, NotSerialized) // _STA: Status
  1207. {
  1208. If (!VPIR (\_SB.PCI0.LPC.PIRD))
  1209. {
  1210. Return (0x09)
  1211. }
  1212. Else
  1213. {
  1214. Return (0x0B)
  1215. }
  1216. }
  1217.  
  1218. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  1219. {
  1220. IRQ (Level, ActiveLow, Shared, )
  1221. {3,4,5,6,7,9,10,11}
  1222. })
  1223. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  1224. {
  1225. \_SB.PCI0.LPC.PIRD |= 0x80
  1226. }
  1227.  
  1228. Name (BUFD, ResourceTemplate ()
  1229. {
  1230. IRQ (Level, ActiveLow, Shared, _Y03)
  1231. {}
  1232. })
  1233. CreateWordField (BUFD, \_SB.LNKD._Y03._INT, IRD1) // _INT: Interrupts
  1234. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  1235. {
  1236. Local0 = (\_SB.PCI0.LPC.PIRD & 0x8F)
  1237. If (VPIR (Local0))
  1238. {
  1239. IRD1 = (0x01 << Local0)
  1240. }
  1241. Else
  1242. {
  1243. IRD1 = 0x00
  1244. }
  1245.  
  1246. Return (BUFD) /* \_SB_.LNKD.BUFD */
  1247. }
  1248.  
  1249. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  1250. {
  1251. CreateWordField (Arg0, 0x01, IRD2)
  1252. FindSetRightBit (IRD2, Local0)
  1253. Local1 = (\_SB.PCI0.LPC.PIRD & 0x70)
  1254. Local1 |= Local0--
  1255. \_SB.PCI0.LPC.PIRD = Local1
  1256. }
  1257. }
  1258.  
  1259. Device (LNKE)
  1260. {
  1261. Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
  1262. Name (_UID, 0x05) // _UID: Unique ID
  1263. Method (_STA, 0, NotSerialized) // _STA: Status
  1264. {
  1265. If (!VPIR (\_SB.PCI0.LPC.PIRE))
  1266. {
  1267. Return (0x09)
  1268. }
  1269. Else
  1270. {
  1271. Return (0x0B)
  1272. }
  1273. }
  1274.  
  1275. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  1276. {
  1277. IRQ (Level, ActiveLow, Shared, )
  1278. {3,4,5,6,7,9,10,11}
  1279. })
  1280. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  1281. {
  1282. \_SB.PCI0.LPC.PIRE |= 0x80
  1283. }
  1284.  
  1285. Name (BUFE, ResourceTemplate ()
  1286. {
  1287. IRQ (Level, ActiveLow, Shared, _Y04)
  1288. {}
  1289. })
  1290. CreateWordField (BUFE, \_SB.LNKE._Y04._INT, IRE1) // _INT: Interrupts
  1291. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  1292. {
  1293. Local0 = (\_SB.PCI0.LPC.PIRE & 0x8F)
  1294. If (VPIR (Local0))
  1295. {
  1296. IRE1 = (0x01 << Local0)
  1297. }
  1298. Else
  1299. {
  1300. IRE1 = 0x00
  1301. }
  1302.  
  1303. Return (BUFE) /* \_SB_.LNKE.BUFE */
  1304. }
  1305.  
  1306. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  1307. {
  1308. CreateWordField (Arg0, 0x01, IRE2)
  1309. FindSetRightBit (IRE2, Local0)
  1310. Local1 = (\_SB.PCI0.LPC.PIRE & 0x70)
  1311. Local1 |= Local0--
  1312. \_SB.PCI0.LPC.PIRE = Local1
  1313. }
  1314. }
  1315.  
  1316. Device (LNKF)
  1317. {
  1318. Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
  1319. Name (_UID, 0x06) // _UID: Unique ID
  1320. Method (_STA, 0, NotSerialized) // _STA: Status
  1321. {
  1322. If (!VPIR (\_SB.PCI0.LPC.PIRF))
  1323. {
  1324. Return (0x09)
  1325. }
  1326. Else
  1327. {
  1328. Return (0x0B)
  1329. }
  1330. }
  1331.  
  1332. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  1333. {
  1334. IRQ (Level, ActiveLow, Shared, )
  1335. {3,4,5,6,7,9,10,11}
  1336. })
  1337. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  1338. {
  1339. \_SB.PCI0.LPC.PIRF |= 0x80
  1340. }
  1341.  
  1342. Name (BUFF, ResourceTemplate ()
  1343. {
  1344. IRQ (Level, ActiveLow, Shared, _Y05)
  1345. {}
  1346. })
  1347. CreateWordField (BUFF, \_SB.LNKF._Y05._INT, IRF1) // _INT: Interrupts
  1348. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  1349. {
  1350. Local0 = (\_SB.PCI0.LPC.PIRF & 0x8F)
  1351. If (VPIR (Local0))
  1352. {
  1353. IRF1 = (0x01 << Local0)
  1354. }
  1355. Else
  1356. {
  1357. IRF1 = 0x00
  1358. }
  1359.  
  1360. Return (BUFF) /* \_SB_.LNKF.BUFF */
  1361. }
  1362.  
  1363. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  1364. {
  1365. CreateWordField (Arg0, 0x01, IRF2)
  1366. FindSetRightBit (IRF2, Local0)
  1367. Local1 = (\_SB.PCI0.LPC.PIRF & 0x70)
  1368. Local1 |= Local0--
  1369. \_SB.PCI0.LPC.PIRF = Local1
  1370. }
  1371. }
  1372.  
  1373. Device (LNKG)
  1374. {
  1375. Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
  1376. Name (_UID, 0x07) // _UID: Unique ID
  1377. Method (_STA, 0, NotSerialized) // _STA: Status
  1378. {
  1379. If (!VPIR (\_SB.PCI0.LPC.PIRG))
  1380. {
  1381. Return (0x09)
  1382. }
  1383. Else
  1384. {
  1385. Return (0x0B)
  1386. }
  1387. }
  1388.  
  1389. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  1390. {
  1391. IRQ (Level, ActiveLow, Shared, )
  1392. {3,4,5,6,7,9,10,11}
  1393. })
  1394. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  1395. {
  1396. \_SB.PCI0.LPC.PIRG |= 0x80
  1397. }
  1398.  
  1399. Name (BUFG, ResourceTemplate ()
  1400. {
  1401. IRQ (Level, ActiveLow, Shared, _Y06)
  1402. {}
  1403. })
  1404. CreateWordField (BUFG, \_SB.LNKG._Y06._INT, IRG1) // _INT: Interrupts
  1405. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  1406. {
  1407. Local0 = (\_SB.PCI0.LPC.PIRG & 0x8F)
  1408. If (VPIR (Local0))
  1409. {
  1410. IRG1 = (0x01 << Local0)
  1411. }
  1412. Else
  1413. {
  1414. IRG1 = 0x00
  1415. }
  1416.  
  1417. Return (BUFG) /* \_SB_.LNKG.BUFG */
  1418. }
  1419.  
  1420. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  1421. {
  1422. CreateWordField (Arg0, 0x01, IRG2)
  1423. FindSetRightBit (IRG2, Local0)
  1424. Local1 = (\_SB.PCI0.LPC.PIRG & 0x70)
  1425. Local1 |= Local0--
  1426. \_SB.PCI0.LPC.PIRG = Local1
  1427. }
  1428. }
  1429.  
  1430. Device (LNKH)
  1431. {
  1432. Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
  1433. Name (_UID, 0x08) // _UID: Unique ID
  1434. Method (_STA, 0, NotSerialized) // _STA: Status
  1435. {
  1436. If (!VPIR (\_SB.PCI0.LPC.PIRH))
  1437. {
  1438. Return (0x09)
  1439. }
  1440. Else
  1441. {
  1442. Return (0x0B)
  1443. }
  1444. }
  1445.  
  1446. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  1447. {
  1448. IRQ (Level, ActiveLow, Shared, )
  1449. {3,4,5,6,7,9,10,11}
  1450. })
  1451. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  1452. {
  1453. \_SB.PCI0.LPC.PIRH |= 0x80
  1454. }
  1455.  
  1456. Name (BUFH, ResourceTemplate ()
  1457. {
  1458. IRQ (Level, ActiveLow, Shared, _Y07)
  1459. {}
  1460. })
  1461. CreateWordField (BUFH, \_SB.LNKH._Y07._INT, IRH1) // _INT: Interrupts
  1462. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  1463. {
  1464. Local0 = (\_SB.PCI0.LPC.PIRH & 0x8F)
  1465. If (VPIR (Local0))
  1466. {
  1467. IRH1 = (0x01 << Local0)
  1468. }
  1469. Else
  1470. {
  1471. IRH1 = 0x00
  1472. }
  1473.  
  1474. Return (BUFH) /* \_SB_.LNKH.BUFH */
  1475. }
  1476.  
  1477. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  1478. {
  1479. CreateWordField (Arg0, 0x01, IRH2)
  1480. FindSetRightBit (IRH2, Local0)
  1481. Local1 = (\_SB.PCI0.LPC.PIRH & 0x70)
  1482. Local1 |= Local0--
  1483. \_SB.PCI0.LPC.PIRH = Local1
  1484. }
  1485. }
  1486.  
  1487. Method (VPIR, 1, NotSerialized)
  1488. {
  1489. Local0 = 0x01
  1490. If ((Arg0 & 0x80))
  1491. {
  1492. Local0 = 0x00
  1493. }
  1494. Else
  1495. {
  1496. Local1 = (Arg0 & 0x0F)
  1497. If ((Local1 < 0x03))
  1498. {
  1499. Local0 = 0x00
  1500. }
  1501. ElseIf (((Local1 == 0x08) || (Local1 == 0x0D)))
  1502. {
  1503. Local0 = 0x00
  1504. }
  1505. }
  1506.  
  1507. Return (Local0)
  1508. }
  1509.  
  1510. Device (MEM)
  1511. {
  1512. Name (_HID, EisaId ("PNP0C01") /* System Board */) // _HID: Hardware ID
  1513. Name (ME98, ResourceTemplate ()
  1514. {
  1515. Memory32Fixed (ReadWrite,
  1516. 0x00000000, // Address Base
  1517. 0x000A0000, // Address Length
  1518. )
  1519. Memory32Fixed (ReadOnly,
  1520. 0x000E0000, // Address Base
  1521. 0x00020000, // Address Length
  1522. )
  1523. Memory32Fixed (ReadWrite,
  1524. 0x00100000, // Address Base
  1525. 0x01EE0000, // Address Length
  1526. _Y08)
  1527. Memory32Fixed (ReadOnly,
  1528. 0xFEC00000, // Address Base
  1529. 0x01400000, // Address Length
  1530. )
  1531. })
  1532. CreateDWordField (ME98, \_SB.MEM._Y08._BAS, MEB0) // _BAS: Base Address
  1533. CreateDWordField (ME98, \_SB.MEM._Y08._LEN, MEL0) // _LEN: Length
  1534. Name (MGAP, ResourceTemplate ()
  1535. {
  1536. Memory32Fixed (ReadOnly,
  1537. 0x00000000, // Address Base
  1538. 0x00000000, // Address Length
  1539. _Y09)
  1540. })
  1541. CreateDWordField (MGAP, \_SB.MEM._Y09._BAS, MGPB) // _BAS: Base Address
  1542. CreateDWordField (MGAP, \_SB.MEM._Y09._LEN, MGPL) // _LEN: Length
  1543. Name (MEMS, ResourceTemplate ()
  1544. {
  1545. Memory32Fixed (ReadWrite,
  1546. 0x00000000, // Address Base
  1547. 0x000A0000, // Address Length
  1548. )
  1549. Memory32Fixed (ReadOnly,
  1550. 0x000C0000, // Address Base
  1551. 0x00000000, // Address Length
  1552. _Y0A)
  1553. Memory32Fixed (ReadOnly,
  1554. 0x000C4000, // Address Base
  1555. 0x00000000, // Address Length
  1556. _Y0B)
  1557. Memory32Fixed (ReadOnly,
  1558. 0x000C8000, // Address Base
  1559. 0x00000000, // Address Length
  1560. _Y0C)
  1561. Memory32Fixed (ReadOnly,
  1562. 0x000CC000, // Address Base
  1563. 0x00000000, // Address Length
  1564. _Y0D)
  1565. Memory32Fixed (ReadOnly,
  1566. 0x000D0000, // Address Base
  1567. 0x00000000, // Address Length
  1568. _Y0E)
  1569. Memory32Fixed (ReadOnly,
  1570. 0x000D4000, // Address Base
  1571. 0x00000000, // Address Length
  1572. _Y0F)
  1573. Memory32Fixed (ReadOnly,
  1574. 0x000D8000, // Address Base
  1575. 0x00000000, // Address Length
  1576. _Y10)
  1577. Memory32Fixed (ReadOnly,
  1578. 0x000DC000, // Address Base
  1579. 0x00000000, // Address Length
  1580. _Y11)
  1581. Memory32Fixed (ReadOnly,
  1582. 0x000E0000, // Address Base
  1583. 0x00000000, // Address Length
  1584. _Y12)
  1585. Memory32Fixed (ReadOnly,
  1586. 0x000E4000, // Address Base
  1587. 0x00000000, // Address Length
  1588. _Y13)
  1589. Memory32Fixed (ReadOnly,
  1590. 0x000E8000, // Address Base
  1591. 0x00000000, // Address Length
  1592. _Y14)
  1593. Memory32Fixed (ReadOnly,
  1594. 0x000EC000, // Address Base
  1595. 0x00000000, // Address Length
  1596. _Y15)
  1597. Memory32Fixed (ReadOnly,
  1598. 0x000F0000, // Address Base
  1599. 0x00010000, // Address Length
  1600. )
  1601. Memory32Fixed (ReadWrite,
  1602. 0x00100000, // Address Base
  1603. 0x01EE0000, // Address Length
  1604. _Y16)
  1605. Memory32Fixed (ReadOnly,
  1606. 0xFEC00000, // Address Base
  1607. 0x01400000, // Address Length
  1608. )
  1609. })
  1610. CreateDWordField (MEMS, \_SB.MEM._Y0A._LEN, MC0L) // _LEN: Length
  1611. CreateDWordField (MEMS, \_SB.MEM._Y0B._LEN, MC4L) // _LEN: Length
  1612. CreateDWordField (MEMS, \_SB.MEM._Y0C._LEN, MC8L) // _LEN: Length
  1613. CreateDWordField (MEMS, \_SB.MEM._Y0D._LEN, MCCL) // _LEN: Length
  1614. CreateDWordField (MEMS, \_SB.MEM._Y0E._LEN, MD0L) // _LEN: Length
  1615. CreateDWordField (MEMS, \_SB.MEM._Y0F._LEN, MD4L) // _LEN: Length
  1616. CreateDWordField (MEMS, \_SB.MEM._Y10._LEN, MD8L) // _LEN: Length
  1617. CreateDWordField (MEMS, \_SB.MEM._Y11._LEN, MDCL) // _LEN: Length
  1618. CreateDWordField (MEMS, \_SB.MEM._Y12._LEN, ME0L) // _LEN: Length
  1619. CreateDWordField (MEMS, \_SB.MEM._Y13._LEN, ME4L) // _LEN: Length
  1620. CreateDWordField (MEMS, \_SB.MEM._Y14._LEN, ME8L) // _LEN: Length
  1621. CreateDWordField (MEMS, \_SB.MEM._Y15._LEN, MECL) // _LEN: Length
  1622. CreateBitField (MEMS, \_SB.MEM._Y0A._RW, MC0W) // _RW_: Read-Write Status
  1623. CreateBitField (MEMS, \_SB.MEM._Y0B._RW, MC4W) // _RW_: Read-Write Status
  1624. CreateBitField (MEMS, \_SB.MEM._Y0C._RW, MC8W) // _RW_: Read-Write Status
  1625. CreateBitField (MEMS, \_SB.MEM._Y0D._RW, MCCW) // _RW_: Read-Write Status
  1626. CreateBitField (MEMS, \_SB.MEM._Y0E._RW, MD0W) // _RW_: Read-Write Status
  1627. CreateBitField (MEMS, \_SB.MEM._Y0F._RW, MD4W) // _RW_: Read-Write Status
  1628. CreateBitField (MEMS, \_SB.MEM._Y10._RW, MD8W) // _RW_: Read-Write Status
  1629. CreateBitField (MEMS, \_SB.MEM._Y11._RW, MDCW) // _RW_: Read-Write Status
  1630. CreateBitField (MEMS, \_SB.MEM._Y12._RW, ME0W) // _RW_: Read-Write Status
  1631. CreateBitField (MEMS, \_SB.MEM._Y13._RW, ME4W) // _RW_: Read-Write Status
  1632. CreateBitField (MEMS, \_SB.MEM._Y14._RW, ME8W) // _RW_: Read-Write Status
  1633. CreateBitField (MEMS, \_SB.MEM._Y15._RW, MECW) // _RW_: Read-Write Status
  1634. CreateDWordField (MEMS, \_SB.MEM._Y16._BAS, MEB1) // _BAS: Base Address
  1635. CreateDWordField (MEMS, \_SB.MEM._Y16._LEN, MEL1) // _LEN: Length
  1636. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  1637. {
  1638. If (\W98F)
  1639. {
  1640. MEL0 = (\MEMX - MEB0) /* \_SB_.MEM_.MEB0 */
  1641. MGPB = \GAPA
  1642. MGPL = \GAPL
  1643. If ((MGPB && MGPL))
  1644. {
  1645. Local0 = (SizeOf (ME98) - 0x02)
  1646. Name (MBF0, Buffer (Local0){})
  1647. Local0 += SizeOf (MGAP)
  1648. Name (MBF1, Buffer (Local0){})
  1649. MBF0 = ME98 /* \_SB_.MEM_.ME98 */
  1650. Concatenate (MBF0, MGAP, MBF1) /* \_SB_.MEM_._CRS.MBF1 */
  1651. Return (MBF1) /* \_SB_.MEM_._CRS.MBF1 */
  1652. }
  1653. Else
  1654. {
  1655. Return (ME98) /* \_SB_.MEM_.ME98 */
  1656. }
  1657. }
  1658.  
  1659. Local0 = (\_SB.PCI0.PAM1 & 0x03)
  1660. If (Local0)
  1661. {
  1662. MC0L = 0x4000
  1663. If ((Local0 & 0x02))
  1664. {
  1665. MC0W = 0x01
  1666. }
  1667. }
  1668.  
  1669. Local0 = (\_SB.PCI0.PAM1 & 0x30)
  1670. If (Local0)
  1671. {
  1672. MC4L = 0x4000
  1673. If ((Local0 & 0x20))
  1674. {
  1675. MC4W = 0x01
  1676. }
  1677. }
  1678.  
  1679. Local0 = (\_SB.PCI0.PAM2 & 0x03)
  1680. If (Local0)
  1681. {
  1682. MC8L = 0x4000
  1683. If ((Local0 & 0x02))
  1684. {
  1685. MC8W = 0x01
  1686. }
  1687. }
  1688.  
  1689. Local0 = (\_SB.PCI0.PAM2 & 0x30)
  1690. If (Local0)
  1691. {
  1692. MCCL = 0x4000
  1693. If ((Local0 & 0x20))
  1694. {
  1695. MCCW = 0x01
  1696. }
  1697. }
  1698.  
  1699. Local0 = (\_SB.PCI0.PAM3 & 0x03)
  1700. If (Local0)
  1701. {
  1702. MD0L = 0x4000
  1703. If ((Local0 & 0x02))
  1704. {
  1705. MD0W = 0x01
  1706. }
  1707. }
  1708.  
  1709. Local0 = (\_SB.PCI0.PAM3 & 0x30)
  1710. If (Local0)
  1711. {
  1712. MD4L = 0x4000
  1713. If ((Local0 & 0x20))
  1714. {
  1715. MD4W = 0x01
  1716. }
  1717. }
  1718.  
  1719. Local0 = (\_SB.PCI0.PAM4 & 0x03)
  1720. If (Local0)
  1721. {
  1722. MD8L = 0x4000
  1723. If ((Local0 & 0x02))
  1724. {
  1725. MD8W = 0x01
  1726. }
  1727. }
  1728.  
  1729. Local0 = (\_SB.PCI0.PAM4 & 0x30)
  1730. If (Local0)
  1731. {
  1732. MDCL = 0x4000
  1733. If ((Local0 & 0x20))
  1734. {
  1735. MDCW = 0x01
  1736. }
  1737. }
  1738.  
  1739. Local0 = (\_SB.PCI0.PAM5 & 0x03)
  1740. If (Local0)
  1741. {
  1742. ME0L = 0x4000
  1743. If ((Local0 & 0x02))
  1744. {
  1745. ME0W = 0x01
  1746. }
  1747. }
  1748.  
  1749. Local0 = (\_SB.PCI0.PAM5 & 0x30)
  1750. If (Local0)
  1751. {
  1752. ME4L = 0x4000
  1753. If ((Local0 & 0x20))
  1754. {
  1755. ME4W = 0x01
  1756. }
  1757. }
  1758.  
  1759. Local0 = (\_SB.PCI0.PAM6 & 0x03)
  1760. If (Local0)
  1761. {
  1762. ME8L = 0x4000
  1763. If ((Local0 & 0x02))
  1764. {
  1765. ME8W = 0x01
  1766. }
  1767. }
  1768.  
  1769. Local0 = (\_SB.PCI0.PAM6 & 0x30)
  1770. If (Local0)
  1771. {
  1772. MECL = 0x4000
  1773. If ((Local0 & 0x20))
  1774. {
  1775. MECW = 0x01
  1776. }
  1777. }
  1778.  
  1779. MEL1 = (\MEMX - MEB1) /* \_SB_.MEM_.MEB1 */
  1780. Return (MEMS) /* \_SB_.MEM_.MEMS */
  1781. }
  1782. }
  1783.  
  1784. Device (LID)
  1785. {
  1786. Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID
  1787. Method (_LID, 0, NotSerialized) // _LID: Lid Status
  1788. {
  1789. If (\H8DR)
  1790. {
  1791. Return (\_SB.PCI0.LPC.EC.HPLD)
  1792. }
  1793. ElseIf ((\RBEC (0x46) & 0x04))
  1794. {
  1795. Return (0x01)
  1796. }
  1797. Else
  1798. {
  1799. Return (0x00)
  1800. }
  1801. }
  1802.  
  1803. Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
  1804. {
  1805. If ((\W98F && !\WMEF))
  1806. {
  1807. Return (Package (0x02)
  1808. {
  1809. 0x18,
  1810. 0x04
  1811. })
  1812. }
  1813. Else
  1814. {
  1815. Return (Package (0x02)
  1816. {
  1817. 0x18,
  1818. 0x03
  1819. })
  1820. }
  1821. }
  1822.  
  1823. Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
  1824. {
  1825. If (\H8DR)
  1826. {
  1827. If (Arg0)
  1828. {
  1829. \_SB.PCI0.LPC.EC.HWLO = 0x01
  1830. }
  1831. Else
  1832. {
  1833. \_SB.PCI0.LPC.EC.HWLO = 0x00
  1834. }
  1835. }
  1836. ElseIf (Arg0)
  1837. {
  1838. \MBEC (0x32, 0xFF, 0x04)
  1839. }
  1840. Else
  1841. {
  1842. \MBEC (0x32, 0xFB, 0x00)
  1843. }
  1844. }
  1845. }
  1846.  
  1847. Device (SLPB)
  1848. {
  1849. Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */) // _HID: Hardware ID
  1850. Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
  1851. {
  1852. If ((\W98F && !\WMEF))
  1853. {
  1854. Return (Package (0x02)
  1855. {
  1856. 0x18,
  1857. 0x04
  1858. })
  1859. }
  1860. Else
  1861. {
  1862. Return (Package (0x02)
  1863. {
  1864. 0x18,
  1865. 0x03
  1866. })
  1867. }
  1868. }
  1869.  
  1870. Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
  1871. {
  1872. If (\H8DR)
  1873. {
  1874. If (Arg0)
  1875. {
  1876. \_SB.PCI0.LPC.EC.HWFN = 0x01
  1877. }
  1878. Else
  1879. {
  1880. \_SB.PCI0.LPC.EC.HWFN = 0x00
  1881. }
  1882. }
  1883. ElseIf (Arg0)
  1884. {
  1885. \MBEC (0x32, 0xFF, 0x10)
  1886. }
  1887. Else
  1888. {
  1889. \MBEC (0x32, 0xEF, 0x00)
  1890. }
  1891. }
  1892. }
  1893.  
  1894. Device (PCI0)
  1895. {
  1896. Device (LPC)
  1897. {
  1898. Name (_ADR, 0x001F0000) // _ADR: Address
  1899. Name (_S3D, 0x03) // _S3D: S3 Device State
  1900. Device (SIO)
  1901. {
  1902. Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
  1903. Name (_UID, 0x00) // _UID: Unique ID
  1904. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  1905. {
  1906. IO (Decode16,
  1907. 0x0010, // Range Minimum
  1908. 0x0010, // Range Maximum
  1909. 0x01, // Alignment
  1910. 0x10, // Length
  1911. )
  1912. IO (Decode16,
  1913. 0x0090, // Range Minimum
  1914. 0x0090, // Range Maximum
  1915. 0x01, // Alignment
  1916. 0x10, // Length
  1917. )
  1918. IO (Decode16,
  1919. 0x0024, // Range Minimum
  1920. 0x0024, // Range Maximum
  1921. 0x01, // Alignment
  1922. 0x02, // Length
  1923. )
  1924. IO (Decode16,
  1925. 0x0028, // Range Minimum
  1926. 0x0028, // Range Maximum
  1927. 0x01, // Alignment
  1928. 0x02, // Length
  1929. )
  1930. IO (Decode16,
  1931. 0x002C, // Range Minimum
  1932. 0x002C, // Range Maximum
  1933. 0x01, // Alignment
  1934. 0x02, // Length
  1935. )
  1936. IO (Decode16,
  1937. 0x0030, // Range Minimum
  1938. 0x0030, // Range Maximum
  1939. 0x01, // Alignment
  1940. 0x02, // Length
  1941. )
  1942. IO (Decode16,
  1943. 0x0034, // Range Minimum
  1944. 0x0034, // Range Maximum
  1945. 0x01, // Alignment
  1946. 0x02, // Length
  1947. )
  1948. IO (Decode16,
  1949. 0x0038, // Range Minimum
  1950. 0x0038, // Range Maximum
  1951. 0x01, // Alignment
  1952. 0x02, // Length
  1953. )
  1954. IO (Decode16,
  1955. 0x003C, // Range Minimum
  1956. 0x003C, // Range Maximum
  1957. 0x01, // Alignment
  1958. 0x02, // Length
  1959. )
  1960. IO (Decode16,
  1961. 0x00A4, // Range Minimum
  1962. 0x00A4, // Range Maximum
  1963. 0x01, // Alignment
  1964. 0x02, // Length
  1965. )
  1966. IO (Decode16,
  1967. 0x00A8, // Range Minimum
  1968. 0x00A8, // Range Maximum
  1969. 0x01, // Alignment
  1970. 0x02, // Length
  1971. )
  1972. IO (Decode16,
  1973. 0x00AC, // Range Minimum
  1974. 0x00AC, // Range Maximum
  1975. 0x01, // Alignment
  1976. 0x02, // Length
  1977. )
  1978. IO (Decode16,
  1979. 0x00B0, // Range Minimum
  1980. 0x00B0, // Range Maximum
  1981. 0x01, // Alignment
  1982. 0x06, // Length
  1983. )
  1984. IO (Decode16,
  1985. 0x00B8, // Range Minimum
  1986. 0x00B8, // Range Maximum
  1987. 0x01, // Alignment
  1988. 0x02, // Length
  1989. )
  1990. IO (Decode16,
  1991. 0x00BC, // Range Minimum
  1992. 0x00BC, // Range Maximum
  1993. 0x01, // Alignment
  1994. 0x02, // Length
  1995. )
  1996. IO (Decode16,
  1997. 0x004E, // Range Minimum
  1998. 0x004E, // Range Maximum
  1999. 0x01, // Alignment
  2000. 0x02, // Length
  2001. )
  2002. IO (Decode16,
  2003. 0x0050, // Range Minimum
  2004. 0x0050, // Range Maximum
  2005. 0x01, // Alignment
  2006. 0x04, // Length
  2007. )
  2008. IO (Decode16,
  2009. 0x0072, // Range Minimum
  2010. 0x0072, // Range Maximum
  2011. 0x01, // Alignment
  2012. 0x06, // Length
  2013. )
  2014. IO (Decode16,
  2015. 0x002E, // Range Minimum
  2016. 0x002E, // Range Maximum
  2017. 0x01, // Alignment
  2018. 0x02, // Length
  2019. )
  2020. IO (Decode16,
  2021. 0x1000, // Range Minimum
  2022. 0x1000, // Range Maximum
  2023. 0x01, // Alignment
  2024. 0x80, // Length
  2025. )
  2026. IO (Decode16,
  2027. 0x1180, // Range Minimum
  2028. 0x1180, // Range Maximum
  2029. 0x01, // Alignment
  2030. 0x40, // Length
  2031. )
  2032. IO (Decode16,
  2033. 0x15E0, // Range Minimum
  2034. 0x15E0, // Range Maximum
  2035. 0x01, // Alignment
  2036. 0x10, // Length
  2037. )
  2038. IO (Decode16,
  2039. 0x1600, // Range Minimum
  2040. 0x1600, // Range Maximum
  2041. 0x01, // Alignment
  2042. 0x80, // Length
  2043. )
  2044. })
  2045. }
  2046.  
  2047. OperationRegion (LPCS, PCI_Config, 0x00, 0x0100)
  2048. Field (LPCS, AnyAcc, NoLock, Preserve)
  2049. {
  2050. Offset (0x60),
  2051. PIRA, 8,
  2052. PIRB, 8,
  2053. PIRC, 8,
  2054. PIRD, 8,
  2055. SERQ, 8,
  2056. Offset (0x68),
  2057. PIRE, 8,
  2058. PIRF, 8,
  2059. PIRG, 8,
  2060. PIRH, 8,
  2061. Offset (0xA0),
  2062. , 2,
  2063. CLKR, 1,
  2064. GYEN, 1,
  2065. , 3,
  2066. C4C3, 1,
  2067. Offset (0xA2),
  2068. Offset (0xE0),
  2069. XU1A, 3,
  2070. , 1,
  2071. XU2A, 3,
  2072. Offset (0xE1),
  2073. XPA, 2,
  2074. , 2,
  2075. XFA, 1,
  2076. Offset (0xE2),
  2077. Offset (0xE4),
  2078. XG1E, 1,
  2079. , 6,
  2080. XG1A, 9,
  2081. XU1E, 1,
  2082. XU2E, 1,
  2083. XPE, 1,
  2084. XFE, 1,
  2085. Offset (0xE8),
  2086. Offset (0xEC),
  2087. XG2E, 1,
  2088. , 3,
  2089. XG2A, 12
  2090. }
  2091.  
  2092. Device (PIC)
  2093. {
  2094. Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID
  2095. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  2096. {
  2097. IO (Decode16,
  2098. 0x0020, // Range Minimum
  2099. 0x0020, // Range Maximum
  2100. 0x01, // Alignment
  2101. 0x02, // Length
  2102. )
  2103. IO (Decode16,
  2104. 0x00A0, // Range Minimum
  2105. 0x00A0, // Range Maximum
  2106. 0x01, // Alignment
  2107. 0x02, // Length
  2108. )
  2109. IO (Decode16,
  2110. 0x04D0, // Range Minimum
  2111. 0x04D0, // Range Maximum
  2112. 0x01, // Alignment
  2113. 0x02, // Length
  2114. )
  2115. IRQNoFlags ()
  2116. {2}
  2117. })
  2118. }
  2119.  
  2120. Device (TIMR)
  2121. {
  2122. Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID
  2123. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  2124. {
  2125. IO (Decode16,
  2126. 0x0040, // Range Minimum
  2127. 0x0040, // Range Maximum
  2128. 0x01, // Alignment
  2129. 0x04, // Length
  2130. )
  2131. IRQNoFlags ()
  2132. {0}
  2133. })
  2134. }
  2135.  
  2136. Device (DMAC)
  2137. {
  2138. Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */) // _HID: Hardware ID
  2139. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  2140. {
  2141. IO (Decode16,
  2142. 0x0000, // Range Minimum
  2143. 0x0000, // Range Maximum
  2144. 0x01, // Alignment
  2145. 0x10, // Length
  2146. )
  2147. IO (Decode16,
  2148. 0x0080, // Range Minimum
  2149. 0x0080, // Range Maximum
  2150. 0x01, // Alignment
  2151. 0x10, // Length
  2152. )
  2153. IO (Decode16,
  2154. 0x00C0, // Range Minimum
  2155. 0x00C0, // Range Maximum
  2156. 0x01, // Alignment
  2157. 0x20, // Length
  2158. )
  2159. DMA (Compatibility, BusMaster, Transfer8_16, )
  2160. {4}
  2161. })
  2162. }
  2163.  
  2164. Device (SPKR)
  2165. {
  2166. Name (_HID, EisaId ("PNP0800") /* Microsoft Sound System Compatible Device */) // _HID: Hardware ID
  2167. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  2168. {
  2169. IO (Decode16,
  2170. 0x0061, // Range Minimum
  2171. 0x0061, // Range Maximum
  2172. 0x01, // Alignment
  2173. 0x01, // Length
  2174. )
  2175. })
  2176. }
  2177.  
  2178. Device (FPU)
  2179. {
  2180. Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */) // _HID: Hardware ID
  2181. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  2182. {
  2183. IO (Decode16,
  2184. 0x00F0, // Range Minimum
  2185. 0x00F0, // Range Maximum
  2186. 0x01, // Alignment
  2187. 0x01, // Length
  2188. )
  2189. IRQNoFlags ()
  2190. {13}
  2191. })
  2192. }
  2193.  
  2194. Device (RTC)
  2195. {
  2196. Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID
  2197. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  2198. {
  2199. IO (Decode16,
  2200. 0x0070, // Range Minimum
  2201. 0x0070, // Range Maximum
  2202. 0x01, // Alignment
  2203. 0x02, // Length
  2204. )
  2205. IRQNoFlags ()
  2206. {8}
  2207. })
  2208. }
  2209.  
  2210. Device (KBD)
  2211. {
  2212. Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID
  2213. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  2214. {
  2215. IO (Decode16,
  2216. 0x0060, // Range Minimum
  2217. 0x0060, // Range Maximum
  2218. 0x01, // Alignment
  2219. 0x01, // Length
  2220. )
  2221. IO (Decode16,
  2222. 0x0064, // Range Minimum
  2223. 0x0064, // Range Maximum
  2224. 0x01, // Alignment
  2225. 0x01, // Length
  2226. )
  2227. IRQNoFlags ()
  2228. {1}
  2229. })
  2230. }
  2231.  
  2232. Device (MOU)
  2233. {
  2234. Name (_HID, EisaId ("IBM3780")) // _HID: Hardware ID
  2235. Name (_CID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _CID: Compatible ID
  2236. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  2237. {
  2238. IRQNoFlags ()
  2239. {12}
  2240. })
  2241. }
  2242.  
  2243. OperationRegion (IMGA, SystemIO, 0x15E0, 0x10)
  2244. Field (IMGA, ByteAcc, NoLock, Preserve)
  2245. {
  2246. Offset (0x01),
  2247. WAKR, 16,
  2248. Offset (0x0E),
  2249. GAIX, 8,
  2250. GADT, 8
  2251. }
  2252.  
  2253. IndexField (GAIX, GADT, ByteAcc, NoLock, Preserve)
  2254. {
  2255. Offset (0x06),
  2256. GDR0, 1,
  2257. GDR1, 1,
  2258. GDR2, 1,
  2259. Offset (0x07),
  2260. GDT0, 1,
  2261. GDT1, 1,
  2262. GDT2, 1,
  2263. Offset (0x0A),
  2264. , 1,
  2265. CBPW, 1,
  2266. CBSL, 1,
  2267. VDPW, 1,
  2268. PDNE, 1,
  2269. BLPL, 1,
  2270. , 1,
  2271. LEDS, 1,
  2272. GP10, 1,
  2273. GP11, 1,
  2274. GP12, 1,
  2275. , 1,
  2276. SSBY, 1,
  2277. PRFD, 1,
  2278. Offset (0x20),
  2279. BT3M, 1,
  2280. BT5M, 1,
  2281. , 1,
  2282. VAUX, 2,
  2283. , 1,
  2284. WOLE, 1,
  2285. Offset (0x21),
  2286. BUSC, 1,
  2287. BUSD, 1,
  2288. SCIR, 2,
  2289. LCKE, 1,
  2290. LCKO, 1,
  2291. DSCI, 1,
  2292. Offset (0x22),
  2293. EPWG, 1,
  2294. BUSS, 1,
  2295. , 1,
  2296. LCKS, 1,
  2297. Offset (0x23),
  2298. CSON, 1,
  2299. URST, 1,
  2300. Offset (0x7F),
  2301. GAID, 4
  2302. }
  2303.  
  2304. OperationRegion (NCFG, SystemIO, 0x2E, 0x02)
  2305. Field (NCFG, ByteAcc, NoLock, Preserve)
  2306. {
  2307. INDX, 8,
  2308. DATA, 8
  2309. }
  2310.  
  2311. IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
  2312. {
  2313. Offset (0x07),
  2314. LDN, 8,
  2315. Offset (0x20),
  2316. Offset (0x21),
  2317. Offset (0x22),
  2318. Offset (0x23),
  2319. Offset (0x24),
  2320. Offset (0x25),
  2321. , 2,
  2322. PPSE, 1,
  2323. , 4,
  2324. PNF, 1,
  2325. FDCD, 1,
  2326. PPD, 1,
  2327. SP2D, 1,
  2328. SP1D, 1,
  2329. , 1,
  2330. GPSR, 2,
  2331. Offset (0x27),
  2332. SRID, 8,
  2333. Offset (0x29),
  2334. SCCS, 2,
  2335. SCCE, 1,
  2336. VMCS, 1,
  2337. AMES, 1,
  2338. Offset (0x2A),
  2339. Offset (0x2B),
  2340. Offset (0x30),
  2341. LDA, 1,
  2342. Offset (0x31),
  2343. Offset (0x60),
  2344. IOHI, 8,
  2345. IOLW, 8,
  2346. Offset (0x70),
  2347. IRQN, 4,
  2348. IRQW, 1,
  2349. Offset (0x71),
  2350. IRQT, 1,
  2351. IRQL, 1,
  2352. Offset (0x72),
  2353. Offset (0x74),
  2354. DMA0, 3,
  2355. Offset (0x75),
  2356. DMA1, 3,
  2357. Offset (0x76)
  2358. }
  2359.  
  2360. IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
  2361. {
  2362. Offset (0xF0),
  2363. PTRS, 1,
  2364. PPMC, 1,
  2365. , 2,
  2366. PERA, 1,
  2367. PMDS, 3
  2368. }
  2369.  
  2370. IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
  2371. {
  2372. Offset (0xF0),
  2373. STRS, 1,
  2374. SPMC, 1,
  2375. SBSY, 1,
  2376. , 4,
  2377. SBSE, 1
  2378. }
  2379.  
  2380. OperationRegion (NSIO, SystemIO, 0x1620, 0x0C)
  2381. Field (NSIO, ByteAcc, NoLock, Preserve)
  2382. {
  2383. Offset (0x01),
  2384. LCDI, 4,
  2385. DKID, 4,
  2386. Offset (0x05),
  2387. PLID, 4,
  2388. C0BI, 1,
  2389. C0EI, 1,
  2390. C1BI, 1,
  2391. C1EI, 1,
  2392. Offset (0x08),
  2393. DKIE, 1,
  2394. DBIE, 1,
  2395. , 5,
  2396. CS1F, 1,
  2397. Offset (0x0A),
  2398. SMS1, 1,
  2399. , 6,
  2400. SMS0, 1,
  2401. Offset (0x0C)
  2402. }
  2403.  
  2404. Device (FDC)
  2405. {
  2406. Name (_HID, EisaId ("PNP0700")) // _HID: Hardware ID
  2407. Method (_STA, 0, NotSerialized) // _STA: Status
  2408. {
  2409. If (\LFDC)
  2410. {
  2411. If (XFE)
  2412. {
  2413. Return (0x0F)
  2414. }
  2415. Else
  2416. {
  2417. Return (0x0D)
  2418. }
  2419. }
  2420. Else
  2421. {
  2422. Return (0x00)
  2423. }
  2424. }
  2425.  
  2426. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  2427. {
  2428. XFE = 0x00
  2429. LDN = 0x00
  2430. IRQN = 0x00
  2431. LDA = 0x00
  2432. FDCD = 0x01
  2433. }
  2434.  
  2435. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  2436. {
  2437. IO (Decode16,
  2438. 0x03F0, // Range Minimum
  2439. 0x03F0, // Range Maximum
  2440. 0x01, // Alignment
  2441. 0x06, // Length
  2442. )
  2443. IO (Decode16,
  2444. 0x03F7, // Range Minimum
  2445. 0x03F7, // Range Maximum
  2446. 0x01, // Alignment
  2447. 0x01, // Length
  2448. )
  2449. IRQNoFlags ()
  2450. {6}
  2451. DMA (Compatibility, NotBusMaster, Transfer8, )
  2452. {2}
  2453. })
  2454. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  2455. {
  2456. IO (Decode16,
  2457. 0x03F0, // Range Minimum
  2458. 0x03F0, // Range Maximum
  2459. 0x01, // Alignment
  2460. 0x06, // Length
  2461. )
  2462. IO (Decode16,
  2463. 0x03F7, // Range Minimum
  2464. 0x03F7, // Range Maximum
  2465. 0x01, // Alignment
  2466. 0x01, // Length
  2467. )
  2468. IRQNoFlags ()
  2469. {6}
  2470. DMA (Compatibility, NotBusMaster, Transfer8, )
  2471. {2}
  2472. })
  2473. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  2474. {
  2475. LDN = 0x00
  2476. LDA = 0x00
  2477. IOHI = 0x03
  2478. IOLW = 0xF0
  2479. IRQN = 0x06
  2480. DMA0 = 0x02
  2481. FDCD = 0x00
  2482. LDA = 0x01
  2483. XFA = 0x00
  2484. XFE = 0x01
  2485. }
  2486.  
  2487. Method (_PSC, 0, NotSerialized) // _PSC: Power State Current
  2488. {
  2489. LDN = 0x00
  2490. If (LDA)
  2491. {
  2492. Return (0x00)
  2493. }
  2494. Else
  2495. {
  2496. Return (0x03)
  2497. }
  2498. }
  2499.  
  2500. Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
  2501. {
  2502. LDN = 0x00
  2503. LDA = 0x01
  2504. }
  2505.  
  2506. Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
  2507. {
  2508. LDN = 0x00
  2509. LDA = 0x00
  2510. }
  2511.  
  2512. Method (SLFD, 1, NotSerialized)
  2513. {
  2514. If (Arg0)
  2515. {
  2516. \MISA (0x03F3, 0xF3, 0x04)
  2517. }
  2518. Else
  2519. {
  2520. \MISA (0x03F3, 0xF3, 0x00)
  2521. }
  2522. }
  2523.  
  2524. Device (FDD0)
  2525. {
  2526. Name (_ADR, 0x00) // _ADR: Address
  2527. Name (_FDI, Package (0x10) // _FDI: Floppy Drive Information
  2528. {
  2529. 0x00,
  2530. 0x04,
  2531. 0x4F,
  2532. 0x12,
  2533. 0x01,
  2534. 0xDF,
  2535. 0x02,
  2536. 0x25,
  2537. 0x02,
  2538. 0x12,
  2539. 0x1B,
  2540. 0xFF,
  2541. 0x6C,
  2542. 0xF6,
  2543. 0x0F,
  2544. 0x05
  2545. })
  2546. }
  2547. }
  2548.  
  2549. Device (UART)
  2550. {
  2551. Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID
  2552. Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
  2553. {
  2554. 0x18,
  2555. 0x03
  2556. })
  2557. Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
  2558. {
  2559. If (\H8DR)
  2560. {
  2561. If (Arg0)
  2562. {
  2563. \_SB.PCI0.LPC.EC.HWRI = 0x01
  2564. }
  2565. Else
  2566. {
  2567. \_SB.PCI0.LPC.EC.HWRI = 0x00
  2568. }
  2569. }
  2570. ElseIf (Arg0)
  2571. {
  2572. \MBEC (0x32, 0xFF, 0x40)
  2573. }
  2574. Else
  2575. {
  2576. \MBEC (0x32, 0xBF, 0x00)
  2577. }
  2578. }
  2579.  
  2580. Method (_STA, 0, NotSerialized) // _STA: Status
  2581. {
  2582. If (XU1E)
  2583. {
  2584. Return (0x0F)
  2585. }
  2586. Else
  2587. {
  2588. Return (0x0D)
  2589. }
  2590. }
  2591.  
  2592. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  2593. {
  2594. XU1E = 0x00
  2595. LDN = 0x03
  2596. IRQN = 0x00
  2597. LDA = 0x00
  2598. SP1D = 0x01
  2599. }
  2600.  
  2601. Name (U1BF, ResourceTemplate ()
  2602. {
  2603. IO (Decode16,
  2604. 0x0000, // Range Minimum
  2605. 0x0000, // Range Maximum
  2606. 0x01, // Alignment
  2607. 0x08, // Length
  2608. _Y17)
  2609. IRQNoFlags (_Y18)
  2610. {}
  2611. })
  2612. CreateWordField (U1BF, \_SB.PCI0.LPC.UART._Y17._MIN, U1MN) // _MIN: Minimum Base Address
  2613. CreateWordField (U1BF, \_SB.PCI0.LPC.UART._Y17._MAX, U1MX) // _MAX: Maximum Base Address
  2614. CreateWordField (U1BF, \_SB.PCI0.LPC.UART._Y18._INT, U1IQ) // _INT: Interrupts
  2615. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  2616. {
  2617. LDN = 0x03
  2618. Local0 = ((IOHI << 0x08) | IOLW) /* \_SB_.PCI0.LPC_.IOLW */
  2619. U1MN = Local0
  2620. U1MX = Local0
  2621. Local0 = IRQN /* \_SB_.PCI0.LPC_.IRQN */
  2622. If (Local0)
  2623. {
  2624. U1IQ = (0x01 << IRQN) /* \_SB_.PCI0.LPC_.IRQN */
  2625. }
  2626. Else
  2627. {
  2628. U1IQ = 0x00
  2629. }
  2630.  
  2631. Return (U1BF) /* \_SB_.PCI0.LPC_.UART.U1BF */
  2632. }
  2633.  
  2634. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  2635. {
  2636. StartDependentFn (0x00, 0x00)
  2637. {
  2638. IO (Decode16,
  2639. 0x03F8, // Range Minimum
  2640. 0x03F8, // Range Maximum
  2641. 0x01, // Alignment
  2642. 0x08, // Length
  2643. )
  2644. IRQNoFlags ()
  2645. {4}
  2646. }
  2647. StartDependentFn (0x01, 0x00)
  2648. {
  2649. IO (Decode16,
  2650. 0x02F8, // Range Minimum
  2651. 0x02F8, // Range Maximum
  2652. 0x01, // Alignment
  2653. 0x08, // Length
  2654. )
  2655. IRQNoFlags ()
  2656. {3}
  2657. }
  2658. StartDependentFn (0x01, 0x00)
  2659. {
  2660. IO (Decode16,
  2661. 0x03E8, // Range Minimum
  2662. 0x03E8, // Range Maximum
  2663. 0x01, // Alignment
  2664. 0x08, // Length
  2665. )
  2666. IRQNoFlags ()
  2667. {4}
  2668. }
  2669. StartDependentFn (0x01, 0x00)
  2670. {
  2671. IO (Decode16,
  2672. 0x02E8, // Range Minimum
  2673. 0x02E8, // Range Maximum
  2674. 0x01, // Alignment
  2675. 0x08, // Length
  2676. )
  2677. IRQNoFlags ()
  2678. {3}
  2679. }
  2680. StartDependentFn (0x02, 0x00)
  2681. {
  2682. IO (Decode16,
  2683. 0x03F8, // Range Minimum
  2684. 0x03F8, // Range Maximum
  2685. 0x01, // Alignment
  2686. 0x08, // Length
  2687. )
  2688. IRQNoFlags ()
  2689. {3,5,7}
  2690. }
  2691. StartDependentFn (0x02, 0x00)
  2692. {
  2693. IO (Decode16,
  2694. 0x02F8, // Range Minimum
  2695. 0x02F8, // Range Maximum
  2696. 0x01, // Alignment
  2697. 0x08, // Length
  2698. )
  2699. IRQNoFlags ()
  2700. {4,5,7}
  2701. }
  2702. StartDependentFn (0x02, 0x00)
  2703. {
  2704. IO (Decode16,
  2705. 0x03E8, // Range Minimum
  2706. 0x03E8, // Range Maximum
  2707. 0x01, // Alignment
  2708. 0x08, // Length
  2709. )
  2710. IRQNoFlags ()
  2711. {3,5,7}
  2712. }
  2713. StartDependentFn (0x02, 0x00)
  2714. {
  2715. IO (Decode16,
  2716. 0x02E8, // Range Minimum
  2717. 0x02E8, // Range Maximum
  2718. 0x01, // Alignment
  2719. 0x08, // Length
  2720. )
  2721. IRQNoFlags ()
  2722. {4,5,7}
  2723. }
  2724. EndDependentFn ()
  2725. })
  2726. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  2727. {
  2728. CreateByteField (Arg0, 0x02, RUIL)
  2729. CreateByteField (Arg0, 0x03, RUIH)
  2730. CreateWordField (Arg0, 0x02, RUIO)
  2731. CreateWordField (Arg0, 0x09, RUIQ)
  2732. LDN = 0x03
  2733. LDA = 0x00
  2734. IOLW = RUIL /* \_SB_.PCI0.LPC_.UART._SRS.RUIL */
  2735. IOHI = RUIH /* \_SB_.PCI0.LPC_.UART._SRS.RUIH */
  2736. If (RUIQ)
  2737. {
  2738. FindSetRightBit (RUIQ, Local0)
  2739. IRQN = Local0--
  2740. }
  2741. Else
  2742. {
  2743. IRQN = 0x00
  2744. }
  2745.  
  2746. SP1D = 0x00
  2747. LDA = 0x01
  2748. If ((RUIO == 0x03F8))
  2749. {
  2750. XU1A = 0x00
  2751. }
  2752. ElseIf ((RUIO == 0x02F8))
  2753. {
  2754. XU1A = 0x01
  2755. }
  2756. ElseIf ((RUIO == 0x03E8))
  2757. {
  2758. XU1A = 0x07
  2759. }
  2760. ElseIf ((RUIO == 0x02E8))
  2761. {
  2762. XU1A = 0x05
  2763. }
  2764. Else
  2765. {
  2766. Fatal (0x02, 0x90020000, 0x01A5)
  2767. }
  2768.  
  2769. XU1E = 0x01
  2770. SSBY = 0x01
  2771. }
  2772.  
  2773. Method (_PSC, 0, NotSerialized) // _PSC: Power State Current
  2774. {
  2775. LDN = 0x03
  2776. If (LDA)
  2777. {
  2778. Return (0x00)
  2779. }
  2780. Else
  2781. {
  2782. Return (0x03)
  2783. }
  2784. }
  2785.  
  2786. Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
  2787. {
  2788. LDN = 0x03
  2789. LDA = 0x01
  2790. SSBY = 0x01
  2791. }
  2792.  
  2793. Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
  2794. {
  2795. LDN = 0x03
  2796. LDA = 0x00
  2797. SSBY = 0x00
  2798. }
  2799. }
  2800.  
  2801. Device (LPT)
  2802. {
  2803. Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID
  2804. Method (_STA, 0, NotSerialized) // _STA: Status
  2805. {
  2806. If ((\PMOD != 0x03))
  2807. {
  2808. If (XPE)
  2809. {
  2810. Return (0x0F)
  2811. }
  2812. Else
  2813. {
  2814. Return (0x0D)
  2815. }
  2816. }
  2817. Else
  2818. {
  2819. Return (0x00)
  2820. }
  2821. }
  2822.  
  2823. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  2824. {
  2825. XPE = 0x00
  2826. LDN = 0x01
  2827. IRQN = 0x00
  2828. LDA = 0x00
  2829. PPD = 0x01
  2830. }
  2831.  
  2832. Name (PPBF, ResourceTemplate ()
  2833. {
  2834. IO (Decode16,
  2835. 0x0000, // Range Minimum
  2836. 0x0000, // Range Maximum
  2837. 0x01, // Alignment
  2838. 0x00, // Length
  2839. _Y19)
  2840. IRQNoFlags (_Y1A)
  2841. {}
  2842. })
  2843. CreateWordField (PPBF, \_SB.PCI0.LPC.LPT._Y19._MIN, LPN0) // _MIN: Minimum Base Address
  2844. CreateWordField (PPBF, \_SB.PCI0.LPC.LPT._Y19._MAX, LPX0) // _MAX: Maximum Base Address
  2845. CreateByteField (PPBF, \_SB.PCI0.LPC.LPT._Y19._LEN, LPL0) // _LEN: Length
  2846. CreateWordField (PPBF, \_SB.PCI0.LPC.LPT._Y1A._INT, LPIQ) // _INT: Interrupts
  2847. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  2848. {
  2849. If ((\PMOD == 0x03))
  2850. {
  2851. Return (PPBF) /* \_SB_.PCI0.LPC_.LPT_.PPBF */
  2852. }
  2853.  
  2854. LDN = 0x01
  2855. Local0 = ((IOHI << 0x08) | IOLW) /* \_SB_.PCI0.LPC_.IOLW */
  2856. LPN0 = Local0
  2857. LPX0 = Local0
  2858. If ((Local0 == 0x03BC))
  2859. {
  2860. LPL0 = 0x03
  2861. }
  2862. Else
  2863. {
  2864. LPL0 = 0x08
  2865. }
  2866.  
  2867. Local0 = IRQN /* \_SB_.PCI0.LPC_.IRQN */
  2868. If (Local0)
  2869. {
  2870. LPIQ = (0x01 << IRQN) /* \_SB_.PCI0.LPC_.IRQN */
  2871. }
  2872. Else
  2873. {
  2874. LPIQ = 0x00
  2875. }
  2876.  
  2877. Return (PPBF) /* \_SB_.PCI0.LPC_.LPT_.PPBF */
  2878. }
  2879.  
  2880. Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
  2881. {
  2882. If (\PMOD)
  2883. {
  2884. Return (PEPP) /* \_SB_.PCI0.LPC_.LPT_.PEPP */
  2885. }
  2886. Else
  2887. {
  2888. Return (PLPT) /* \_SB_.PCI0.LPC_.LPT_.PLPT */
  2889. }
  2890. }
  2891.  
  2892. Name (PLPT, ResourceTemplate ()
  2893. {
  2894. StartDependentFnNoPri ()
  2895. {
  2896. IO (Decode16,
  2897. 0x03BC, // Range Minimum
  2898. 0x03BC, // Range Maximum
  2899. 0x01, // Alignment
  2900. 0x03, // Length
  2901. )
  2902. IRQNoFlags ()
  2903. {7}
  2904. }
  2905. StartDependentFnNoPri ()
  2906. {
  2907. IO (Decode16,
  2908. 0x0378, // Range Minimum
  2909. 0x0378, // Range Maximum
  2910. 0x01, // Alignment
  2911. 0x08, // Length
  2912. )
  2913. IRQNoFlags ()
  2914. {7}
  2915. }
  2916. StartDependentFnNoPri ()
  2917. {
  2918. IO (Decode16,
  2919. 0x0278, // Range Minimum
  2920. 0x0278, // Range Maximum
  2921. 0x01, // Alignment
  2922. 0x08, // Length
  2923. )
  2924. IRQNoFlags ()
  2925. {5}
  2926. }
  2927. StartDependentFnNoPri ()
  2928. {
  2929. IO (Decode16,
  2930. 0x03BC, // Range Minimum
  2931. 0x03BC, // Range Maximum
  2932. 0x01, // Alignment
  2933. 0x03, // Length
  2934. )
  2935. IRQNoFlags ()
  2936. {5}
  2937. }
  2938. StartDependentFnNoPri ()
  2939. {
  2940. IO (Decode16,
  2941. 0x0378, // Range Minimum
  2942. 0x0378, // Range Maximum
  2943. 0x01, // Alignment
  2944. 0x08, // Length
  2945. )
  2946. IRQNoFlags ()
  2947. {5}
  2948. }
  2949. StartDependentFnNoPri ()
  2950. {
  2951. IO (Decode16,
  2952. 0x0278, // Range Minimum
  2953. 0x0278, // Range Maximum
  2954. 0x01, // Alignment
  2955. 0x08, // Length
  2956. )
  2957. IRQNoFlags ()
  2958. {7}
  2959. }
  2960. EndDependentFn ()
  2961. })
  2962. Name (PEPP, ResourceTemplate ()
  2963. {
  2964. StartDependentFnNoPri ()
  2965. {
  2966. IO (Decode16,
  2967. 0x0378, // Range Minimum
  2968. 0x0378, // Range Maximum
  2969. 0x01, // Alignment
  2970. 0x08, // Length
  2971. )
  2972. IRQNoFlags ()
  2973. {7}
  2974. }
  2975. StartDependentFnNoPri ()
  2976. {
  2977. IO (Decode16,
  2978. 0x0278, // Range Minimum
  2979. 0x0278, // Range Maximum
  2980. 0x01, // Alignment
  2981. 0x08, // Length
  2982. )
  2983. IRQNoFlags ()
  2984. {5}
  2985. }
  2986. StartDependentFnNoPri ()
  2987. {
  2988. IO (Decode16,
  2989. 0x0378, // Range Minimum
  2990. 0x0378, // Range Maximum
  2991. 0x01, // Alignment
  2992. 0x08, // Length
  2993. )
  2994. IRQNoFlags ()
  2995. {5}
  2996. }
  2997. StartDependentFnNoPri ()
  2998. {
  2999. IO (Decode16,
  3000. 0x0278, // Range Minimum
  3001. 0x0278, // Range Maximum
  3002. 0x01, // Alignment
  3003. 0x08, // Length
  3004. )
  3005. IRQNoFlags ()
  3006. {7}
  3007. }
  3008. EndDependentFn ()
  3009. })
  3010. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  3011. {
  3012. CreateByteField (Arg0, 0x02, RLIL)
  3013. CreateByteField (Arg0, 0x03, RLIH)
  3014. CreateWordField (Arg0, 0x02, RLIO)
  3015. CreateWordField (Arg0, 0x09, RLIQ)
  3016. LDN = 0x01
  3017. LDA = 0x00
  3018. IOLW = RLIL /* \_SB_.PCI0.LPC_.LPT_._SRS.RLIL */
  3019. IOHI = RLIH /* \_SB_.PCI0.LPC_.LPT_._SRS.RLIH */
  3020. If (RLIQ)
  3021. {
  3022. FindSetRightBit (RLIQ, Local0)
  3023. IRQN = Local0--
  3024. }
  3025. Else
  3026. {
  3027. IRQN = 0x00
  3028. }
  3029.  
  3030. If ((\PMOD == 0x00))
  3031. {
  3032. If (\PDIR)
  3033. {
  3034. PMDS = 0x01
  3035. }
  3036. Else
  3037. {
  3038. PMDS = 0x00
  3039. }
  3040. }
  3041. ElseIf ((\PMOD == 0x01))
  3042. {
  3043. PMDS = 0x02
  3044. }
  3045. Else
  3046. {
  3047. PMDS = 0x03
  3048. }
  3049.  
  3050. PPD = 0x00
  3051. LDA = 0x01
  3052. If ((RLIO == 0x0378))
  3053. {
  3054. XPA = 0x00
  3055. }
  3056. ElseIf ((RLIO == 0x0278))
  3057. {
  3058. XPA = 0x01
  3059. }
  3060. ElseIf ((RLIO == 0x03BC))
  3061. {
  3062. XPA = 0x02
  3063. }
  3064. Else
  3065. {
  3066. Fatal (0x02, 0x90020000, 0x01BF)
  3067. }
  3068.  
  3069. XPE = 0x01
  3070. }
  3071.  
  3072. Method (_PSC, 0, NotSerialized) // _PSC: Power State Current
  3073. {
  3074. LDN = 0x01
  3075. If (LDA)
  3076. {
  3077. Return (0x00)
  3078. }
  3079. Else
  3080. {
  3081. Return (0x03)
  3082. }
  3083. }
  3084.  
  3085. Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
  3086. {
  3087. LDN = 0x01
  3088. LDA = 0x01
  3089. }
  3090.  
  3091. Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
  3092. {
  3093. LDN = 0x01
  3094. LDA = 0x00
  3095. }
  3096. }
  3097.  
  3098. Device (ECP)
  3099. {
  3100. Name (_HID, EisaId ("PNP0401") /* ECP Parallel Port */) // _HID: Hardware ID
  3101. Method (_STA, 0, NotSerialized) // _STA: Status
  3102. {
  3103. If ((\PMOD == 0x03))
  3104. {
  3105. If (XPE)
  3106. {
  3107. Return (0x0F)
  3108. }
  3109. Else
  3110. {
  3111. Return (0x0D)
  3112. }
  3113. }
  3114. Else
  3115. {
  3116. Return (0x00)
  3117. }
  3118. }
  3119.  
  3120. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  3121. {
  3122. XPE = 0x00
  3123. LDN = 0x01
  3124. IRQN = 0x00
  3125. LDA = 0x00
  3126. PPD = 0x01
  3127. }
  3128.  
  3129. Name (EPBF, ResourceTemplate ()
  3130. {
  3131. IO (Decode16,
  3132. 0x0000, // Range Minimum
  3133. 0x0000, // Range Maximum
  3134. 0x01, // Alignment
  3135. 0x00, // Length
  3136. _Y1B)
  3137. IO (Decode16,
  3138. 0x0000, // Range Minimum
  3139. 0x0000, // Range Maximum
  3140. 0x01, // Alignment
  3141. 0x00, // Length
  3142. _Y1C)
  3143. IRQNoFlags (_Y1D)
  3144. {}
  3145. DMA (Compatibility, NotBusMaster, Transfer8, _Y1E)
  3146. {}
  3147. })
  3148. CreateWordField (EPBF, \_SB.PCI0.LPC.ECP._Y1B._MIN, ECN0) // _MIN: Minimum Base Address
  3149. CreateWordField (EPBF, \_SB.PCI0.LPC.ECP._Y1B._MAX, ECX0) // _MAX: Maximum Base Address
  3150. CreateByteField (EPBF, \_SB.PCI0.LPC.ECP._Y1B._LEN, ECL0) // _LEN: Length
  3151. CreateWordField (EPBF, \_SB.PCI0.LPC.ECP._Y1C._MIN, ECN1) // _MIN: Minimum Base Address
  3152. CreateWordField (EPBF, \_SB.PCI0.LPC.ECP._Y1C._MAX, ECX1) // _MAX: Maximum Base Address
  3153. CreateByteField (EPBF, \_SB.PCI0.LPC.ECP._Y1C._LEN, ECL1) // _LEN: Length
  3154. CreateWordField (EPBF, \_SB.PCI0.LPC.ECP._Y1D._INT, ECIQ) // _INT: Interrupts
  3155. CreateWordField (EPBF, \_SB.PCI0.LPC.ECP._Y1E._DMA, ECDQ) // _DMA: Direct Memory Access
  3156. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  3157. {
  3158. If ((\PMOD != 0x03))
  3159. {
  3160. Return (EPBF) /* \_SB_.PCI0.LPC_.ECP_.EPBF */
  3161. }
  3162.  
  3163. LDN = 0x01
  3164. Local0 = ((IOHI << 0x08) | IOLW) /* \_SB_.PCI0.LPC_.IOLW */
  3165. ECN0 = Local0
  3166. ECX0 = Local0
  3167. ECN1 = (Local0 + 0x0400)
  3168. ECX1 = (Local0 + 0x0400)
  3169. If ((Local0 == 0x03BC))
  3170. {
  3171. ECL0 = 0x03
  3172. ECL1 = 0x03
  3173. }
  3174. Else
  3175. {
  3176. ECL0 = 0x08
  3177. ECL1 = 0x08
  3178. }
  3179.  
  3180. Local0 = IRQN /* \_SB_.PCI0.LPC_.IRQN */
  3181. If (Local0)
  3182. {
  3183. ECIQ = (0x01 << IRQN) /* \_SB_.PCI0.LPC_.IRQN */
  3184. }
  3185. Else
  3186. {
  3187. ECIQ = 0x00
  3188. }
  3189.  
  3190. Local0 = DMA0 /* \_SB_.PCI0.LPC_.DMA0 */
  3191. If ((Local0 < 0x04))
  3192. {
  3193. ECDQ = (0x01 << Local0)
  3194. }
  3195. Else
  3196. {
  3197. ECDQ = 0x00
  3198. }
  3199.  
  3200. Return (EPBF) /* \_SB_.PCI0.LPC_.ECP_.EPBF */
  3201. }
  3202.  
  3203. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  3204. {
  3205. StartDependentFnNoPri ()
  3206. {
  3207. IO (Decode16,
  3208. 0x0378, // Range Minimum
  3209. 0x0378, // Range Maximum
  3210. 0x01, // Alignment
  3211. 0x08, // Length
  3212. )
  3213. IO (Decode16,
  3214. 0x0778, // Range Minimum
  3215. 0x0778, // Range Maximum
  3216. 0x01, // Alignment
  3217. 0x08, // Length
  3218. )
  3219. IRQNoFlags ()
  3220. {7}
  3221. DMA (Compatibility, NotBusMaster, Transfer8, )
  3222. {0,1,3}
  3223. }
  3224. StartDependentFnNoPri ()
  3225. {
  3226. IO (Decode16,
  3227. 0x0278, // Range Minimum
  3228. 0x0278, // Range Maximum
  3229. 0x01, // Alignment
  3230. 0x08, // Length
  3231. )
  3232. IO (Decode16,
  3233. 0x0678, // Range Minimum
  3234. 0x0678, // Range Maximum
  3235. 0x01, // Alignment
  3236. 0x08, // Length
  3237. )
  3238. IRQNoFlags ()
  3239. {5}
  3240. DMA (Compatibility, NotBusMaster, Transfer8, )
  3241. {0,1,3}
  3242. }
  3243. StartDependentFnNoPri ()
  3244. {
  3245. IO (Decode16,
  3246. 0x03BC, // Range Minimum
  3247. 0x03BC, // Range Maximum
  3248. 0x01, // Alignment
  3249. 0x03, // Length
  3250. )
  3251. IO (Decode16,
  3252. 0x07BC, // Range Minimum
  3253. 0x07BC, // Range Maximum
  3254. 0x01, // Alignment
  3255. 0x03, // Length
  3256. )
  3257. IRQNoFlags ()
  3258. {7}
  3259. DMA (Compatibility, NotBusMaster, Transfer8, )
  3260. {0,1,3}
  3261. }
  3262. StartDependentFnNoPri ()
  3263. {
  3264. IO (Decode16,
  3265. 0x0378, // Range Minimum
  3266. 0x0378, // Range Maximum
  3267. 0x01, // Alignment
  3268. 0x08, // Length
  3269. )
  3270. IO (Decode16,
  3271. 0x0778, // Range Minimum
  3272. 0x0778, // Range Maximum
  3273. 0x01, // Alignment
  3274. 0x08, // Length
  3275. )
  3276. IRQNoFlags ()
  3277. {5}
  3278. DMA (Compatibility, NotBusMaster, Transfer8, )
  3279. {0,1,3}
  3280. }
  3281. StartDependentFnNoPri ()
  3282. {
  3283. IO (Decode16,
  3284. 0x0278, // Range Minimum
  3285. 0x0278, // Range Maximum
  3286. 0x01, // Alignment
  3287. 0x08, // Length
  3288. )
  3289. IO (Decode16,
  3290. 0x0678, // Range Minimum
  3291. 0x0678, // Range Maximum
  3292. 0x01, // Alignment
  3293. 0x08, // Length
  3294. )
  3295. IRQNoFlags ()
  3296. {7}
  3297. DMA (Compatibility, NotBusMaster, Transfer8, )
  3298. {0,1,3}
  3299. }
  3300. StartDependentFnNoPri ()
  3301. {
  3302. IO (Decode16,
  3303. 0x03BC, // Range Minimum
  3304. 0x03BC, // Range Maximum
  3305. 0x01, // Alignment
  3306. 0x03, // Length
  3307. )
  3308. IO (Decode16,
  3309. 0x07BC, // Range Minimum
  3310. 0x07BC, // Range Maximum
  3311. 0x01, // Alignment
  3312. 0x03, // Length
  3313. )
  3314. IRQNoFlags ()
  3315. {5}
  3316. DMA (Compatibility, NotBusMaster, Transfer8, )
  3317. {0,1,3}
  3318. }
  3319. EndDependentFn ()
  3320. })
  3321. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  3322. {
  3323. CreateByteField (Arg0, 0x02, RLIL)
  3324. CreateByteField (Arg0, 0x03, RLIH)
  3325. CreateWordField (Arg0, 0x02, RLIO)
  3326. CreateWordField (Arg0, 0x11, RLIQ)
  3327. CreateByteField (Arg0, 0x14, RLDQ)
  3328. LDN = 0x01
  3329. LDA = 0x00
  3330. PMDS = 0x07
  3331. PERA = 0x01
  3332. IOLW = RLIL /* \_SB_.PCI0.LPC_.ECP_._SRS.RLIL */
  3333. IOHI = RLIH /* \_SB_.PCI0.LPC_.ECP_._SRS.RLIH */
  3334. If (RLIQ)
  3335. {
  3336. FindSetRightBit (RLIQ, Local0)
  3337. IRQN = Local0--
  3338. }
  3339. Else
  3340. {
  3341. IRQN = 0x00
  3342. }
  3343.  
  3344. If ((RLDQ & 0x0F))
  3345. {
  3346. FindSetRightBit (RLDQ, Local0)
  3347. DMA0 = Local0--
  3348. }
  3349. Else
  3350. {
  3351. DMA0 = 0x04
  3352. }
  3353.  
  3354. PPD = 0x00
  3355. LDA = 0x01
  3356. If ((RLIO == 0x0378))
  3357. {
  3358. XPA = 0x00
  3359. }
  3360. ElseIf ((RLIO == 0x0278))
  3361. {
  3362. XPA = 0x01
  3363. }
  3364. ElseIf ((RLIO == 0x03BC))
  3365. {
  3366. XPA = 0x02
  3367. }
  3368. Else
  3369. {
  3370. Fatal (0x02, 0x90020000, 0x0389)
  3371. }
  3372.  
  3373. XPE = 0x01
  3374. }
  3375.  
  3376. Method (_PSC, 0, NotSerialized) // _PSC: Power State Current
  3377. {
  3378. LDN = 0x01
  3379. If (LDA)
  3380. {
  3381. Return (0x00)
  3382. }
  3383. Else
  3384. {
  3385. Return (0x03)
  3386. }
  3387. }
  3388.  
  3389. Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
  3390. {
  3391. LDN = 0x01
  3392. LDA = 0x01
  3393. }
  3394.  
  3395. Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
  3396. {
  3397. LDN = 0x01
  3398. LDA = 0x00
  3399. }
  3400. }
  3401.  
  3402. Device (FIR)
  3403. {
  3404. Name (_HID, EisaId ("IBM0071")) // _HID: Hardware ID
  3405. Name (_CID, EisaId ("PNP0511")) // _CID: Compatible ID
  3406. Method (_STA, 0, NotSerialized) // _STA: Status
  3407. {
  3408. If (XU2E)
  3409. {
  3410. Return (0x0F)
  3411. }
  3412. Else
  3413. {
  3414. Return (0x0D)
  3415. }
  3416. }
  3417.  
  3418. Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
  3419. {
  3420. XU2E = 0x00
  3421. LDN = 0x02
  3422. IRQN = 0x00
  3423. LDA = 0x00
  3424. SP2D = 0x01
  3425. }
  3426.  
  3427. Name (U2BF, ResourceTemplate ()
  3428. {
  3429. IO (Decode16,
  3430. 0x0000, // Range Minimum
  3431. 0x0000, // Range Maximum
  3432. 0x01, // Alignment
  3433. 0x08, // Length
  3434. _Y1F)
  3435. IRQNoFlags (_Y20)
  3436. {}
  3437. DMA (Compatibility, NotBusMaster, Transfer8, _Y21)
  3438. {}
  3439. })
  3440. CreateWordField (U2BF, \_SB.PCI0.LPC.FIR._Y1F._MIN, IRMN) // _MIN: Minimum Base Address
  3441. CreateWordField (U2BF, \_SB.PCI0.LPC.FIR._Y1F._MAX, IRMX) // _MAX: Maximum Base Address
  3442. CreateWordField (U2BF, \_SB.PCI0.LPC.FIR._Y20._INT, IRIQ) // _INT: Interrupts
  3443. CreateByteField (U2BF, \_SB.PCI0.LPC.FIR._Y21._DMA, IRDQ) // _DMA: Direct Memory Access
  3444. Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
  3445. {
  3446. LDN = 0x02
  3447. Local0 = ((IOHI << 0x08) | IOLW) /* \_SB_.PCI0.LPC_.IOLW */
  3448. IRMN = Local0
  3449. IRMX = Local0
  3450. Local0 = IRQN /* \_SB_.PCI0.LPC_.IRQN */
  3451. If (Local0)
  3452. {
  3453. IRIQ = (0x01 << IRQN) /* \_SB_.PCI0.LPC_.IRQN */
  3454. }
  3455. Else
  3456. {
  3457. IRIQ = 0x00
  3458. }
  3459.  
  3460. Local0 = DMA0 /* \_SB_.PCI0.LPC_.DMA0 */
  3461. If ((Local0 < 0x04))
  3462. {
  3463. IRDQ = (0x01 << Local0)
  3464. }
  3465. Else
  3466. {
  3467. IRDQ = 0x00
  3468. }
  3469.  
  3470. Return (U2BF) /* \_SB_.PCI0.LPC_.FIR_.U2BF */
  3471. }
  3472.  
  3473. Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
  3474. {
  3475. StartDependentFn (0x00, 0x00)
  3476. {
  3477. IO (Decode16,
  3478. 0x02F8, // Range Minimum
  3479. 0x02F8, // Range Maximum
  3480. 0x01, // Alignment
  3481. 0x08, // Length
  3482. )
  3483. IRQNoFlags ()
  3484. {3}
  3485. DMA (Compatibility, NotBusMaster, Transfer8, )
  3486. {0,1,3}
  3487. }
  3488. StartDependentFn (0x01, 0x00)
  3489. {
  3490. IO (Decode16,
  3491. 0x03F8, // Range Minimum
  3492. 0x03F8, // Range Maximum
  3493. 0x01, // Alignment
  3494. 0x08, // Length
  3495. )
  3496. IRQNoFlags ()
  3497. {4}
  3498. DMA (Compatibility, NotBusMaster, Transfer8, )
  3499. {0,1,3}
  3500. }
  3501. StartDependentFn (0x01, 0x00)
  3502. {
  3503. IO (Decode16,
  3504. 0x02E8, // Range Minimum
  3505. 0x02E8, // Range Maximum
  3506. 0x01, // Alignment
  3507. 0x08, // Length
  3508. )
  3509. IRQNoFlags ()
  3510. {3}
  3511. DMA (Compatibility, NotBusMaster, Transfer8, )
  3512. {0,1,3}
  3513. }
  3514. StartDependentFn (0x01, 0x00)
  3515. {
  3516. IO (Decode16,
  3517. 0x03E8, // Range Minimum
  3518. 0x03E8, // Range Maximum
  3519. 0x01, // Alignment
  3520. 0x08, // Length
  3521. )
  3522. IRQNoFlags ()
  3523. {4}
  3524. DMA (Compatibility, NotBusMaster, Transfer8, )
  3525. {0,1,3}
  3526. }
  3527. StartDependentFn (0x02, 0x00)
  3528. {
  3529. IO (Decode16,
  3530. 0x02F8, // Range Minimum
  3531. 0x02F8, // Range Maximum
  3532. 0x01, // Alignment
  3533. 0x08, // Length
  3534. )
  3535. IRQNoFlags ()
  3536. {4,5,7}
  3537. DMA (Compatibility, NotBusMaster, Transfer8, )
  3538. {0,1,3}
  3539. }
  3540. StartDependentFn (0x02, 0x00)
  3541. {
  3542. IO (Decode16,
  3543. 0x03F8, // Range Minimum
  3544. 0x03F8, // Range Maximum
  3545. 0x01, // Alignment
  3546. 0x08, // Length
  3547. )
  3548. IRQNoFlags ()
  3549. {3,5,7}
  3550. DMA (Compatibility, NotBusMaster, Transfer8, )
  3551. {0,1,3}
  3552. }
  3553. StartDependentFn (0x02, 0x00)
  3554. {
  3555. IO (Decode16,
  3556. 0x02E8, // Range Minimum
  3557. 0x02E8, // Range Maximum
  3558. 0x01, // Alignment
  3559. 0x08, // Length
  3560. )
  3561. IRQNoFlags ()
  3562. {4,5,7}
  3563. DMA (Compatibility, NotBusMaster, Transfer8, )
  3564. {0,1,3}
  3565. }
  3566. StartDependentFn (0x02, 0x00)
  3567. {
  3568. IO (Decode16,
  3569. 0x03E8, // Range Minimum
  3570. 0x03E8, // Range Maximum
  3571. 0x01, // Alignment
  3572. 0x08, // Length
  3573. )
  3574. IRQNoFlags ()
  3575. {3,5,7}
  3576. DMA (Compatibility, NotBusMaster, Transfer8, )
  3577. {0,1,3}
  3578. }
  3579. EndDependentFn ()
  3580. })
  3581. Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
  3582. {
  3583. CreateByteField (Arg0, 0x02, RIIL)
  3584. CreateByteField (Arg0, 0x03, RIIH)
  3585. CreateWordField (Arg0, 0x02, RIIO)
  3586. CreateWordField (Arg0, 0x09, RIIQ)
  3587. CreateByteField (Arg0, 0x0C, RIDQ)
  3588. LDN = 0x02
  3589. LDA = 0x00
  3590. IOLW = RIIL /* \_SB_.PCI0.LPC_.FIR_._SRS.RIIL */
  3591. IOHI = RIIH /* \_SB_.PCI0.LPC_.FIR_._SRS.RIIH */
  3592. If (RIIQ)
  3593. {
  3594. FindSetRightBit (RIIQ, Local0)
  3595. IRQN = Local0--
  3596. }
  3597. Else
  3598. {
  3599. IRQN = 0x00
  3600. }
  3601.  
  3602. If ((RIDQ & 0x0F))
  3603. {
  3604. FindSetRightBit (RIDQ, Local0)
  3605. DMA0 = Local0--
  3606. }
  3607. Else
  3608. {
  3609. DMA0 = 0x04
  3610. }
  3611.  
  3612. DMA1 = 0x04
  3613. SBSE = 0x01
  3614. SP2D = 0x00
  3615. LDA = 0x01
  3616. If ((RIIO == 0x03F8))
  3617. {
  3618. XU2A = 0x00
  3619. }
  3620. ElseIf ((RIIO == 0x02F8))
  3621. {
  3622. XU2A = 0x01
  3623. }
  3624. ElseIf ((RIIO == 0x03E8))
  3625. {
  3626. XU2A = 0x07
  3627. }
  3628. ElseIf ((RIIO == 0x02E8))
  3629. {
  3630. XU2A = 0x05
  3631. }
  3632. Else
  3633. {
  3634. Fatal (0x02, 0x90020000, 0x01A1)
  3635. }
  3636.  
  3637. XU2E = 0x01
  3638. }
  3639.  
  3640. Method (_PSC, 0, NotSerialized) // _PSC: Power State Current
  3641. {
  3642. LDN = 0x02
  3643. If (LDA)
  3644. {
  3645. Return (0x00)
  3646. }
  3647. Else
  3648. {
  3649. Return (0x03)
  3650. }
  3651. }
  3652.  
  3653. Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
  3654. {
  3655. LDN = 0x02
  3656. LDA = 0x01
  3657. }
  3658.  
  3659. Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
  3660. {
  3661. LDN = 0x02
  3662. LDA = 0x00
  3663. }
  3664. }
  3665.  
  3666. Device (EC)
  3667. {
  3668. Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID
  3669. Name (_UID, 0x00) // _UID: Unique ID
  3670. Name (_GPE, 0x1C) // _GPE: General Purpose Events
  3671. Method (_REG, 2, NotSerialized) // _REG: Region Availability
  3672. {
  3673. If ((Arg0 == 0x03))
  3674. {
  3675. \H8DR = Arg1
  3676. }
  3677. }
  3678.  
  3679. OperationRegion (ECOR, EmbeddedControl, 0x00, 0x0100)
  3680. Field (ECOR, ByteAcc, NoLock, Preserve)
  3681. {
  3682. HDBM, 1,
  3683. , 1,
  3684. , 1,
  3685. HFNE, 1,
  3686. , 1,
  3687. , 1,
  3688. HLDM, 1,
  3689. Offset (0x01),
  3690. , 1,
  3691. BTCM, 1,
  3692. , 1,
  3693. , 1,
  3694. , 1,
  3695. HBPR, 1,
  3696. BTPC, 1,
  3697. Offset (0x02),
  3698. HDUE, 1,
  3699. Offset (0x05),
  3700. HSPA, 1,
  3701. Offset (0x06),
  3702. HSUN, 8,
  3703. HSRP, 8,
  3704. Offset (0x0C),
  3705. HLCL, 8,
  3706. Offset (0x0E),
  3707. HFNS, 2,
  3708. Offset (0x10),
  3709. HAM0, 8,
  3710. HAM1, 8,
  3711. HAM2, 8,
  3712. HAM3, 8,
  3713. HAM4, 8,
  3714. HAM5, 8,
  3715. HAM6, 8,
  3716. HAM7, 8,
  3717. HAM8, 8,
  3718. HAM9, 8,
  3719. HAMA, 8,
  3720. HAMB, 8,
  3721. HAMC, 8,
  3722. HAMD, 8,
  3723. HAME, 8,
  3724. HAMF, 8,
  3725. HT00, 1,
  3726. HT01, 1,
  3727. HT02, 1,
  3728. , 1,
  3729. HT10, 1,
  3730. HT11, 1,
  3731. HT12, 1,
  3732. Offset (0x2A),
  3733. HATR, 8,
  3734. HT0H, 8,
  3735. HT0L, 8,
  3736. HT1H, 8,
  3737. HT1L, 8,
  3738. HFSP, 8,
  3739. , 6,
  3740. HMUT, 1,
  3741. Offset (0x31),
  3742. HBRV, 8,
  3743. HWPM, 1,
  3744. HWLB, 1,
  3745. HWLO, 1,
  3746. HWDK, 1,
  3747. HWFN, 1,
  3748. HWBT, 1,
  3749. HWRI, 1,
  3750. HWBU, 1,
  3751. HWLU, 1,
  3752. Offset (0x34),
  3753. , 7,
  3754. HPLO, 1,
  3755. Offset (0x36),
  3756. Offset (0x38),
  3757. HB0S, 7,
  3758. HB0A, 1,
  3759. HB1S, 7,
  3760. HB1A, 1,
  3761. HCMU, 1,
  3762. , 6,
  3763. HB1I, 1,
  3764. , 1,
  3765. KBLT, 1,
  3766. BTPW, 1,
  3767. BTDT, 1,
  3768. HUBS, 1,
  3769. BDPW, 1,
  3770. BDDT, 1,
  3771. HUBB, 1,
  3772. Offset (0x46),
  3773. , 1,
  3774. BTWK, 1,
  3775. HPLD, 1,
  3776. , 1,
  3777. HPAC, 1,
  3778. BTST, 1,
  3779. Offset (0x47),
  3780. HPBU, 1,
  3781. , 1,
  3782. HBID, 4,
  3783. HBCS, 1,
  3784. HPNF, 1,
  3785. HLID, 4,
  3786. HLBU, 1,
  3787. BDST, 1,
  3788. BDWK, 1,
  3789. Offset (0x4E),
  3790. HWAK, 16,
  3791. HMPR, 8,
  3792. HMST, 5,
  3793. , 2,
  3794. HMDN, 1,
  3795. HMAD, 8,
  3796. HMCM, 8,
  3797. Offset (0x74),
  3798. HMBC, 8,
  3799. Offset (0x78),
  3800. TMP0, 8,
  3801. TMP1, 8,
  3802. TMP2, 8,
  3803. TMP3, 8,
  3804. TMP4, 8,
  3805. TMP5, 8,
  3806. TMP6, 8,
  3807. TMP7, 8,
  3808. Offset (0x81),
  3809. HIID, 8,
  3810. Offset (0x83),
  3811. HFNI, 8,
  3812. Offset (0x88),
  3813. HDEC, 8,
  3814. HDEO, 8,
  3815. Offset (0xB0),
  3816. HDEN, 32,
  3817. HDEP, 32,
  3818. HDEM, 8,
  3819. HDES, 8
  3820. }
  3821.  
  3822. Method (_INI, 0, NotSerialized) // _INI: Initialize
  3823. {
  3824. If (\H8DR)
  3825. {
  3826. HSPA = 0x00
  3827. }
  3828. Else
  3829. {
  3830. \MBEC (0x05, 0xFE, 0x00)
  3831. }
  3832.  
  3833. BINI ()
  3834. \_SB.PCI0.LPC.EC.HKEY.BTIN ()
  3835. }
  3836.  
  3837. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  3838. {
  3839. IO (Decode16,
  3840. 0x0062, // Range Minimum
  3841. 0x0062, // Range Maximum
  3842. 0x01, // Alignment
  3843. 0x01, // Length
  3844. )
  3845. IO (Decode16,
  3846. 0x0066, // Range Minimum
  3847. 0x0066, // Range Maximum
  3848. 0x01, // Alignment
  3849. 0x01, // Length
  3850. )
  3851. })
  3852. Method (LED, 2, NotSerialized)
  3853. {
  3854. Local0 = (Arg0 | Arg1)
  3855. If (\H8DR)
  3856. {
  3857. HLCL = Local0
  3858. }
  3859. Else
  3860. {
  3861. \WBEC (0x0C, Local0)
  3862. }
  3863. }
  3864.  
  3865. Name (BAON, 0x00)
  3866. Name (WBON, 0x00)
  3867. Method (BEEP, 1, NotSerialized)
  3868. {
  3869. If ((Arg0 == 0x05))
  3870. {
  3871. WBON = 0x00
  3872. }
  3873.  
  3874. Local2 = WBON /* \_SB_.PCI0.LPC_.EC__.WBON */
  3875. If (BAON)
  3876. {
  3877. If ((Arg0 == 0x00))
  3878. {
  3879. BAON = 0x00
  3880. If (WBON)
  3881. {
  3882. Local0 = 0x03
  3883. Local1 = 0x08
  3884. }
  3885. Else
  3886. {
  3887. Local0 = 0x00
  3888. Local1 = 0x00
  3889. }
  3890. }
  3891. Else
  3892. {
  3893. Local0 = 0xFF
  3894. Local1 = 0xFF
  3895. If ((Arg0 == 0x11))
  3896. {
  3897. WBON = 0x00
  3898. }
  3899.  
  3900. If ((Arg0 == 0x10))
  3901. {
  3902. WBON = 0x01
  3903. }
  3904. }
  3905. }
  3906. Else
  3907. {
  3908. Local0 = Arg0
  3909. Local1 = 0xFF
  3910. If ((Arg0 == 0x0F))
  3911. {
  3912. Local0 = Arg0
  3913. Local1 = 0x08
  3914. BAON = 0x01
  3915. }
  3916.  
  3917. If ((Arg0 == 0x11))
  3918. {
  3919. Local0 = 0x00
  3920. Local1 = 0x00
  3921. WBON = 0x00
  3922. }
  3923.  
  3924. If ((Arg0 == 0x10))
  3925. {
  3926. Local0 = 0x03
  3927. Local1 = 0x08
  3928. WBON = 0x01
  3929. }
  3930. }
  3931.  
  3932. If ((Arg0 == 0x03))
  3933. {
  3934. WBON = 0x00
  3935. If (Local2)
  3936. {
  3937. Local0 = 0x07
  3938. If ((\SPS == 0x04))
  3939. {
  3940. Local2 = 0x00
  3941. Local0 = 0xFF
  3942. Local1 = 0xFF
  3943. }
  3944. }
  3945. }
  3946.  
  3947. If ((Arg0 == 0x07))
  3948. {
  3949. If (Local2)
  3950. {
  3951. Local2 = 0x00
  3952. Local0 = 0xFF
  3953. Local1 = 0xFF
  3954. }
  3955. }
  3956.  
  3957. If ((\H8DR && !\W98F))
  3958. {
  3959. If ((Local2 && !WBON))
  3960. {
  3961. HSRP = 0x00
  3962. HSUN = 0x00
  3963. Sleep (0x64)
  3964. }
  3965.  
  3966. If ((Local1 != 0xFF))
  3967. {
  3968. HSRP = Local1
  3969. }
  3970.  
  3971. If ((Local0 != 0xFF))
  3972. {
  3973. HSUN = Local0
  3974. }
  3975. }
  3976. Else
  3977. {
  3978. If ((Local2 && !WBON))
  3979. {
  3980. \WBEC (0x07, 0x00)
  3981. \WBEC (0x06, 0x00)
  3982. Sleep (0x64)
  3983. }
  3984.  
  3985. If ((Local1 != 0xFF))
  3986. {
  3987. \WBEC (0x07, Local1)
  3988. }
  3989.  
  3990. If ((Local0 != 0xFF))
  3991. {
  3992. \WBEC (0x06, Local0)
  3993. }
  3994. }
  3995.  
  3996. If ((Arg0 == 0x03)){}
  3997. If ((Arg0 == 0x07))
  3998. {
  3999. Sleep (0x01F4)
  4000. }
  4001. }
  4002.  
  4003. Method (EVNT, 1, NotSerialized)
  4004. {
  4005. If (\H8DR)
  4006. {
  4007. If (Arg0)
  4008. {
  4009. HAM7 |= 0x01
  4010. HAM5 |= 0x04
  4011. }
  4012. Else
  4013. {
  4014. HAM7 &= 0xFE
  4015. HAM5 &= 0xFB
  4016. }
  4017. }
  4018. ElseIf (Arg0)
  4019. {
  4020. \MBEC (0x17, 0xFF, 0x01)
  4021. \MBEC (0x15, 0xFF, 0x04)
  4022. If (\W98F)
  4023. {
  4024. \WBEC (0x18, 0xFF)
  4025. }
  4026. }
  4027. Else
  4028. {
  4029. \MBEC (0x17, 0xFE, 0x00)
  4030. \MBEC (0x15, 0xFB, 0x00)
  4031. If (\W98F)
  4032. {
  4033. \WBEC (0x18, 0x00)
  4034. }
  4035. }
  4036. }
  4037.  
  4038. Method (PNST, 1, NotSerialized)
  4039. {
  4040. If ((Arg0 && BSTA (0x02)))
  4041. {
  4042. If ((\H8DR && !\W98F))
  4043. {
  4044. HBPR = 0x01
  4045. HUBB = 0x01
  4046. }
  4047. Else
  4048. {
  4049. \MBEC (0x01, 0xFF, 0x20)
  4050. \MBEC (0x3B, 0xFF, 0x80)
  4051. }
  4052. }
  4053. ElseIf ((\H8DR && !\W98F))
  4054. {
  4055. HBPR = 0x00
  4056. HUBB = 0x00
  4057. }
  4058. Else
  4059. {
  4060. \MBEC (0x01, 0xDF, 0x00)
  4061. \MBEC (0x3B, 0x7F, 0x00)
  4062. }
  4063. }
  4064.  
  4065. PowerResource (PUBS, 0x03, 0x0000)
  4066. {
  4067. Method (_STA, 0, NotSerialized) // _STA: Status
  4068. {
  4069. If (\H8DR)
  4070. {
  4071. Local0 = HUBS /* \_SB_.PCI0.LPC_.EC__.HUBS */
  4072. }
  4073. Else
  4074. {
  4075. Local0 = (\RBEC (0x3B) & 0x10)
  4076. }
  4077.  
  4078. If (Local0)
  4079. {
  4080. Return (0x01)
  4081. }
  4082. Else
  4083. {
  4084. Return (0x00)
  4085. }
  4086. }
  4087.  
  4088. Method (_ON, 0, NotSerialized) // _ON_: Power On
  4089. {
  4090. If (\H8DR)
  4091. {
  4092. HUBS = 0x01
  4093. }
  4094. Else
  4095. {
  4096. \MBEC (0x3B, 0xFF, 0x10)
  4097. }
  4098. }
  4099.  
  4100. Method (_OFF, 0, NotSerialized) // _OFF: Power Off
  4101. {
  4102. If (\H8DR)
  4103. {
  4104. HUBS = 0x00
  4105. }
  4106. Else
  4107. {
  4108. \MBEC (0x3B, 0xEF, 0x00)
  4109. }
  4110. }
  4111. }
  4112.  
  4113. Mutex (I2CM, 0x07)
  4114. Method (I2WB, 3, NotSerialized)
  4115. {
  4116. HMAD = (Arg0 << 0x01)
  4117. HMCM = Arg1
  4118. HMBC = Arg2
  4119. HMPR = 0x0A
  4120. Return (CHKS ())
  4121. }
  4122.  
  4123. Method (CHKS, 0, NotSerialized)
  4124. {
  4125. Local0 = 0x03E8
  4126. While (HMPR)
  4127. {
  4128. Sleep (0x01)
  4129. Local0--
  4130. If (!Local0)
  4131. {
  4132. Return (0x8080)
  4133. }
  4134. }
  4135.  
  4136. If (HMDN)
  4137. {
  4138. If (HMST)
  4139. {
  4140. Return ((0x8000 | HMST))
  4141. }
  4142. Else
  4143. {
  4144. Return (Zero)
  4145. }
  4146. }
  4147. Else
  4148. {
  4149. Return (0x8081)
  4150. }
  4151. }
  4152.  
  4153. Field (ECOR, ByteAcc, Lock, Preserve)
  4154. {
  4155. Offset (0x54),
  4156. FAN0, 8,
  4157. FAN1, 8,
  4158. FAN2, 8,
  4159. FAN3, 8,
  4160. FAN4, 8,
  4161. FAN5, 8,
  4162. FAN6, 8,
  4163. FAN7, 8,
  4164. FAN8, 8,
  4165. FAN9, 8,
  4166. FANA, 8,
  4167. FANB, 8,
  4168. FANC, 8,
  4169. FAND, 8,
  4170. FANE, 8
  4171. }
  4172.  
  4173. Method (FANS, 3, NotSerialized)
  4174. {
  4175. Acquire (I2CM, 0xFFFF)
  4176. FAN0 = 0x00
  4177. FAN1 = 0x01
  4178. FAN2 = 0x01
  4179. FAN3 = 0x02
  4180. FAN4 = 0x02
  4181. FAN5 = 0x03
  4182. FAN6 = 0x03
  4183. FAN7 = 0x03
  4184. FAN8 = 0x03
  4185. FAN9 = (Arg0 & 0xFF)
  4186. FANA = ((Arg0 >> 0x08) & 0xFF)
  4187. FANB = (Arg1 & 0xFF)
  4188. FANC = ((Arg1 >> 0x08) & 0xFF)
  4189. FAND = (Arg2 & 0xFF)
  4190. FANE = ((Arg2 >> 0x08) & 0xFF)
  4191. I2WB (0x01, 0x0D, 0x0F)
  4192. Release (I2CM)
  4193. }
  4194.  
  4195. Mutex (MCPU, 0x07)
  4196. Method (_Q10, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4197. {
  4198. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x01))
  4199. {
  4200. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1001)
  4201. }
  4202. }
  4203.  
  4204. Method (_Q11, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4205. {
  4206. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x02))
  4207. {
  4208. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1002)
  4209. }
  4210. }
  4211.  
  4212. Method (_Q12, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4213. {
  4214. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1003)
  4215. }
  4216.  
  4217. Method (_Q13, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4218. {
  4219. If (\_SB.PCI0.LPC.EC.HKEY.DHKC)
  4220. {
  4221. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1004)
  4222. }
  4223. Else
  4224. {
  4225. Notify (\_SB.SLPB, 0x80) // Status Change
  4226. }
  4227. }
  4228.  
  4229. Method (_Q64, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4230. {
  4231. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x10))
  4232. {
  4233. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1005)
  4234. }
  4235. Else
  4236. {
  4237. \_SB.PCI0.LPC.EC.HKEY.DTGL ()
  4238. }
  4239. }
  4240.  
  4241. Method (_Q65, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4242. {
  4243. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x20))
  4244. {
  4245. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1006)
  4246. }
  4247. }
  4248.  
  4249. Method (_Q16, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4250. {
  4251. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x40))
  4252. {
  4253. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1007)
  4254. }
  4255. Else
  4256. {
  4257. \_SB.PCI0.AGP.VID.VSWT ()
  4258. }
  4259. }
  4260.  
  4261. Method (_Q17, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4262. {
  4263. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x80))
  4264. {
  4265. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1008)
  4266. }
  4267. ElseIf (!\WNTF)
  4268. {
  4269. VEXP ()
  4270. }
  4271. }
  4272.  
  4273. Method (_Q18, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4274. {
  4275. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x0100))
  4276. {
  4277. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1009)
  4278. }
  4279.  
  4280. Noop
  4281. }
  4282.  
  4283. Method (_Q66, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4284. {
  4285. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x0200))
  4286. {
  4287. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100A)
  4288. }
  4289. }
  4290.  
  4291. Method (_Q1A, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4292. {
  4293. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x0400))
  4294. {
  4295. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100B)
  4296. }
  4297. }
  4298.  
  4299. Method (_Q1B, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4300. {
  4301. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100C)
  4302. }
  4303.  
  4304. Method (_Q62, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4305. {
  4306. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x1000))
  4307. {
  4308. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100D)
  4309. }
  4310. }
  4311.  
  4312. Method (_Q60, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4313. {
  4314. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x2000))
  4315. {
  4316. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100E)
  4317. }
  4318. }
  4319.  
  4320. Method (_Q61, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4321. {
  4322. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x4000))
  4323. {
  4324. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100F)
  4325. }
  4326. }
  4327.  
  4328. Method (_Q1F, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4329. {
  4330. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00020000))
  4331. {
  4332. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1012)
  4333. }
  4334.  
  4335. \UCMS (0x0E)
  4336. }
  4337.  
  4338. Method (_Q67, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4339. {
  4340. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00040000))
  4341. {
  4342. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1013)
  4343. }
  4344. }
  4345.  
  4346. Method (_Q26, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4347. {
  4348. Sleep (0x01F4)
  4349. Notify (AC, 0x80) // Status Change
  4350. Notify (\_TZ.THM0, 0x80) // Thermal Status Change
  4351. If ((\WNTF >= 0x02))
  4352. {
  4353. Acquire (MCPU, 0xFFFF)
  4354. }
  4355.  
  4356. If (\SPEN)
  4357. {
  4358. If (\OSPX)
  4359. {
  4360. Notify (\_PR.CPU, 0x80) // Performance Capability Change
  4361. }
  4362. Else
  4363. {
  4364. \STEP (0x00)
  4365. }
  4366. }
  4367.  
  4368. If ((\WNTF >= 0x02))
  4369. {
  4370. Sleep (0x64)
  4371. }
  4372.  
  4373. If (\OSC4)
  4374. {
  4375. Notify (\_PR.CPU, 0x81) // C-State Change
  4376. }
  4377.  
  4378. If ((\WNTF >= 0x02))
  4379. {
  4380. Release (MCPU)
  4381. }
  4382.  
  4383. If ((\WNTF == 0x01))
  4384. {
  4385. \_SB.PCI0.LPC.C4C3 = 0x00
  4386. }
  4387. }
  4388.  
  4389. Method (_Q27, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4390. {
  4391. Sleep (0x01F4)
  4392. Notify (AC, 0x80) // Status Change
  4393. Notify (\_TZ.THM0, 0x80) // Thermal Status Change
  4394. If ((\WNTF >= 0x02))
  4395. {
  4396. Acquire (MCPU, 0xFFFF)
  4397. }
  4398.  
  4399. If (\SPEN)
  4400. {
  4401. If (\OSPX)
  4402. {
  4403. Notify (\_PR.CPU, 0x80) // Performance Capability Change
  4404. }
  4405. Else
  4406. {
  4407. \STEP (0x01)
  4408. }
  4409. }
  4410.  
  4411. If ((\WNTF >= 0x02))
  4412. {
  4413. Sleep (0x64)
  4414. }
  4415.  
  4416. If (\OSC4)
  4417. {
  4418. Notify (\_PR.CPU, 0x81) // C-State Change
  4419. }
  4420.  
  4421. If ((\WNTF >= 0x02))
  4422. {
  4423. Release (MCPU)
  4424. }
  4425.  
  4426. If ((\CWAC && !\CWAS))
  4427. {
  4428. If ((\WNTF == 0x01))
  4429. {
  4430. \_SB.PCI0.LPC.C4C3 = 0x01
  4431. }
  4432. }
  4433. }
  4434.  
  4435. Method (_Q2A, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4436. {
  4437. \_SB.PCI0.AGP.VID.VLOC (0x01)
  4438. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5002)
  4439. Notify (\_SB.LID, 0x80) // Status Change
  4440. }
  4441.  
  4442. Method (_Q2B, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4443. {
  4444. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5001)
  4445. \UCMS (0x0D)
  4446. Notify (\_SB.LID, 0x80) // Status Change
  4447. }
  4448.  
  4449. Method (_Q3D, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4450. {
  4451. }
  4452.  
  4453. Method (_Q48, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4454. {
  4455. If (\SPEN)
  4456. {
  4457. If (\OSPX)
  4458. {
  4459. Notify (\_PR.CPU, 0x80) // Performance Capability Change
  4460. }
  4461. Else
  4462. {
  4463. \STEP (0x04)
  4464. }
  4465. }
  4466. }
  4467.  
  4468. Method (_Q49, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4469. {
  4470. If (\SPEN)
  4471. {
  4472. If (\OSPX)
  4473. {
  4474. Notify (\_PR.CPU, 0x80) // Performance Capability Change
  4475. }
  4476. Else
  4477. {
  4478. \STEP (0x05)
  4479. }
  4480. }
  4481. }
  4482.  
  4483. Method (_Q7F, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4484. {
  4485. Fatal (0x01, 0x80010000, 0x0260)
  4486. }
  4487.  
  4488. Method (_Q4E, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4489. {
  4490. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6011)
  4491. }
  4492.  
  4493. Method (_Q4F, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4494. {
  4495. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6012)
  4496. }
  4497.  
  4498. Method (_Q22, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4499. {
  4500. If (HB0A)
  4501. {
  4502. Notify (BAT0, 0x80) // Status Change
  4503. }
  4504.  
  4505. If ((^BAT1.B1ST && ^BAT1.XB1S))
  4506. {
  4507. Notify (BAT1, 0x80) // Status Change
  4508. }
  4509.  
  4510. If ((^BAT2.B2ST && ^BAT2.XB2S))
  4511. {
  4512. Notify (BAT2, 0x80) // Status Change
  4513. }
  4514. }
  4515.  
  4516. Method (_Q4A, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4517. {
  4518. Notify (BAT0, 0x81) // Information Change
  4519. }
  4520.  
  4521. Method (_Q4B, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4522. {
  4523. Notify (BAT0, 0x80) // Status Change
  4524. }
  4525.  
  4526. Method (_Q4C, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4527. {
  4528. If (((BDEV == 0x10) || HBCS))
  4529. {
  4530. _Q38 ()
  4531. }
  4532. Else
  4533. {
  4534. If (^BAT2.XB2S)
  4535. {
  4536. Notify (BAT2, 0x81) // Information Change
  4537. }
  4538. ElseIf (HB1A)
  4539. {
  4540. ^BAT2.XB2S = 0x01
  4541. Notify (BAT2, 0x01) // Device Check
  4542. }
  4543.  
  4544. If (HB1A)
  4545. {
  4546. \_SB.PCI0.LPC.EC.FANS (\FS3L, \FS3M, \FS3H)
  4547. }
  4548. ElseIf ((\_SB.PCI0.LPC.EC.GSID () != 0x79004D24))
  4549. {
  4550. \_SB.PCI0.LPC.EC.FANS (\FS1L, \FS1M, \FS1H)
  4551. }
  4552. }
  4553. }
  4554.  
  4555. Method (_Q4D, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4556. {
  4557. If ((^BAT1.B1ST && ^BAT1.XB1S))
  4558. {
  4559. Notify (BAT1, 0x80) // Status Change
  4560. }
  4561.  
  4562. If ((^BAT2.B2ST && ^BAT2.XB2S))
  4563. {
  4564. Notify (BAT2, 0x80) // Status Change
  4565. }
  4566. }
  4567.  
  4568. Method (_Q24, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4569. {
  4570. Notify (BAT0, 0x80) // Status Change
  4571. }
  4572.  
  4573. Method (_Q25, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  4574. {
  4575. If ((^BAT1.B1ST && ^BAT1.XB1S))
  4576. {
  4577. Notify (BAT1, 0x80) // Status Change
  4578. }
  4579.  
  4580. If ((^BAT2.B2ST && ^BAT2.XB2S))
  4581. {
  4582. Notify (BAT2, 0x80) // Status Change
  4583. }
  4584. }
  4585.  
  4586. Field (ECOR, ByteAcc, NoLock, Preserve)
  4587. {
  4588. Offset (0xA0),
  4589. SBRC, 16,
  4590. SBFC, 16,
  4591. SBAE, 16,
  4592. SBRS, 16,
  4593. SBAC, 16,
  4594. SBVO, 16,
  4595. SBAF, 16,
  4596. SBBS, 16
  4597. }
  4598.  
  4599. Field (ECOR, ByteAcc, NoLock, Preserve)
  4600. {
  4601. Offset (0xA0),
  4602. , 15,
  4603. SBCM, 1,
  4604. SBMD, 16,
  4605. SBCC, 16
  4606. }
  4607.  
  4608. Field (ECOR, ByteAcc, NoLock, Preserve)
  4609. {
  4610. Offset (0xA0),
  4611. SBDC, 16,
  4612. SBDV, 16,
  4613. SBOM, 16,
  4614. SBSI, 16,
  4615. SBDT, 16,
  4616. SBSN, 16
  4617. }
  4618.  
  4619. Field (ECOR, ByteAcc, NoLock, Preserve)
  4620. {
  4621. Offset (0xA0),
  4622. SBCH, 32
  4623. }
  4624.  
  4625. Field (ECOR, ByteAcc, NoLock, Preserve)
  4626. {
  4627. Offset (0xA0),
  4628. SBMN, 128
  4629. }
  4630.  
  4631. Field (ECOR, ByteAcc, NoLock, Preserve)
  4632. {
  4633. Offset (0xA0),
  4634. SBDN, 128
  4635. }
  4636.  
  4637. Mutex (BATM, 0x07)
  4638. Method (GBIF, 3, NotSerialized)
  4639. {
  4640. Acquire (BATM, 0xFFFF)
  4641. If (Arg2)
  4642. {
  4643. HIID = (Arg0 | 0x01)
  4644. Local7 = SBCM /* \_SB_.PCI0.LPC_.EC__.SBCM */
  4645. Arg1 [0x00] = (Local7 ^ 0x01)
  4646. HIID = Arg0
  4647. If (Local7)
  4648. {
  4649. Arg1 [0x02] = (SBFC * 0x0A)
  4650. }
  4651. Else
  4652. {
  4653. Arg1 [0x02] = SBFC /* \_SB_.PCI0.LPC_.EC__.SBFC */
  4654. }
  4655.  
  4656. HIID = (Arg0 | 0x02)
  4657. If (Local7)
  4658. {
  4659. Local0 = (SBDC * 0x0A)
  4660. }
  4661. Else
  4662. {
  4663. Local0 = SBDC /* \_SB_.PCI0.LPC_.EC__.SBDC */
  4664. }
  4665.  
  4666. Arg1 [0x01] = Local0
  4667. Divide (Local0, 0x14, Local1, Arg1 [0x05])
  4668. Divide (Local0, 0x64, Local1, Arg1 [0x06])
  4669. Arg1 [0x04] = SBDV /* \_SB_.PCI0.LPC_.EC__.SBDV */
  4670. Local0 = SBSN /* \_SB_.PCI0.LPC_.EC__.SBSN */
  4671. Name (SERN, Buffer (0x06)
  4672. {
  4673. " "
  4674. })
  4675. Local2 = 0x04
  4676. While (Local0)
  4677. {
  4678. Divide (Local0, 0x0A, Local1, Local0)
  4679. SERN [Local2] = (Local1 + 0x30)
  4680. Local2--
  4681. }
  4682.  
  4683. Arg1 [0x0A] = SERN /* \_SB_.PCI0.LPC_.EC__.GBIF.SERN */
  4684. HIID = (Arg0 | 0x06)
  4685. Arg1 [0x09] = SBDN /* \_SB_.PCI0.LPC_.EC__.SBDN */
  4686. HIID = (Arg0 | 0x04)
  4687. Name (BTYP, Buffer (0x05)
  4688. {
  4689. 0x00, 0x00, 0x00, 0x00, 0x00 // .....
  4690. })
  4691. BTYP = SBCH /* \_SB_.PCI0.LPC_.EC__.SBCH */
  4692. Arg1 [0x0B] = BTYP /* \_SB_.PCI0.LPC_.EC__.GBIF.BTYP */
  4693. HIID = (Arg0 | 0x05)
  4694. Arg1 [0x0C] = SBMN /* \_SB_.PCI0.LPC_.EC__.SBMN */
  4695. }
  4696. Else
  4697. {
  4698. Arg1 [0x01] = 0xFFFFFFFF
  4699. Arg1 [0x05] = 0x00
  4700. Arg1 [0x06] = 0x00
  4701. Arg1 [0x02] = 0xFFFFFFFF
  4702. }
  4703.  
  4704. Release (BATM)
  4705. Return (Arg1)
  4706. }
  4707.  
  4708. Method (GBST, 4, NotSerialized)
  4709. {
  4710. Acquire (BATM, 0xFFFF)
  4711. If ((Arg1 & 0x20))
  4712. {
  4713. Local0 = 0x02
  4714. }
  4715. ElseIf ((Arg1 & 0x40))
  4716. {
  4717. Local0 = 0x01
  4718. }
  4719. Else
  4720. {
  4721. Local0 = 0x00
  4722. }
  4723.  
  4724. If ((Arg1 & 0x0F)){}
  4725. Else
  4726. {
  4727. Local0 |= 0x04
  4728. }
  4729.  
  4730. If (((Arg1 & 0x0F) == 0x0F))
  4731. {
  4732. Local0 = 0x04
  4733. Local1 = 0x00
  4734. Local2 = 0x00
  4735. Local3 = 0x00
  4736. }
  4737. Else
  4738. {
  4739. HIID = Arg0
  4740. Local3 = SBVO /* \_SB_.PCI0.LPC_.EC__.SBVO */
  4741. If (Arg2)
  4742. {
  4743. Local2 = (SBRC * 0x0A)
  4744. }
  4745. Else
  4746. {
  4747. Local2 = SBRC /* \_SB_.PCI0.LPC_.EC__.SBRC */
  4748. }
  4749.  
  4750. Local1 = SBAC /* \_SB_.PCI0.LPC_.EC__.SBAC */
  4751. If ((Local1 >= 0x8000))
  4752. {
  4753. If ((Local0 & 0x01))
  4754. {
  4755. Local1 = (0x00010000 - Local1)
  4756. }
  4757. Else
  4758. {
  4759. Local1 = 0x00
  4760. }
  4761. }
  4762. ElseIf (!(Local0 & 0x02))
  4763. {
  4764. Local1 = 0x00
  4765. }
  4766.  
  4767. If (Arg2)
  4768. {
  4769. Local1 *= Local3
  4770. Divide (Local1, 0x03E8, Local7, Local1)
  4771. }
  4772. }
  4773.  
  4774. Arg3 [0x00] = Local0
  4775. Arg3 [0x01] = Local1
  4776. Arg3 [0x02] = Local2
  4777. Arg3 [0x03] = Local3
  4778. Release (BATM)
  4779. Return (Arg3)
  4780. }
  4781.  
  4782. Device (BAT0)
  4783. {
  4784. Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID
  4785. Name (_UID, 0x00) // _UID: Unique ID
  4786. Name (_PCL, Package (0x01) // _PCL: Power Consumer List
  4787. {
  4788. \_SB
  4789. })
  4790. Name (B0ST, 0x00)
  4791. Name (BT0I, Package (0x0D)
  4792. {
  4793. 0x00,
  4794. 0xFFFFFFFF,
  4795. 0xFFFFFFFF,
  4796. 0x01,
  4797. 0x2A30,
  4798. 0x00,
  4799. 0x00,
  4800. 0x01,
  4801. 0x01,
  4802. "",
  4803. "",
  4804. "",
  4805. ""
  4806. })
  4807. Name (BT0P, Package (0x04){})
  4808. Method (_STA, 0, NotSerialized) // _STA: Status
  4809. {
  4810. If (\H8DR)
  4811. {
  4812. B0ST = HB0A /* \_SB_.PCI0.LPC_.EC__.HB0A */
  4813. }
  4814. ElseIf ((\RBEC (0x38) & 0x80))
  4815. {
  4816. B0ST = 0x01
  4817. }
  4818. Else
  4819. {
  4820. B0ST = 0x00
  4821. }
  4822.  
  4823. If (B0ST)
  4824. {
  4825. Return (0x1F)
  4826. }
  4827. Else
  4828. {
  4829. Return (0x0F)
  4830. }
  4831. }
  4832.  
  4833. Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
  4834. {
  4835. Local7 = 0x00
  4836. Local6 = 0x0A
  4837. While ((!Local7 && Local6))
  4838. {
  4839. If (HB0A)
  4840. {
  4841. If (((HB0S & 0x0F) == 0x0F))
  4842. {
  4843. Sleep (0x03E8)
  4844. Local6--
  4845. }
  4846. Else
  4847. {
  4848. Local7 = 0x01
  4849. }
  4850. }
  4851. Else
  4852. {
  4853. Local6 = 0x00
  4854. }
  4855. }
  4856.  
  4857. Return (GBIF (0x00, BT0I, Local7))
  4858. }
  4859.  
  4860. Method (_BST, 0, NotSerialized) // _BST: Battery Status
  4861. {
  4862. Local0 = (DerefOf (BT0I [0x00]) ^ 0x01)
  4863. Return (GBST (0x00, HB0S, Local0, BT0P))
  4864. }
  4865.  
  4866. Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point
  4867. {
  4868. HAM4 &= 0xEF
  4869. If (Arg0)
  4870. {
  4871. Local1 = Arg0
  4872. If (!DerefOf (BT0I [0x00]))
  4873. {
  4874. Divide (Local1, 0x0A, Local0, Local1)
  4875. }
  4876.  
  4877. HT0L = (Local1 & 0xFF)
  4878. HT0H = ((Local1 >> 0x08) & 0xFF)
  4879. HAM4 |= 0x10
  4880. }
  4881. }
  4882. }
  4883.  
  4884. Device (BAT1)
  4885. {
  4886. Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID
  4887. Name (_UID, 0x02) // _UID: Unique ID
  4888. Name (_PCL, Package (0x01) // _PCL: Power Consumer List
  4889. {
  4890. \_SB
  4891. })
  4892. Name (B1ST, 0x00)
  4893. Name (XB1S, 0x01)
  4894. Name (BT1I, Package (0x0D)
  4895. {
  4896. 0x00,
  4897. 0xFFFFFFFF,
  4898. 0xFFFFFFFF,
  4899. 0x01,
  4900. 0x2A30,
  4901. 0x00,
  4902. 0x00,
  4903. 0x01,
  4904. 0x01,
  4905. "",
  4906. "",
  4907. "",
  4908. ""
  4909. })
  4910. Name (BT1P, Package (0x04)
  4911. {
  4912. 0x00,
  4913. 0x00,
  4914. 0x00,
  4915. 0x00
  4916. })
  4917. Method (_STA, 0, NotSerialized) // _STA: Status
  4918. {
  4919. B1ST = 0x00
  4920. If (\H8DR)
  4921. {
  4922. If ((\WNTF && HBCS))
  4923. {
  4924. B1ST = HB1A /* \_SB_.PCI0.LPC_.EC__.HB1A */
  4925. }
  4926. }
  4927. ElseIf ((\WNTF && (\RBEC (0x47) & 0x40)))
  4928. {
  4929. If ((\RBEC (0x39) & 0x80))
  4930. {
  4931. B1ST = 0x01
  4932. }
  4933. }
  4934.  
  4935. If (B1ST)
  4936. {
  4937. If (XB1S)
  4938. {
  4939. Return (0x1F)
  4940. }
  4941. Else
  4942. {
  4943. Return (0x00)
  4944. }
  4945. }
  4946. Else
  4947. {
  4948. Return (0x00)
  4949. }
  4950. }
  4951.  
  4952. Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
  4953. {
  4954. If (!B1ST)
  4955. {
  4956. Return (BT1I) /* \_SB_.PCI0.LPC_.EC__.BAT1.BT1I */
  4957. }
  4958.  
  4959. Local7 = 0x00
  4960. Local6 = 0x0A
  4961. While ((!Local7 && Local6))
  4962. {
  4963. If (HB1A)
  4964. {
  4965. If (((HB1S & 0x0F) == 0x0F))
  4966. {
  4967. Sleep (0x03E8)
  4968. Local6--
  4969. }
  4970. Else
  4971. {
  4972. Local7 = 0x01
  4973. }
  4974. }
  4975. Else
  4976. {
  4977. Local6 = 0x00
  4978. }
  4979. }
  4980.  
  4981. Return (GBIF (0x10, BT1I, Local7))
  4982. }
  4983.  
  4984. Method (_BST, 0, NotSerialized) // _BST: Battery Status
  4985. {
  4986. If (!B1ST)
  4987. {
  4988. Return (BT1P) /* \_SB_.PCI0.LPC_.EC__.BAT1.BT1P */
  4989. }
  4990.  
  4991. Local0 = (DerefOf (BT1I [0x00]) ^ 0x01)
  4992. Return (GBST (0x10, HB1S, Local0, BT1P))
  4993. }
  4994.  
  4995. Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point
  4996. {
  4997. If (B1ST)
  4998. {
  4999. HAM4 &= 0xDF
  5000. If (Arg0)
  5001. {
  5002. Local1 = Arg0
  5003. If (!DerefOf (BT1I [0x00]))
  5004. {
  5005. Divide (Local1, 0x0A, Local0, Local1)
  5006. }
  5007.  
  5008. HT1L = (Local1 & 0xFF)
  5009. HT1H = ((Local1 >> 0x08) & 0xFF)
  5010. HAM4 |= 0x20
  5011. }
  5012. }
  5013. }
  5014. }
  5015.  
  5016. Device (BAT2)
  5017. {
  5018. Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID
  5019. Name (_UID, 0x01) // _UID: Unique ID
  5020. Name (_PCL, Package (0x01) // _PCL: Power Consumer List
  5021. {
  5022. \_SB
  5023. })
  5024. Name (B2ST, 0x00)
  5025. Name (XB2S, 0x01)
  5026. Name (BT2I, Package (0x0D)
  5027. {
  5028. 0x00,
  5029. 0xFFFFFFFF,
  5030. 0xFFFFFFFF,
  5031. 0x01,
  5032. 0x2A30,
  5033. 0x00,
  5034. 0x00,
  5035. 0x01,
  5036. 0x01,
  5037. "",
  5038. "",
  5039. "",
  5040. ""
  5041. })
  5042. Name (BT2P, Package (0x04)
  5043. {
  5044. 0x00,
  5045. 0x00,
  5046. 0x00,
  5047. 0x00
  5048. })
  5049. Method (_INI, 0, NotSerialized) // _INI: Initialize
  5050. {
  5051. If ((\WNTF && (\_SB.PCI0.LPC.EC.GSID () != 0x79004D24)))
  5052. {
  5053. If (\H8DR)
  5054. {
  5055. Local0 = HB1A /* \_SB_.PCI0.LPC_.EC__.HB1A */
  5056. }
  5057. Else
  5058. {
  5059. Local0 = (\RBEC (0x39) & 0x80)
  5060. }
  5061.  
  5062. If (!Local0)
  5063. {
  5064. XB2S = 0x00
  5065. }
  5066. }
  5067. }
  5068.  
  5069. Method (_STA, 0, NotSerialized) // _STA: Status
  5070. {
  5071. If (\H8DR)
  5072. {
  5073. If ((\WNTF && HBCS))
  5074. {
  5075. B2ST = 0x00
  5076. }
  5077. Else
  5078. {
  5079. B2ST = HB1A /* \_SB_.PCI0.LPC_.EC__.HB1A */
  5080. }
  5081. }
  5082. ElseIf ((\WNTF && (\RBEC (0x39) & 0x80)))
  5083. {
  5084. B2ST = 0x00
  5085. }
  5086. ElseIf ((\RBEC (0x39) & 0x80))
  5087. {
  5088. B2ST = 0x01
  5089. }
  5090. Else
  5091. {
  5092. B2ST = 0x00
  5093. }
  5094.  
  5095. If (B2ST)
  5096. {
  5097. If (XB2S)
  5098. {
  5099. Return (0x1F)
  5100. }
  5101. Else
  5102. {
  5103. Return (0x00)
  5104. }
  5105. }
  5106. ElseIf (XB2S)
  5107. {
  5108. Return (0x0F)
  5109. }
  5110. Else
  5111. {
  5112. Return (0x00)
  5113. }
  5114. }
  5115.  
  5116. Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
  5117. {
  5118. If (!B2ST)
  5119. {
  5120. Return (BT2I) /* \_SB_.PCI0.LPC_.EC__.BAT2.BT2I */
  5121. }
  5122.  
  5123. Local7 = 0x00
  5124. Local6 = 0x0A
  5125. While ((!Local7 && Local6))
  5126. {
  5127. If (HB1A)
  5128. {
  5129. If (((HB1S & 0x0F) == 0x0F))
  5130. {
  5131. Sleep (0x03E8)
  5132. Local6--
  5133. }
  5134. Else
  5135. {
  5136. Local7 = 0x01
  5137. }
  5138. }
  5139. Else
  5140. {
  5141. Local6 = 0x00
  5142. }
  5143. }
  5144.  
  5145. Return (GBIF (0x10, BT2I, Local7))
  5146. }
  5147.  
  5148. Method (_BST, 0, NotSerialized) // _BST: Battery Status
  5149. {
  5150. If (!B2ST)
  5151. {
  5152. Return (BT2P) /* \_SB_.PCI0.LPC_.EC__.BAT2.BT2P */
  5153. }
  5154.  
  5155. Local0 = (DerefOf (BT2I [0x00]) ^ 0x01)
  5156. Return (GBST (0x10, HB1S, Local0, BT2P))
  5157. }
  5158.  
  5159. Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point
  5160. {
  5161. If (B2ST)
  5162. {
  5163. HAM4 &= 0xDF
  5164. If (Arg0)
  5165. {
  5166. Local1 = Arg0
  5167. If (!DerefOf (BT2I [0x00]))
  5168. {
  5169. Divide (Local1, 0x0A, Local0, Local1)
  5170. }
  5171.  
  5172. HT1L = (Local1 & 0xFF)
  5173. HT1H = ((Local1 >> 0x08) & 0xFF)
  5174. HAM4 |= 0x20
  5175. }
  5176. }
  5177. }
  5178. }
  5179.  
  5180. Device (AC)
  5181. {
  5182. Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID
  5183. Name (_UID, 0x00) // _UID: Unique ID
  5184. Name (_PCL, Package (0x01) // _PCL: Power Consumer List
  5185. {
  5186. \_SB
  5187. })
  5188. Method (_PSR, 0, NotSerialized) // _PSR: Power Source
  5189. {
  5190. Return (HPAC) /* \_SB_.PCI0.LPC_.EC__.HPAC */
  5191. }
  5192.  
  5193. Method (_STA, 0, NotSerialized) // _STA: Status
  5194. {
  5195. Return (0x0F)
  5196. }
  5197. }
  5198.  
  5199. Device (HKEY)
  5200. {
  5201. Name (_HID, EisaId ("IBM0068")) // _HID: Hardware ID
  5202. Method (_STA, 0, NotSerialized) // _STA: Status
  5203. {
  5204. Return (0x0F)
  5205. }
  5206.  
  5207. Method (MHKV, 0, NotSerialized)
  5208. {
  5209. Return (0x0100)
  5210. }
  5211.  
  5212. Name (DHKC, 0x00)
  5213. Name (DHKB, 0x01)
  5214. Mutex (XDHK, 0x07)
  5215. Name (DHKH, 0x00)
  5216. Name (DHKW, 0x00)
  5217. Name (DHKS, 0x00)
  5218. Name (DHKD, 0x00)
  5219. Name (DHKN, 0x080C)
  5220. Name (DHKT, 0x00)
  5221. Method (MHKA, 0, NotSerialized)
  5222. {
  5223. Return (0x00FFFFFF)
  5224. }
  5225.  
  5226. Method (MHKN, 0, NotSerialized)
  5227. {
  5228. Return (DHKN) /* \_SB_.PCI0.LPC_.EC__.HKEY.DHKN */
  5229. }
  5230.  
  5231. Method (MHKK, 1, NotSerialized)
  5232. {
  5233. If (DHKC)
  5234. {
  5235. Return ((DHKN & Arg0))
  5236. }
  5237. Else
  5238. {
  5239. Return (Zero)
  5240. }
  5241. }
  5242.  
  5243. Method (MHKM, 2, NotSerialized)
  5244. {
  5245. Acquire (XDHK, 0xFFFF)
  5246. If ((Arg0 > 0x20))
  5247. {
  5248. Noop
  5249. }
  5250. Else
  5251. {
  5252. Local0 = (One << Arg0--)
  5253. If ((Local0 & 0x00FFFFFF))
  5254. {
  5255. If (Arg1)
  5256. {
  5257. DHKN |= Local0 /* \_SB_.PCI0.LPC_.EC__.HKEY.DHKN */
  5258. }
  5259. Else
  5260. {
  5261. DHKN &= (Local0 ^ 0xFFFFFFFF)
  5262. }
  5263. }
  5264. Else
  5265. {
  5266. Noop
  5267. }
  5268. }
  5269.  
  5270. Release (XDHK)
  5271. }
  5272.  
  5273. Method (MHKS, 0, NotSerialized)
  5274. {
  5275. Notify (\_SB.SLPB, 0x80) // Status Change
  5276. }
  5277.  
  5278. Method (MHKC, 1, NotSerialized)
  5279. {
  5280. DHKC = Arg0
  5281. }
  5282.  
  5283. Method (MHKP, 0, NotSerialized)
  5284. {
  5285. Acquire (XDHK, 0xFFFF)
  5286. If (DHKW)
  5287. {
  5288. Local1 = DHKW /* \_SB_.PCI0.LPC_.EC__.HKEY.DHKW */
  5289. DHKW = Zero
  5290. }
  5291. ElseIf (DHKD)
  5292. {
  5293. Local1 = DHKD /* \_SB_.PCI0.LPC_.EC__.HKEY.DHKD */
  5294. DHKD = Zero
  5295. }
  5296. ElseIf (DHKS)
  5297. {
  5298. Local1 = DHKS /* \_SB_.PCI0.LPC_.EC__.HKEY.DHKS */
  5299. DHKS = Zero
  5300. }
  5301. ElseIf (DHKT)
  5302. {
  5303. Local1 = DHKT /* \_SB_.PCI0.LPC_.EC__.HKEY.DHKT */
  5304. DHKT = Zero
  5305. }
  5306. Else
  5307. {
  5308. Local1 = DHKH /* \_SB_.PCI0.LPC_.EC__.HKEY.DHKH */
  5309. DHKH = Zero
  5310. }
  5311.  
  5312. Release (XDHK)
  5313. Return (Local1)
  5314. }
  5315.  
  5316. Method (MHKE, 1, NotSerialized)
  5317. {
  5318. DHKB = Arg0
  5319. Acquire (XDHK, 0xFFFF)
  5320. DHKH = Zero
  5321. DHKW = Zero
  5322. DHKS = Zero
  5323. DHKD = Zero
  5324. DHKT = Zero
  5325. Release (XDHK)
  5326. }
  5327.  
  5328. Method (MHKQ, 1, NotSerialized)
  5329. {
  5330. If (DHKB)
  5331. {
  5332. If (DHKC)
  5333. {
  5334. Acquire (XDHK, 0xFFFF)
  5335. If ((Arg0 < 0x1000)){}
  5336. ElseIf ((Arg0 < 0x2000))
  5337. {
  5338. DHKH = Arg0
  5339. }
  5340. ElseIf ((Arg0 < 0x3000))
  5341. {
  5342. DHKW = Arg0
  5343. }
  5344. ElseIf ((Arg0 < 0x4000))
  5345. {
  5346. DHKS = Arg0
  5347. }
  5348. ElseIf ((Arg0 < 0x5000))
  5349. {
  5350. DHKD = Arg0
  5351. }
  5352. ElseIf ((Arg0 < 0x6000))
  5353. {
  5354. DHKH = Arg0
  5355. }
  5356. ElseIf ((Arg0 < 0x7000))
  5357. {
  5358. DHKT = Arg0
  5359. }
  5360. Else
  5361. {
  5362. }
  5363.  
  5364. Release (XDHK)
  5365. If ((DHKH == 0x1003))
  5366. {
  5367. \UCMS (0x0D)
  5368. }
  5369.  
  5370. Notify (HKEY, 0x80) // Status Change
  5371. }
  5372. ElseIf ((Arg0 == 0x1004))
  5373. {
  5374. Notify (\_SB.SLPB, 0x80) // Status Change
  5375. }
  5376. }
  5377. }
  5378.  
  5379. Method (MHKB, 1, NotSerialized)
  5380. {
  5381. If ((Arg0 == 0x00))
  5382. {
  5383. \_SB.PCI0.LPC.EC.BEEP (0x11)
  5384. }
  5385. ElseIf ((Arg0 == 0x01))
  5386. {
  5387. \_SB.PCI0.LPC.EC.BEEP (0x10)
  5388. }
  5389. Else
  5390. {
  5391. }
  5392. }
  5393.  
  5394. Method (MHKD, 0, NotSerialized)
  5395. {
  5396. \_SB.PCI0.AGP.VID.VLOC (0x00)
  5397. }
  5398.  
  5399. Method (MHQC, 1, NotSerialized)
  5400. {
  5401. If (\WNTF)
  5402. {
  5403. If ((Arg0 == 0x00))
  5404. {
  5405. Return (\CWAC)
  5406. }
  5407. ElseIf ((Arg0 == 0x01))
  5408. {
  5409. Return (\CWAP)
  5410. }
  5411. ElseIf ((Arg0 == 0x02))
  5412. {
  5413. Return (\CWAT)
  5414. }
  5415. Else
  5416. {
  5417. Noop
  5418. }
  5419. }
  5420. Else
  5421. {
  5422. Noop
  5423. }
  5424.  
  5425. Return (0x00)
  5426. }
  5427.  
  5428. Method (MHGC, 0, NotSerialized)
  5429. {
  5430. If (\WNTF)
  5431. {
  5432. Acquire (XDHK, 0xFFFF)
  5433. If (\OSC4)
  5434. {
  5435. If (\_SB.PCI0.LPC.EC.AC._PSR ())
  5436. {
  5437. Local0 = 0x03
  5438. }
  5439. ElseIf (\C4NA)
  5440. {
  5441. Local0 = 0x03
  5442. }
  5443. Else
  5444. {
  5445. Local0 = 0x04
  5446. }
  5447. }
  5448. ElseIf (\_SB.PCI0.LPC.C4C3)
  5449. {
  5450. Local0 = 0x04
  5451. }
  5452. Else
  5453. {
  5454. Local0 = 0x03
  5455. }
  5456.  
  5457. Release (XDHK)
  5458. Return (Local0)
  5459. }
  5460. Else
  5461. {
  5462. Noop
  5463. }
  5464.  
  5465. Return (0x00)
  5466. }
  5467.  
  5468. Method (MHSC, 1, NotSerialized)
  5469. {
  5470. If ((\CWAC && \WNTF))
  5471. {
  5472. Acquire (XDHK, 0xFFFF)
  5473. If (\OSC4)
  5474. {
  5475. If ((Arg0 == 0x03))
  5476. {
  5477. If (!\CWAS)
  5478. {
  5479. Notify (\_PR.CPU, 0x81) // C-State Change
  5480. \CWAS = 0x01
  5481. \C4NA = 0x01
  5482. }
  5483. }
  5484. ElseIf ((Arg0 == 0x04))
  5485. {
  5486. If (\CWAS)
  5487. {
  5488. Notify (\_PR.CPU, 0x81) // C-State Change
  5489. \CWAS = 0x00
  5490. \C4NA = 0x00
  5491. }
  5492. }
  5493. Else
  5494. {
  5495. Noop
  5496. }
  5497. }
  5498. ElseIf ((Arg0 == 0x03))
  5499. {
  5500. If (!\CWAS)
  5501. {
  5502. \_SB.PCI0.LPC.C4C3 = 0x00
  5503. \CWAS = 0x01
  5504. }
  5505. }
  5506. ElseIf ((Arg0 == 0x04))
  5507. {
  5508. If (\CWAS)
  5509. {
  5510. If (!\_SB.PCI0.LPC.EC.AC._PSR ())
  5511. {
  5512. \_SB.PCI0.LPC.C4C3 = 0x01
  5513. }
  5514.  
  5515. \CWAS = 0x00
  5516. }
  5517. }
  5518. Else
  5519. {
  5520. Noop
  5521. }
  5522.  
  5523. Release (XDHK)
  5524. }
  5525. Else
  5526. {
  5527. Noop
  5528. }
  5529. }
  5530. }
  5531. }
  5532. }
  5533.  
  5534. Name (_ADR, 0x00) // _ADR: Address
  5535. Name (_S3D, 0x02) // _S3D: S3 Device State
  5536. Name (RID, 0x00)
  5537. Name (_PRT, Package (0x06) // _PRT: PCI Routing Table
  5538. {
  5539. Package (0x04)
  5540. {
  5541. 0x001DFFFF,
  5542. 0x00,
  5543. \_SB.LNKA,
  5544. 0x00
  5545. },
  5546.  
  5547. Package (0x04)
  5548. {
  5549. 0x001DFFFF,
  5550. 0x01,
  5551. \_SB.LNKD,
  5552. 0x00
  5553. },
  5554.  
  5555. Package (0x04)
  5556. {
  5557. 0x001DFFFF,
  5558. 0x02,
  5559. \_SB.LNKC,
  5560. 0x00
  5561. },
  5562.  
  5563. Package (0x04)
  5564. {
  5565. 0x001DFFFF,
  5566. 0x03,
  5567. \_SB.LNKH,
  5568. 0x00
  5569. },
  5570.  
  5571. Package (0x04)
  5572. {
  5573. 0x001FFFFF,
  5574. 0x00,
  5575. \_SB.LNKC,
  5576. 0x00
  5577. },
  5578.  
  5579. Package (0x04)
  5580. {
  5581. 0x001FFFFF,
  5582. 0x01,
  5583. \_SB.LNKB,
  5584. 0x00
  5585. }
  5586. })
  5587. Name (_HID, EisaId ("PNP0A03") /* PCI Bus */) // _HID: Hardware ID
  5588. Name (_BBN, 0x00) // _BBN: BIOS Bus Number
  5589. OperationRegion (MHCS, PCI_Config, 0x00, 0x0100)
  5590. Field (MHCS, DWordAcc, NoLock, Preserve)
  5591. {
  5592. Offset (0x60),
  5593. DRB0, 8,
  5594. DRB1, 8,
  5595. DRB2, 8,
  5596. DRB3, 8,
  5597. DRB4, 8,
  5598. DRB5, 8,
  5599. DRB6, 8,
  5600. DRB7, 8,
  5601. Offset (0x90),
  5602. PAM0, 8,
  5603. PAM1, 8,
  5604. PAM2, 8,
  5605. PAM3, 8,
  5606. PAM4, 8,
  5607. PAM5, 8,
  5608. PAM6, 8
  5609. }
  5610.  
  5611. Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
  5612. {
  5613. WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
  5614. 0x0000, // Granularity
  5615. 0x0000, // Range Minimum
  5616. 0x00FF, // Range Maximum
  5617. 0x0000, // Translation Offset
  5618. 0x0100, // Length
  5619. ,, )
  5620. IO (Decode16,
  5621. 0x0CF8, // Range Minimum
  5622. 0x0CF8, // Range Maximum
  5623. 0x01, // Alignment
  5624. 0x08, // Length
  5625. )
  5626. WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
  5627. 0x0000, // Granularity
  5628. 0x0000, // Range Minimum
  5629. 0x0CF7, // Range Maximum
  5630. 0x0000, // Translation Offset
  5631. 0x0CF8, // Length
  5632. ,, , TypeStatic, DenseTranslation)
  5633. WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
  5634. 0x0000, // Granularity
  5635. 0x0D00, // Range Minimum
  5636. 0xFFFF, // Range Maximum
  5637. 0x0000, // Translation Offset
  5638. 0xF300, // Length
  5639. ,, , TypeStatic, DenseTranslation)
  5640. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5641. 0x00000000, // Granularity
  5642. 0x000A0000, // Range Minimum
  5643. 0x000BFFFF, // Range Maximum
  5644. 0x00000000, // Translation Offset
  5645. 0x00020000, // Length
  5646. ,, , AddressRangeMemory, TypeStatic)
  5647. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5648. 0x00000000, // Granularity
  5649. 0x000C0000, // Range Minimum
  5650. 0x000C3FFF, // Range Maximum
  5651. 0x00000000, // Translation Offset
  5652. 0x00004000, // Length
  5653. ,, _Y22, AddressRangeMemory, TypeStatic)
  5654. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5655. 0x00000000, // Granularity
  5656. 0x000C4000, // Range Minimum
  5657. 0x000C7FFF, // Range Maximum
  5658. 0x00000000, // Translation Offset
  5659. 0x00004000, // Length
  5660. ,, _Y23, AddressRangeMemory, TypeStatic)
  5661. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5662. 0x00000000, // Granularity
  5663. 0x000C8000, // Range Minimum
  5664. 0x000CBFFF, // Range Maximum
  5665. 0x00000000, // Translation Offset
  5666. 0x00004000, // Length
  5667. ,, _Y24, AddressRangeMemory, TypeStatic)
  5668. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5669. 0x00000000, // Granularity
  5670. 0x000CC000, // Range Minimum
  5671. 0x000CFFFF, // Range Maximum
  5672. 0x00000000, // Translation Offset
  5673. 0x00004000, // Length
  5674. ,, _Y25, AddressRangeMemory, TypeStatic)
  5675. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5676. 0x00000000, // Granularity
  5677. 0x000D0000, // Range Minimum
  5678. 0x000D3FFF, // Range Maximum
  5679. 0x00000000, // Translation Offset
  5680. 0x00004000, // Length
  5681. ,, _Y26, AddressRangeMemory, TypeStatic)
  5682. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5683. 0x00000000, // Granularity
  5684. 0x000D4000, // Range Minimum
  5685. 0x000D7FFF, // Range Maximum
  5686. 0x00000000, // Translation Offset
  5687. 0x00004000, // Length
  5688. ,, _Y27, AddressRangeMemory, TypeStatic)
  5689. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5690. 0x00000000, // Granularity
  5691. 0x000D8000, // Range Minimum
  5692. 0x000DBFFF, // Range Maximum
  5693. 0x00000000, // Translation Offset
  5694. 0x00004000, // Length
  5695. ,, _Y28, AddressRangeMemory, TypeStatic)
  5696. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5697. 0x00000000, // Granularity
  5698. 0x000DC000, // Range Minimum
  5699. 0x000DFFFF, // Range Maximum
  5700. 0x00000000, // Translation Offset
  5701. 0x00004000, // Length
  5702. ,, _Y29, AddressRangeMemory, TypeStatic)
  5703. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5704. 0x00000000, // Granularity
  5705. 0x000E0000, // Range Minimum
  5706. 0x000E3FFF, // Range Maximum
  5707. 0x00000000, // Translation Offset
  5708. 0x00004000, // Length
  5709. ,, _Y2A, AddressRangeMemory, TypeStatic)
  5710. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5711. 0x00000000, // Granularity
  5712. 0x000E4000, // Range Minimum
  5713. 0x000E7FFF, // Range Maximum
  5714. 0x00000000, // Translation Offset
  5715. 0x00004000, // Length
  5716. ,, _Y2B, AddressRangeMemory, TypeStatic)
  5717. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5718. 0x00000000, // Granularity
  5719. 0x000E8000, // Range Minimum
  5720. 0x000EBFFF, // Range Maximum
  5721. 0x00000000, // Translation Offset
  5722. 0x00004000, // Length
  5723. ,, _Y2C, AddressRangeMemory, TypeStatic)
  5724. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5725. 0x00000000, // Granularity
  5726. 0x000EC000, // Range Minimum
  5727. 0x000EFFFF, // Range Maximum
  5728. 0x00000000, // Translation Offset
  5729. 0x00004000, // Length
  5730. ,, _Y2D, AddressRangeMemory, TypeStatic)
  5731. DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
  5732. 0x00000000, // Granularity
  5733. 0x00100000, // Range Minimum
  5734. 0xFEBFFFFF, // Range Maximum
  5735. 0x00000000, // Translation Offset
  5736. 0xFEB00000, // Length
  5737. ,, _Y2E, AddressRangeMemory, TypeStatic)
  5738. })
  5739. CreateDWordField (_CRS, \_SB.PCI0._Y22._LEN, C0LN) // _LEN: Length
  5740. CreateDWordField (_CRS, \_SB.PCI0._Y23._LEN, C4LN) // _LEN: Length
  5741. CreateDWordField (_CRS, \_SB.PCI0._Y24._LEN, C8LN) // _LEN: Length
  5742. CreateDWordField (_CRS, \_SB.PCI0._Y25._LEN, CCLN) // _LEN: Length
  5743. CreateDWordField (_CRS, \_SB.PCI0._Y26._LEN, D0LN) // _LEN: Length
  5744. CreateDWordField (_CRS, \_SB.PCI0._Y27._LEN, D4LN) // _LEN: Length
  5745. CreateDWordField (_CRS, \_SB.PCI0._Y28._LEN, D8LN) // _LEN: Length
  5746. CreateDWordField (_CRS, \_SB.PCI0._Y29._LEN, DCLN) // _LEN: Length
  5747. CreateDWordField (_CRS, \_SB.PCI0._Y2A._LEN, E0LN) // _LEN: Length
  5748. CreateDWordField (_CRS, \_SB.PCI0._Y2B._LEN, E4LN) // _LEN: Length
  5749. CreateDWordField (_CRS, \_SB.PCI0._Y2C._LEN, E8LN) // _LEN: Length
  5750. CreateDWordField (_CRS, \_SB.PCI0._Y2D._LEN, ECLN) // _LEN: Length
  5751. CreateDWordField (_CRS, \_SB.PCI0._Y2E._MIN, XXMN) // _MIN: Minimum Base Address
  5752. CreateDWordField (_CRS, \_SB.PCI0._Y2E._MAX, XXMX) // _MAX: Maximum Base Address
  5753. CreateDWordField (_CRS, \_SB.PCI0._Y2E._LEN, XXLN) // _LEN: Length
  5754. Method (_INI, 0, Serialized) // _INI: Initialize
  5755. {
  5756. If (!\OSIF)
  5757. {
  5758. \_SB._INI ()
  5759. }
  5760.  
  5761. Local0 = (0x02000000 * DRB3) /* \_SB_.PCI0.DRB3 */
  5762. \MEMX = Local0
  5763. XXMN = Local0
  5764. XXLN = ((XXMX - XXMN) + 0x01)
  5765. If ((PAM1 & 0x03))
  5766. {
  5767. C0LN = 0x00
  5768. }
  5769.  
  5770. If ((PAM1 & 0x30))
  5771. {
  5772. C4LN = 0x00
  5773. }
  5774.  
  5775. If ((PAM2 & 0x03))
  5776. {
  5777. C8LN = 0x00
  5778. }
  5779.  
  5780. If ((PAM2 & 0x30))
  5781. {
  5782. CCLN = 0x00
  5783. }
  5784.  
  5785. If ((PAM3 & 0x03))
  5786. {
  5787. D0LN = 0x00
  5788. }
  5789.  
  5790. If ((PAM3 & 0x30))
  5791. {
  5792. D4LN = 0x00
  5793. }
  5794.  
  5795. If ((PAM4 & 0x03))
  5796. {
  5797. D8LN = 0x00
  5798. }
  5799.  
  5800. If ((PAM4 & 0x30))
  5801. {
  5802. DCLN = 0x00
  5803. }
  5804.  
  5805. If ((PAM5 & 0x03))
  5806. {
  5807. E0LN = 0x00
  5808. }
  5809.  
  5810. If ((PAM5 & 0x30))
  5811. {
  5812. E4LN = 0x00
  5813. }
  5814.  
  5815. If ((PAM6 & 0x03))
  5816. {
  5817. E8LN = 0x00
  5818. }
  5819.  
  5820. If ((PAM6 & 0x30))
  5821. {
  5822. ECLN = 0x00
  5823. }
  5824. }
  5825.  
  5826. Name (_PRW, Package (0x03) // _PRW: Power Resources for Wake
  5827. {
  5828. 0x0D,
  5829. 0x03,
  5830. \_SB.PCI0.LPC.EC.PUBS
  5831. })
  5832. Device (AGP)
  5833. {
  5834. Name (_ADR, 0x00010000) // _ADR: Address
  5835. Name (_S3D, 0x03) // _S3D: S3 Device State
  5836. Name (RID, 0x00)
  5837. Name (_PRT, Package (0x02) // _PRT: PCI Routing Table
  5838. {
  5839. Package (0x04)
  5840. {
  5841. 0xFFFF,
  5842. 0x00,
  5843. \_SB.LNKA,
  5844. 0x00
  5845. },
  5846.  
  5847. Package (0x04)
  5848. {
  5849. 0xFFFF,
  5850. 0x01,
  5851. \_SB.LNKB,
  5852. 0x00
  5853. }
  5854. })
  5855. Name (EDX1, Buffer (0x80)
  5856. {
  5857. /* 0000 */ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, // ........
  5858. /* 0008 */ 0x24, 0x4D, 0x55, 0x0A, 0x00, 0x00, 0x00, 0x00, // $MU.....
  5859. /* 0010 */ 0x00, 0x0E, 0x01, 0x03, 0x80, 0x1E, 0x17, 0x78, // .......x
  5860. /* 0018 */ 0xEE, 0xEE, 0x91, 0xA3, 0x54, 0x4C, 0x99, 0x26, // ....TL.&
  5861. /* 0020 */ 0x0F, 0x50, 0x54, 0x21, 0x08, 0x00, 0x01, 0x01, // .PT!....
  5862. /* 0028 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, // ........
  5863. /* 0030 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x64, 0x19, // ......d.
  5864. /* 0038 */ 0x00, 0x40, 0x41, 0x00, 0x26, 0x30, 0x18, 0x88, // .@A.&0..
  5865. /* 0040 */ 0x36, 0x00, 0x30, 0xE4, 0x10, 0x00, 0x00, 0x18, // 6.0.....
  5866. /* 0048 */ 0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, // .....Thi
  5867. /* 0050 */ 0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, // nkPad LC
  5868. /* 0058 */ 0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, // D .....1
  5869. /* 0060 */ 0x30, 0x32, 0x34, 0x78, 0x37, 0x36, 0x38, 0x0A, // 024x768.
  5870. /* 0068 */ 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, // ....
  5871. /* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5872. /* 0078 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA // ........
  5873. })
  5874. Name (EDX2, Buffer (0x0100)
  5875. {
  5876. /* 0000 */ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, // ........
  5877. /* 0008 */ 0x24, 0x4D, 0x55, 0x0A, 0x00, 0x00, 0x00, 0x00, // $MU.....
  5878. /* 0010 */ 0x00, 0x0E, 0x01, 0x03, 0x80, 0x1E, 0x17, 0x78, // .......x
  5879. /* 0018 */ 0xEE, 0xEE, 0x91, 0xA3, 0x54, 0x4C, 0x99, 0x26, // ....TL.&
  5880. /* 0020 */ 0x0F, 0x50, 0x54, 0x21, 0x08, 0x00, 0x01, 0x01, // .PT!....
  5881. /* 0028 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, // ........
  5882. /* 0030 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x64, 0x19, // ......d.
  5883. /* 0038 */ 0x00, 0x40, 0x41, 0x00, 0x26, 0x30, 0x18, 0x88, // .@A.&0..
  5884. /* 0040 */ 0x36, 0x00, 0x30, 0xE4, 0x10, 0x00, 0x00, 0x18, // 6.0.....
  5885. /* 0048 */ 0x00, 0x00, 0x00, 0xFC, 0x00, 0x54, 0x68, 0x69, // .....Thi
  5886. /* 0050 */ 0x6E, 0x6B, 0x50, 0x61, 0x64, 0x20, 0x4C, 0x43, // nkPad LC
  5887. /* 0058 */ 0x44, 0x20, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x31, // D .....1
  5888. /* 0060 */ 0x30, 0x32, 0x34, 0x78, 0x37, 0x36, 0x38, 0x0A, // 024x768.
  5889. /* 0068 */ 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, // ....
  5890. /* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5891. /* 0078 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, // ........
  5892. /* 0080 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5893. /* 0088 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5894. /* 0090 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5895. /* 0098 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5896. /* 00A0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5897. /* 00A8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5898. /* 00B0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5899. /* 00B8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5900. /* 00C0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5901. /* 00C8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5902. /* 00D0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5903. /* 00D8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5904. /* 00E0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5905. /* 00E8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5906. /* 00F0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  5907. /* 00F8 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........
  5908. })
  5909. Mutex (MDGS, 0x07)
  5910. Name (VDEE, 0x01)
  5911. Name (VDDA, Buffer (0x02){})
  5912. CreateBitField (VDDA, 0x00, VUPC)
  5913. CreateBitField (VDDA, 0x01, VQDL)
  5914. CreateBitField (VDDA, 0x02, VQDC)
  5915. CreateBitField (VDDA, 0x03, VQDT)
  5916. CreateBitField (VDDA, 0x04, VQDD)
  5917. CreateBitField (VDDA, 0x05, VSDL)
  5918. CreateBitField (VDDA, 0x06, VSDC)
  5919. CreateBitField (VDDA, 0x07, VSDT)
  5920. CreateBitField (VDDA, 0x08, VSDD)
  5921. CreateBitField (VDDA, 0x0A, MSWT)
  5922. CreateBitField (VDDA, 0x0B, VWST)
  5923. Device (VID)
  5924. {
  5925. Name (_ADR, 0x00) // _ADR: Address
  5926. OperationRegion (VPCG, PCI_Config, 0x00, 0x0100)
  5927. Field (VPCG, DWordAcc, NoLock, Preserve)
  5928. {
  5929. Offset (0x54),
  5930. VPWR, 32
  5931. }
  5932.  
  5933. Name (_S3D, 0x03) // _S3D: S3 Device State
  5934. Method (_INI, 0, NotSerialized) // _INI: Initialize
  5935. {
  5936. \VUPS (0x02)
  5937. VQDL = \VCDL
  5938. VQDC = \VCDC
  5939. VQDT = \VCDT
  5940. VQDD = \VCDD
  5941. }
  5942.  
  5943. Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
  5944. {
  5945. }
  5946.  
  5947. Method (_PS1, 0, NotSerialized) // _PS1: Power State 1
  5948. {
  5949. }
  5950.  
  5951. Method (_PS2, 0, NotSerialized) // _PS2: Power State 2
  5952. {
  5953. }
  5954.  
  5955. Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
  5956. {
  5957. }
  5958.  
  5959. Method (VSWT, 0, NotSerialized)
  5960. {
  5961. Local0 = \VEVT (0x05)
  5962. Local1 = (0x0F & Local0)
  5963. If (Local1)
  5964. {
  5965. ASWT (Local1, 0x01)
  5966. }
  5967. }
  5968.  
  5969. Method (VLOC, 1, NotSerialized)
  5970. {
  5971. If ((Arg0 == \_SB.LID._LID ()))
  5972. {
  5973. \VSLD (Arg0)
  5974. If ((VPWR == 0x00))
  5975. {
  5976. If (Arg0)
  5977. {
  5978. Local0 = \VEVT (0x01)
  5979. }
  5980. Else
  5981. {
  5982. Local0 = \VEVT (0x02)
  5983. }
  5984.  
  5985. Local1 = (0x0F & Local0)
  5986. If (Local1)
  5987. {
  5988. ASWT (Local1, 0x00)
  5989. }
  5990. }
  5991. }
  5992. }
  5993.  
  5994. Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching
  5995. {
  5996. If ((Arg0 == 0x02))
  5997. {
  5998. Local0 = 0x14
  5999. While (Local0)
  6000. {
  6001. Local0--
  6002. Acquire (MDGS, 0xFFFF)
  6003. If ((0x00 == MSWT))
  6004. {
  6005. MSWT = 0x01
  6006. Local0 = 0x00
  6007. VDEE = Arg0
  6008. }
  6009.  
  6010. Release (MDGS)
  6011. Sleep (0xC8)
  6012. }
  6013. }
  6014. Else
  6015. {
  6016. Acquire (MDGS, 0xFFFF)
  6017. If ((VDEE == 0x02))
  6018. {
  6019. MSWT = 0x00
  6020. }
  6021.  
  6022. If ((Arg0 > 0x02))
  6023. {
  6024. VDEE = 0x01
  6025. }
  6026. Else
  6027. {
  6028. VDEE = Arg0
  6029. }
  6030.  
  6031. Release (MDGS)
  6032. }
  6033. }
  6034.  
  6035. Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices
  6036. {
  6037. Return (Package (0x02)
  6038. {
  6039. 0x0110,
  6040. 0x0100
  6041. })
  6042. }
  6043.  
  6044. Method (ASWT, 2, NotSerialized)
  6045. {
  6046. If ((0x01 == VDEE))
  6047. {
  6048. Local1 = (0x01 & Arg1)
  6049. \VSDS (Arg0, Local1)
  6050. }
  6051. Else
  6052. {
  6053. Local0 = 0x14
  6054. While (Local0)
  6055. {
  6056. Local0--
  6057. Acquire (MDGS, 0xFFFF)
  6058. If ((0x00 == MSWT))
  6059. {
  6060. Local0 = 0x00
  6061. If ((0x01 & Arg1))
  6062. {
  6063. VUPC = 0x01
  6064. }
  6065. Else
  6066. {
  6067. VUPC = 0x00
  6068. }
  6069.  
  6070. If ((0x01 & Arg0))
  6071. {
  6072. VQDL = 0x01
  6073. }
  6074. Else
  6075. {
  6076. VQDL = 0x00
  6077. }
  6078.  
  6079. If ((0x02 & Arg0))
  6080. {
  6081. VQDC = 0x01
  6082. }
  6083. Else
  6084. {
  6085. VQDC = 0x00
  6086. }
  6087. }
  6088.  
  6089. Release (MDGS)
  6090. Sleep (0xC8)
  6091. }
  6092.  
  6093. If ((0x02 & Arg1))
  6094. {
  6095. Notify (VID, 0x81) // Information Change
  6096. }
  6097. Else
  6098. {
  6099. Notify (VID, 0x80) // Status Change
  6100. }
  6101. }
  6102. }
  6103.  
  6104. Device (LCD0)
  6105. {
  6106. Name (_ADR, 0x0110) // _ADR: Address
  6107. Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
  6108. {
  6109. \VUPS (0x00)
  6110. If (\VCDL)
  6111. {
  6112. Return (0x1F)
  6113. }
  6114. Else
  6115. {
  6116. Return (0x1D)
  6117. }
  6118. }
  6119.  
  6120. Method (_DDC, 1, NotSerialized) // _DDC: Display Data Current
  6121. {
  6122. If ((\VLID == 0x02))
  6123. {
  6124. If ((Arg0 == 0x01))
  6125. {
  6126. Return (EDX1) /* \_SB_.PCI0.AGP_.EDX1 */
  6127. }
  6128. ElseIf ((Arg0 == 0x02))
  6129. {
  6130. Return (EDX2) /* \_SB_.PCI0.AGP_.EDX2 */
  6131. }
  6132. }
  6133.  
  6134. Return (0x00)
  6135. }
  6136.  
  6137. Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
  6138. {
  6139. Return (VQDL) /* \_SB_.PCI0.AGP_.VQDL */
  6140. }
  6141.  
  6142. Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
  6143. {
  6144. VSDL = (Arg0 & 0x01)
  6145. If ((Arg0 & 0x80000000))
  6146. {
  6147. If ((Arg0 & 0x40000000))
  6148. {
  6149. DSWT (0x02)
  6150. }
  6151. Else
  6152. {
  6153. DSWT (0x01)
  6154. }
  6155. }
  6156. }
  6157. }
  6158.  
  6159. Device (CRT0)
  6160. {
  6161. Name (_ADR, 0x0100) // _ADR: Address
  6162. Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status
  6163. {
  6164. \VUPS (0x01)
  6165. If (\VCSS)
  6166. {
  6167. If (\VCDC)
  6168. {
  6169. Return (0x1F)
  6170. }
  6171. Else
  6172. {
  6173. Return (0x1D)
  6174. }
  6175. }
  6176. ElseIf (\VCDC)
  6177. {
  6178. Return (0x0F)
  6179. }
  6180. Else
  6181. {
  6182. Return (0x0D)
  6183. }
  6184. }
  6185.  
  6186. Method (_DDC, 1, NotSerialized) // _DDC: Display Data Current
  6187. {
  6188. \VDDC ()
  6189. If ((Arg0 == 0x01))
  6190. {
  6191. Return (\DDC1)
  6192. }
  6193. ElseIf ((Arg0 == 0x02))
  6194. {
  6195. Return (\DDC2)
  6196. }
  6197. Else
  6198. {
  6199. Return (0x00)
  6200. }
  6201. }
  6202.  
  6203. Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State
  6204. {
  6205. Return (VQDC) /* \_SB_.PCI0.AGP_.VQDC */
  6206. }
  6207.  
  6208. Method (_DSS, 1, NotSerialized) // _DSS: Device Set State
  6209. {
  6210. VSDC = (Arg0 & 0x01)
  6211. If ((Arg0 & 0x80000000))
  6212. {
  6213. If ((Arg0 & 0x40000000))
  6214. {
  6215. DSWT (0x02)
  6216. }
  6217. Else
  6218. {
  6219. DSWT (0x01)
  6220. }
  6221. }
  6222. }
  6223. }
  6224.  
  6225. Method (DSWT, 1, NotSerialized)
  6226. {
  6227. If (VSDL)
  6228. {
  6229. Local0 = 0x01
  6230. }
  6231. Else
  6232. {
  6233. Local0 = 0x00
  6234. }
  6235.  
  6236. If (VSDC)
  6237. {
  6238. Local0 |= 0x02
  6239. }
  6240.  
  6241. If (VSDD)
  6242. {
  6243. Local0 |= 0x08
  6244. }
  6245.  
  6246. If (Local0)
  6247. {
  6248. If (VUPC)
  6249. {
  6250. \VSDS (Local0, Arg0)
  6251. }
  6252. }
  6253. Else
  6254. {
  6255. Noop
  6256. }
  6257. }
  6258. }
  6259. }
  6260.  
  6261. Device (PCI1)
  6262. {
  6263. Name (_ADR, 0x001E0000) // _ADR: Address
  6264. Name (_S3D, 0x02) // _S3D: S3 Device State
  6265. Name (_PRT, Package (0x0D) // _PRT: PCI Routing Table
  6266. {
  6267. Package (0x04)
  6268. {
  6269. 0xFFFF,
  6270. 0x00,
  6271. \_SB.LNKA,
  6272. 0x00
  6273. },
  6274.  
  6275. Package (0x04)
  6276. {
  6277. 0xFFFF,
  6278. 0x01,
  6279. \_SB.LNKB,
  6280. 0x00
  6281. },
  6282.  
  6283. Package (0x04)
  6284. {
  6285. 0xFFFF,
  6286. 0x02,
  6287. \_SB.LNKC,
  6288. 0x00
  6289. },
  6290.  
  6291. Package (0x04)
  6292. {
  6293. 0x0001FFFF,
  6294. 0x00,
  6295. \_SB.LNKA,
  6296. 0x00
  6297. },
  6298.  
  6299. Package (0x04)
  6300. {
  6301. 0x0002FFFF,
  6302. 0x00,
  6303. \_SB.LNKC,
  6304. 0x00
  6305. },
  6306.  
  6307. Package (0x04)
  6308. {
  6309. 0x0002FFFF,
  6310. 0x01,
  6311. \_SB.LNKD,
  6312. 0x00
  6313. },
  6314.  
  6315. Package (0x04)
  6316. {
  6317. 0x0002FFFF,
  6318. 0x02,
  6319. \_SB.LNKA,
  6320. 0x00
  6321. },
  6322.  
  6323. Package (0x04)
  6324. {
  6325. 0x0002FFFF,
  6326. 0x03,
  6327. \_SB.LNKB,
  6328. 0x00
  6329. },
  6330.  
  6331. Package (0x04)
  6332. {
  6333. 0x0004FFFF,
  6334. 0x00,
  6335. \_SB.LNKC,
  6336. 0x00
  6337. },
  6338.  
  6339. Package (0x04)
  6340. {
  6341. 0x0004FFFF,
  6342. 0x01,
  6343. \_SB.LNKD,
  6344. 0x00
  6345. },
  6346.  
  6347. Package (0x04)
  6348. {
  6349. 0x0004FFFF,
  6350. 0x02,
  6351. \_SB.LNKA,
  6352. 0x00
  6353. },
  6354.  
  6355. Package (0x04)
  6356. {
  6357. 0x0004FFFF,
  6358. 0x03,
  6359. \_SB.LNKB,
  6360. 0x00
  6361. },
  6362.  
  6363. Package (0x04)
  6364. {
  6365. 0x0008FFFF,
  6366. 0x00,
  6367. \_SB.LNKE,
  6368. 0x00
  6369. }
  6370. })
  6371. Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
  6372. {
  6373. 0x0B,
  6374. 0x04
  6375. })
  6376. Device (CBS0)
  6377. {
  6378. Name (_ADR, 0x00) // _ADR: Address
  6379. Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
  6380. {
  6381. If (\WMEF)
  6382. {
  6383. Return (0x02)
  6384. }
  6385.  
  6386. Return (0x03)
  6387. }
  6388.  
  6389. Name (_SUN, 0x01) // _SUN: Slot User Number
  6390. OperationRegion (CBUS, PCI_Config, 0x00, 0x0100)
  6391. Field (CBUS, DWordAcc, NoLock, Preserve)
  6392. {
  6393. Offset (0x40),
  6394. SVID, 16,
  6395. SSID, 16,
  6396. LGDC, 32,
  6397. Offset (0xA0),
  6398. MSC2, 16
  6399. }
  6400.  
  6401. Method (_INI, 0, NotSerialized) // _INI: Initialize
  6402. {
  6403. LGDC = 0x00
  6404. MSC2 &= 0xFB
  6405. }
  6406. }
  6407.  
  6408. Device (CBS1)
  6409. {
  6410. Name (_ADR, 0x01) // _ADR: Address
  6411. Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
  6412. {
  6413. If (\WMEF)
  6414. {
  6415. Return (0x02)
  6416. }
  6417.  
  6418. Return (0x03)
  6419. }
  6420.  
  6421. Name (_SUN, 0x02) // _SUN: Slot User Number
  6422. OperationRegion (CBUS, PCI_Config, 0x00, 0x0100)
  6423. Field (CBUS, DWordAcc, NoLock, Preserve)
  6424. {
  6425. Offset (0x40),
  6426. SVID, 16,
  6427. SSID, 16,
  6428. LGDC, 32,
  6429. Offset (0xA0),
  6430. MSC2, 16
  6431. }
  6432.  
  6433. Method (_INI, 0, NotSerialized) // _INI: Initialize
  6434. {
  6435. LGDC = 0x00
  6436. MSC2 &= 0xFB
  6437. }
  6438. }
  6439.  
  6440. Device (DOCK)
  6441. {
  6442. Name (_ADR, 0x00030000) // _ADR: Address
  6443. Name (_S3D, 0x02) // _S3D: S3 Device State
  6444. Name (_PRT, Package (0x06) // _PRT: PCI Routing Table
  6445. {
  6446. Package (0x04)
  6447. {
  6448. 0xFFFF,
  6449. 0x00,
  6450. \_SB.LNKA,
  6451. 0x00
  6452. },
  6453.  
  6454. Package (0x04)
  6455. {
  6456. 0xFFFF,
  6457. 0x01,
  6458. \_SB.LNKB,
  6459. 0x00
  6460. },
  6461.  
  6462. Package (0x04)
  6463. {
  6464. 0xFFFF,
  6465. 0x02,
  6466. \_SB.LNKC,
  6467. 0x00
  6468. },
  6469.  
  6470. Package (0x04)
  6471. {
  6472. 0xFFFF,
  6473. 0x03,
  6474. \_SB.LNKD,
  6475. 0x00
  6476. },
  6477.  
  6478. Package (0x04)
  6479. {
  6480. 0x0001FFFF,
  6481. 0x00,
  6482. \_SB.LNKB,
  6483. 0x00
  6484. },
  6485.  
  6486. Package (0x04)
  6487. {
  6488. 0x0002FFFF,
  6489. 0x00,
  6490. \_SB.LNKC,
  6491. 0x00
  6492. }
  6493. })
  6494. Name (DOID, 0xFFFFFFFF)
  6495. Name (DIDB, 0xFFFFFFFF)
  6496. Name (FLAG, 0x00)
  6497. Name (WUCT, 0x00)
  6498. Name (DHKE, 0x00)
  6499. Event (DEVT)
  6500. Method (DBDN, 0, NotSerialized)
  6501. {
  6502. Return (RDID ())
  6503. }
  6504.  
  6505. Method (DUID, 0, NotSerialized)
  6506. {
  6507. Return (RDSR ())
  6508. }
  6509.  
  6510. Method (_REG, 2, NotSerialized) // _REG: Region Availability
  6511. {
  6512. If (GDID ())
  6513. {
  6514. If ((Arg0 == 0x02))
  6515. {
  6516. If (Arg1)
  6517. {
  6518. Sleep (0x19)
  6519. }
  6520.  
  6521. \_SB.PCI0.PCI1.DOCK.CBS2.DREG (Arg0, Arg1)
  6522. \_SB.PCI0.PCI1.DOCK.CBS3.DREG (Arg0, Arg1)
  6523. \_SB.PCI0.PCI1.DOCK.IDE1.DREG (Arg0, Arg1)
  6524. If (Arg1)
  6525. {
  6526. LTCY ()
  6527. }
  6528. }
  6529. }
  6530. }
  6531.  
  6532. Method (_INI, 0, NotSerialized) // _INI: Initialize
  6533. {
  6534. If (GDID ())
  6535. {
  6536. PPEN (0x00)
  6537. PPIN ()
  6538. PPEN (0x01)
  6539. If (\W98F)
  6540. {
  6541. PPBN (0x01)
  6542. _REG (0x02, 0x01)
  6543. PPBN (0x00)
  6544. }
  6545.  
  6546. \_SB.PCI0.LPC.EC.DATT (0x00, 0x00)
  6547. }
  6548. Else
  6549. {
  6550. \_SB.PCI0.LPC.EC.DATT (0x00, 0x01)
  6551. }
  6552.  
  6553. \_SB.PCI0.LPC.DSCI = 0x01
  6554. }
  6555.  
  6556. Method (DSTA, 0, NotSerialized)
  6557. {
  6558. UDCK ()
  6559. UDKT ()
  6560. If ((GDID () == 0x4A004D24))
  6561. {
  6562. Local0 = 0x0F
  6563. }
  6564. ElseIf (!\W98F)
  6565. {
  6566. Local0 = 0x00
  6567. }
  6568. Else
  6569. {
  6570. Local0 = 0x0C
  6571. }
  6572.  
  6573. If (\W98F)
  6574. {
  6575. Local0 = HIDD (Local0)
  6576. }
  6577.  
  6578. Return (Local0)
  6579. }
  6580.  
  6581. Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
  6582. {
  6583. 0x1D,
  6584. 0x04
  6585. })
  6586. Method (DPTS, 1, NotSerialized)
  6587. {
  6588. If (((Arg0 >= 0x01) && (Arg0 <= 0x04)))
  6589. {
  6590. DHKE = 0x00
  6591. If (DFLG (0x02, 0x02))
  6592. {
  6593. DOID = 0x00
  6594. DFLG (0x01, 0x02)
  6595. }
  6596.  
  6597. If ((GDID () == 0x4A004D24))
  6598. {
  6599. \_SB.PCI0.LPC.EC.DDWK (0x01)
  6600. If ((Arg0 == 0x03))
  6601. {
  6602. \_SB.PCI0.LPC.GDT2 = 0x01
  6603. \_SB.PCI0.LPC.GDR2 = 0x01
  6604. \_SB.PCI0.LPC.GDT2 = 0x01
  6605. }
  6606.  
  6607. If ((Arg0 == 0x04))
  6608. {
  6609. \_SB.PCI0.LPC.LCKO = 0x01
  6610. }
  6611. }
  6612.  
  6613. DIDB = GDID ()
  6614. DFLG (0x00, 0x0100)
  6615. }
  6616. }
  6617.  
  6618. Method (DWAK, 1, NotSerialized)
  6619. {
  6620. DOID = 0xFFFFFFFF
  6621. If (((Arg0 >= 0x01) && (Arg0 <= 0x04)))
  6622. {
  6623. If ((DIDB == 0x4A004D24))
  6624. {
  6625. If ((Arg0 == 0x03))
  6626. {
  6627. \_SB.PCI0.LPC.GDT2 = 0x00
  6628. \_SB.PCI0.LPC.GDR2 = 0x01
  6629. \_SB.PCI0.LPC.GDT2 = 0x00
  6630. }
  6631.  
  6632. If ((GDID () == 0x4A004D24))
  6633. {
  6634. If ((Arg0 == 0x04))
  6635. {
  6636. SLCK (0x01)
  6637. \_SB.PCI0.LPC.LCKO = 0x00
  6638. BCON (0x01)
  6639. If ((\_SB.PCI0.LPC.WAKR & 0x08))
  6640. {
  6641. DGPE ()
  6642. }
  6643. }
  6644.  
  6645. Local0 = PPEN (0x00)
  6646. PPIN ()
  6647. If ((\WNTF >= 0x02))
  6648. {
  6649. If (Local0)
  6650. {
  6651. PPEN (0x01)
  6652. }
  6653. }
  6654.  
  6655. If (\W98F)
  6656. {
  6657. PPBN (0x01)
  6658. _REG (0x02, 0x01)
  6659. PPBN (0x00)
  6660. PPEN (0x01)
  6661. }
  6662.  
  6663. DHKE = (Arg0 << 0x08)
  6664. If (!DFLG (0x02, 0x08))
  6665. {
  6666. If ((\_SB.PCI0.PCI1.DOCK.GDID () == 0x4A004D24))
  6667. {
  6668. Notify (\_SB.PCI0.PCI1.DOCK.IDE1, 0x00) // Bus Check
  6669. }
  6670.  
  6671. If ((Arg0 == 0x04))
  6672. {
  6673. \DHDP (0x03)
  6674. }
  6675. }
  6676. }
  6677. Else
  6678. {
  6679. Notify (\_SB.GDCK, 0x00) // Bus Check
  6680. \DHDP (0x00)
  6681. }
  6682. }
  6683. ElseIf ((GDID () == 0x4A004D24))
  6684. {
  6685. If (!\_SB.PCI0.LPC.BUSS)
  6686. {
  6687. _INI ()
  6688. If (!\W98F)
  6689. {
  6690. PPEN (0x00)
  6691. }
  6692. }
  6693.  
  6694. WDCK ()
  6695. }
  6696. Else
  6697. {
  6698. Noop
  6699. }
  6700.  
  6701. DFLG (0x01, 0x0100)
  6702. DFLG (0x01, 0x02)
  6703. DFLG (0x01, 0x10)
  6704. DFLG (0x01, 0x20)
  6705. \_SB.PCI0.LPC.DSCI = 0x01
  6706. }
  6707. }
  6708.  
  6709. Method (DGPE, 0, NotSerialized)
  6710. {
  6711. DFLG (0x00, 0x08)
  6712. }
  6713.  
  6714. Method (DDCK, 1, NotSerialized)
  6715. {
  6716. If (Arg0)
  6717. {
  6718. SLCK (0x01)
  6719. Sleep (0xC8)
  6720. BCON (0x01)
  6721. Sleep (0x4B)
  6722. PPIN ()
  6723. If (\W98F)
  6724. {
  6725. \DHDP (0x01)
  6726. }
  6727. ElseIf (!\DHDP (0x04))
  6728. {
  6729. PPID ()
  6730. }
  6731.  
  6732. If (\W98F)
  6733. {
  6734. PPBN (0x01)
  6735. _REG (0x02, 0x01)
  6736. PPBN (0x00)
  6737. PPEN (0x01)
  6738. }
  6739.  
  6740. \_SB.PCI0.LPC.EC.GUSB (0x01)
  6741. \_SB.PCI0.LPC.EC.DATT (0x00, 0x00)
  6742. \_SB.PCI0.LPC.EC.DATT (0x01, 0x01)
  6743. }
  6744. Else
  6745. {
  6746. DFLG (0x00, 0x02)
  6747. \DHDP (0x00)
  6748. If (\W98F)
  6749. {
  6750. _REG (0x02, 0x00)
  6751. }
  6752.  
  6753. \_SB.PCI0.LPC.EC.GUSB (0x00)
  6754. PPUB (0x00)
  6755. BCON (0x00)
  6756. \_SB.PCI0.LPC.EC.DATT (0x00, 0x01)
  6757. \_SB.PCI0.LPC.EC.DATT (0x01, 0x00)
  6758. }
  6759.  
  6760. Return (0x01)
  6761. }
  6762.  
  6763. Method (DEJ0, 1, NotSerialized)
  6764. {
  6765. If (Arg0)
  6766. {
  6767. DOID = 0x00
  6768. SLCK (0x00)
  6769. UDKI ()
  6770. \_SB.PCI0.LPC.FDC.DCFD = 0x00
  6771. \_SB.PCI0.LPC.FDC.XFDS = 0x01
  6772. }
  6773.  
  6774. DFLG (0x01, 0x02)
  6775. }
  6776.  
  6777. Method (DEJ3, 1, NotSerialized)
  6778. {
  6779. If (Arg0)
  6780. {
  6781. DFLG (0x00, 0x10)
  6782. If ((\SPS == 0x03))
  6783. {
  6784. PDE3 ()
  6785. }
  6786.  
  6787. \_SB.PCI0.LPC.FDC.DCFD = 0x00
  6788. }
  6789. }
  6790.  
  6791. Method (DEJ4, 1, NotSerialized)
  6792. {
  6793. If (Arg0)
  6794. {
  6795. DFLG (0x00, 0x20)
  6796. \_SB.PCI0.LPC.FDC.DCFD = 0x00
  6797. }
  6798. }
  6799.  
  6800. Method (PDE3, 0, NotSerialized)
  6801. {
  6802. If (DFLG (0x02, 0x10))
  6803. {
  6804. SLCK (0x00)
  6805. }
  6806. }
  6807.  
  6808. Name (HIDE, 0x00)
  6809. Method (WDCK, 0, NotSerialized)
  6810. {
  6811. If ((DFLG (0x02, 0x10) || DFLG (0x02, 0x20)))
  6812. {
  6813. If (\_SB.PCI0.LPC.BUSS)
  6814. {
  6815. DDCK (0x01)
  6816. }
  6817.  
  6818. If (\W98F)
  6819. {
  6820. DFLG (0x00, 0x0200)
  6821. HIDE = 0x05
  6822. }
  6823. }
  6824. Else
  6825. {
  6826. Notify (\_SB.GDCK, 0x00) // Bus Check
  6827. }
  6828. }
  6829.  
  6830. Method (HIDD, 1, NotSerialized)
  6831. {
  6832. Local0 = Arg0
  6833. If (DFLG (0x02, 0x0200))
  6834. {
  6835. If ((Arg0 == 0x0F))
  6836. {
  6837. If (\W98F)
  6838. {
  6839. Local0 = 0x0C
  6840. }
  6841.  
  6842. HIDE--
  6843. If (!HIDE)
  6844. {
  6845. DFLG (0x01, 0x0200)
  6846. Notify (\_SB.PCI0.PCI1.DOCK, 0x00) // Bus Check
  6847. }
  6848. }
  6849. Else
  6850. {
  6851. DFLG (0x01, 0x0200)
  6852. }
  6853. }
  6854.  
  6855. Return (Local0)
  6856. }
  6857.  
  6858. Method (UDCK, 0, NotSerialized)
  6859. {
  6860. If (DFLG (0x02, 0x08))
  6861. {
  6862. If (!DFLG (0x02, 0x0100))
  6863. {
  6864. DHKE |= 0x2004
  6865. If ((\UOPT == 0x00))
  6866. {
  6867. \_SB.PCI0.LPC.EC.HKEY.MHKQ (DHKE)
  6868. }
  6869.  
  6870. If (\W98F)
  6871. {
  6872. Notify (\_SB.GDCK, 0x01) // Device Check
  6873. }
  6874. Else
  6875. {
  6876. Notify (\_SB.GDCK, 0x03) // Eject Request
  6877. }
  6878.  
  6879. DFLG (0x01, 0x08)
  6880. }
  6881. }
  6882. }
  6883.  
  6884. Method (UDKI, 0, NotSerialized)
  6885. {
  6886. If (\WNTF)
  6887. {
  6888. WUCT = 0x01
  6889. }
  6890. Else
  6891. {
  6892. WUCT = 0x05
  6893. }
  6894. }
  6895.  
  6896. Method (UDKT, 0, NotSerialized)
  6897. {
  6898. If ((DHKE & 0x2004))
  6899. {
  6900. If ((GDID () == 0x00))
  6901. {
  6902. If (!WUCT--)
  6903. {
  6904. DHKE = 0x00
  6905. If ((\UOPT == 0x00))
  6906. {
  6907. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x4003)
  6908. }
  6909. }
  6910. }
  6911. }
  6912. }
  6913.  
  6914. Method (GDID, 0, NotSerialized)
  6915. {
  6916. If ((DOID == 0xFFFFFFFF))
  6917. {
  6918. \_SB.GDCK.G_ID = 0xFFFFFFFF
  6919. DOID = RDID ()
  6920. If ((DOID == 0x4D24))
  6921. {
  6922. DOID = 0x4A004D24
  6923. }
  6924. }
  6925.  
  6926. Return (DOID) /* \_SB_.PCI0.PCI1.DOCK.DOID */
  6927. }
  6928.  
  6929. Method (RDID, 0, NotSerialized)
  6930. {
  6931. Local0 = 0x00
  6932. If (!\_SB.PCI0.LPC.EPWG)
  6933. {
  6934. If ((\_SB.GDCK.GGID () == 0x00))
  6935. {
  6936. If (\H8DR)
  6937. {
  6938. If (\_SB.PCI0.LPC.EC.EEPR ())
  6939. {
  6940. Local0 = \_SB.PCI0.LPC.EC.HDEP
  6941. }
  6942. Else
  6943. {
  6944. Local0 = 0x4A004D24
  6945. }
  6946. }
  6947. Else
  6948. {
  6949. Local0 = \DCKI
  6950. }
  6951. }
  6952. }
  6953.  
  6954. Return (Local0)
  6955. }
  6956.  
  6957. Method (RDSR, 0, NotSerialized)
  6958. {
  6959. Local0 = 0x00
  6960. If ((GDID () != 0x00))
  6961. {
  6962. If (\H8DR)
  6963. {
  6964. If (\_SB.PCI0.LPC.EC.EEPR ())
  6965. {
  6966. Local0 = \_SB.PCI0.LPC.EC.HDEN
  6967. }
  6968. }
  6969. Else
  6970. {
  6971. Local0 = \DCKS
  6972. }
  6973. }
  6974.  
  6975. Return (Local0)
  6976. }
  6977.  
  6978. Method (GDBI, 0, NotSerialized)
  6979. {
  6980. If ((\_SB.PCI0.PCI1.DOCK.GDID () == 0x4A004D24))
  6981. {
  6982. If (\H8DR)
  6983. {
  6984. Local0 = \_SB.PCI0.LPC.EC.HBID
  6985. }
  6986. Else
  6987. {
  6988. Local0 = (\RBEC (0x47) >> 0x02)
  6989. Local0 &= 0x0F
  6990. }
  6991. }
  6992. Else
  6993. {
  6994. Local0 = 0x0F
  6995. }
  6996.  
  6997. Return (Local0)
  6998. }
  6999.  
  7000. Method (BCON, 1, NotSerialized)
  7001. {
  7002. If (!((Arg0 ^ \_SB.PCI0.LPC.BUSS) & 0x01))
  7003. {
  7004. Local0 = \_SB.PCI0.LPC.EC.DATT (0x00, 0x02)
  7005. \_SB.PCI0.LPC.EC.DATT (0x00, 0x01)
  7006. Reset (DEVT)
  7007. \_SB.PCI0.LPC.SERQ |= 0x40
  7008. Stall (0x64)
  7009. If (!Arg0)
  7010. {
  7011. PPIR (0x00)
  7012. }
  7013.  
  7014. \_SB.PCI0.LPC.SERQ &= 0x7F
  7015. Local1 = \_SB.PCI0.LPC.CLKR
  7016. If (Arg0)
  7017. {
  7018. \_SB.PCI0.LPC.CLKR = 0x00
  7019. \_SB.PCI0.LPC.BUSD = 0x00
  7020. \_SB.PCI0.LPC.BUSC = 0x01
  7021. }
  7022. Else
  7023. {
  7024. \_SB.PCI0.LPC.BUSC = 0x00
  7025. \_SB.PCI0.LPC.BUSD = 0x01
  7026. }
  7027.  
  7028. While (!\_SB.PCI0.LPC.SCIR)
  7029. {
  7030. Sleep (0x01)
  7031. }
  7032.  
  7033. \_SB.PCI0.LPC.EC._Q37 ()
  7034. \_SB.PCI0.LPC.CLKR = Local1
  7035. \_SB.PCI0.LPC.SERQ |= 0xC0
  7036. Stall (0x64)
  7037. If (Arg0)
  7038. {
  7039. PPIR (0x01)
  7040. Stall (0x64)
  7041. }
  7042.  
  7043. \_SB.PCI0.LPC.SERQ &= 0xBF
  7044. If ((Local0 == 0x00))
  7045. {
  7046. \_SB.PCI0.LPC.EC.DATT (0x00, 0x00)
  7047. }
  7048. }
  7049. }
  7050.  
  7051. Method (SLCK, 1, NotSerialized)
  7052. {
  7053. If (Arg0)
  7054. {
  7055. \_SB.PCI0.LPC.LCKE = 0x01
  7056. }
  7057. Else
  7058. {
  7059. \_SB.PCI0.LPC.LCKE = 0x00
  7060. }
  7061. }
  7062.  
  7063. Method (LTCY, 0, NotSerialized)
  7064. {
  7065. If ((GDID () == 0x4A004D24))
  7066. {
  7067. LDEV (0x00)
  7068. LDEV (0x01)
  7069. LCBS (0x02)
  7070. }
  7071. }
  7072.  
  7073. Method (LDEV, 1, NotSerialized)
  7074. {
  7075. Local0 = DPCI (Arg0, 0x00)
  7076. Local1 = 0x00
  7077. While ((Local1 < 0x08))
  7078. {
  7079. Local2 = (Local0 | (Local1 << 0x08))
  7080. Local3 = \RPCI ((Local2 | 0x02))
  7081. Local4 = \RPCI ((Local2 | 0x03))
  7082. If (((Local3 != 0xFF) || (Local4 != 0xFF)))
  7083. {
  7084. Local5 = \RPCI ((Local2 | 0x0E))
  7085. If (!Local5)
  7086. {
  7087. Local6 = \RPCI ((Local2 | 0x3E))
  7088. If ((Local6 <= 0x08))
  7089. {
  7090. Local7 = 0x40
  7091. }
  7092. ElseIf ((Local6 <= 0x1F))
  7093. {
  7094. Local7 = (Local6 * 0x08)
  7095. }
  7096. Else
  7097. {
  7098. Local7 = 0xD0
  7099. }
  7100.  
  7101. \WPCI ((Local2 | 0x0D), Local7)
  7102. \WPCI ((Local2 | 0x0C), 0x08)
  7103. }
  7104. }
  7105.  
  7106. Local1++
  7107. }
  7108. }
  7109.  
  7110. Method (LCBS, 1, NotSerialized)
  7111. {
  7112. Local0 = DPCI (Arg0, 0x00)
  7113. Local1 = 0x00
  7114. While ((Local1 < 0x02))
  7115. {
  7116. Local2 = (Local0 | (Local1 << 0x08))
  7117. \WPCI ((Local2 | 0x0C), 0x08)
  7118. \WPCI ((Local2 | 0x0D), 0x40)
  7119. \WPCI ((Local2 | 0x1B), 0x80)
  7120. Local1++
  7121. }
  7122. }
  7123.  
  7124. Method (DADR, 1, NotSerialized)
  7125. {
  7126. Local0 = ((Arg0 & 0x001F0000) >> 0x10)
  7127. Local1 = (Arg0 & 0x07)
  7128. Return (DPCI (Local0, Local1))
  7129. }
  7130.  
  7131. Method (DPCI, 2, NotSerialized)
  7132. {
  7133. Local0 = \RPCI ((PADR (0x00, 0x001E0000) | 0x19))
  7134. Local0 = \RPCI ((PADR (Local0, _ADR) | 0x19))
  7135. Local0 <<= 0x10
  7136. Local1 = ((Arg0 & 0x1F) << 0x0B)
  7137. Local2 = ((Arg1 & 0x07) << 0x08)
  7138. Local0 |= Local1
  7139. Local0 |= Local2
  7140. Local0 |= 0x80000000
  7141. Return (Local0)
  7142. }
  7143.  
  7144. Method (PADR, 2, NotSerialized)
  7145. {
  7146. Local0 = ((Arg0 & 0xFF) << 0x10)
  7147. Local1 = ((Arg1 & 0x001F0000) >> 0x05)
  7148. Local2 = ((Arg1 & 0x07) << 0x08)
  7149. Local0 |= Local1
  7150. Local0 |= Local2
  7151. Local0 |= 0x80000000
  7152. Return (Local0)
  7153. }
  7154.  
  7155. Method (DFLG, 2, NotSerialized)
  7156. {
  7157. If ((Arg0 == 0x00))
  7158. {
  7159. FLAG |= Arg1
  7160. }
  7161.  
  7162. If ((Arg0 == 0x01))
  7163. {
  7164. FLAG &= ~Arg1
  7165. }
  7166.  
  7167. If ((FLAG & Arg1))
  7168. {
  7169. Return (0x01)
  7170. }
  7171. Else
  7172. {
  7173. Return (0x00)
  7174. }
  7175. }
  7176.  
  7177. Scope (\_SB.PCI0.LPC.EC)
  7178. {
  7179. Method (_Q37, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  7180. {
  7181. Local0 = \_SB.PCI0.LPC.SCIR
  7182. If ((Local0 == 0x01))
  7183. {
  7184. Local1 = 0x03E8
  7185. \_SB.GDCK.G_ID = 0xFFFFFFFF
  7186. While (((\_SB.GDCK.GGID () != 0x00) && Local1))
  7187. {
  7188. Sleep (0x01)
  7189. \_SB.GDCK.G_ID = 0xFFFFFFFF
  7190. Local1--
  7191. }
  7192.  
  7193. \_SB.PCI0.PCI1.DOCK.DOID = 0xFFFFFFFF
  7194. If ((\_SB.PCI0.PCI1.DOCK.GDID () == 0x4A004D24))
  7195. {
  7196. Notify (\_SB.GDCK, 0x00) // Bus Check
  7197. }
  7198. }
  7199.  
  7200. If (((Local0 == 0x02) && \_SB.PCI0.LPC.BUSC))
  7201. {
  7202. Signal (\_SB.PCI0.PCI1.DOCK.DEVT)
  7203. }
  7204.  
  7205. If (((Local0 == 0x03) && \_SB.PCI0.LPC.BUSD))
  7206. {
  7207. Signal (\_SB.PCI0.PCI1.DOCK.DEVT)
  7208. }
  7209.  
  7210. \_SB.PCI0.LPC.SCIR = 0x00
  7211. }
  7212.  
  7213. Method (EEPR, 0, NotSerialized)
  7214. {
  7215. Local0 = 0x00
  7216. If (\H8DR)
  7217. {
  7218. HDEO = 0x00
  7219. HDEC = 0x0A
  7220. While (!(HDEC & 0xC0))
  7221. {
  7222. Sleep (0x01)
  7223. }
  7224.  
  7225. If (!(HDEC & 0x40))
  7226. {
  7227. Local1 = 0x00
  7228. Local2 = HDEN /* \_SB_.PCI0.LPC_.EC__.HDEN */
  7229. Local3 = 0x04
  7230. While (Local3)
  7231. {
  7232. Local1 += (Local2 & 0xFF)
  7233. Local2 >>= 0x08
  7234. Local3--
  7235. }
  7236.  
  7237. Local2 = HDEP /* \_SB_.PCI0.LPC_.EC__.HDEP */
  7238. Local3 = 0x04
  7239. While (Local3)
  7240. {
  7241. Local1 += (Local2 & 0xFF)
  7242. Local2 >>= 0x08
  7243. Local3--
  7244. }
  7245.  
  7246. Local1 += HDEM /* \_SB_.PCI0.LPC_.EC__.HDEM */
  7247. Local1 += HDES /* \_SB_.PCI0.LPC_.EC__.HDES */
  7248. If (!(Local1 & 0xFF))
  7249. {
  7250. Local0 = 0x01
  7251. }
  7252. }
  7253. }
  7254.  
  7255. Return (Local0)
  7256. }
  7257. }
  7258.  
  7259. OperationRegion (PPCS, PCI_Config, 0x00, 0x0100)
  7260. Field (PPCS, DWordAcc, NoLock, Preserve)
  7261. {
  7262. Offset (0x40),
  7263. SVID, 16,
  7264. SSID, 16,
  7265. Offset (0x66),
  7266. SDCL, 8,
  7267. PDCL, 8,
  7268. Offset (0x6C),
  7269. SCAD, 8,
  7270. BUFC, 8,
  7271. Offset (0x6F),
  7272. CLKR, 8,
  7273. Offset (0x76),
  7274. PG0D, 1,
  7275. PG1D, 1,
  7276. PG2D, 1,
  7277. PG3D, 1,
  7278. SG0D, 1,
  7279. SG1D, 1,
  7280. SG2D, 1,
  7281. SG3D, 1,
  7282. PG0O, 1,
  7283. PG1O, 1,
  7284. PG2O, 1,
  7285. PG3O, 1,
  7286. SG0O, 1,
  7287. SG1O, 1,
  7288. SG2O, 1,
  7289. SG3O, 1,
  7290. Offset (0x79),
  7291. SERQ, 8,
  7292. ARMK, 8
  7293. }
  7294.  
  7295. Method (PPIN, 0, NotSerialized)
  7296. {
  7297. Local0 = PPAD ()
  7298. Local1 = \RPCI ((Local0 | 0x84))
  7299. If ((Local1 && 0x03))
  7300. {
  7301. \WPCI ((Local0 | 0x84), (Local1 & 0xFC))
  7302. Sleep (0x0A)
  7303. }
  7304.  
  7305. If (\W98F)
  7306. {
  7307. \WPCI ((Local0 | 0x1C), 0xF0)
  7308. \WPCI ((Local0 | 0x1D), 0x00)
  7309. \WPCI ((Local0 | 0x20), 0xF0)
  7310. \WPCI ((Local0 | 0x21), 0xFF)
  7311. \WPCI ((Local0 | 0x22), 0x00)
  7312. \WPCI ((Local0 | 0x23), 0x00)
  7313. \WPCI ((Local0 | 0x24), 0xF0)
  7314. \WPCI ((Local0 | 0x25), 0xFF)
  7315. \WPCI ((Local0 | 0x26), 0x00)
  7316. \WPCI ((Local0 | 0x27), 0x00)
  7317. }
  7318.  
  7319. \WPCI ((Local0 | 0x0C), 0x08)
  7320. \WPCI ((Local0 | 0x0D), 0x40)
  7321. \WPCI ((Local0 | 0x1B), 0x44)
  7322. SVID = 0x1014
  7323. SSID = 0xE3
  7324. SDCL = ((SDCL & 0x00) | 0x01)
  7325. PDCL = ((PDCL & 0x00) | 0x01)
  7326. SCAD = ((SCAD & 0x02) | 0xB0)
  7327. BUFC = ((BUFC & 0x00) | 0x1F)
  7328. CLKR = ((CLKR & 0x00) | 0x0C)
  7329. SERQ = ((SERQ & 0x00) | 0x23)
  7330. ARMK = ((ARMK & 0x00) | 0x38)
  7331. PPFD ()
  7332. PPUB (0x01)
  7333. PPMX ()
  7334. }
  7335.  
  7336. Method (PPIR, 1, NotSerialized)
  7337. {
  7338. If (Arg0)
  7339. {
  7340. SERQ = ((SERQ & 0x00) | 0x23)
  7341. }
  7342. Else
  7343. {
  7344. SERQ = ((SERQ & 0xFE) | 0x00)
  7345. }
  7346. }
  7347.  
  7348. Method (PPEN, 1, NotSerialized)
  7349. {
  7350. Local0 = PPAD ()
  7351. Local1 = \RPCI ((Local0 | 0x04))
  7352. If (Arg0)
  7353. {
  7354. \MPCI ((Local0 | 0x04), 0xFF, 0x07)
  7355. }
  7356. Else
  7357. {
  7358. \MPCI ((Local0 | 0x04), 0xF8, 0x00)
  7359. }
  7360.  
  7361. Return (Local1)
  7362. }
  7363.  
  7364. Method (PPRS, 0, NotSerialized)
  7365. {
  7366. Local0 = PPAD ()
  7367. \MPCI ((Local0 | 0x3E), 0xFF, 0x40)
  7368. Sleep (0x64)
  7369. \MPCI ((Local0 | 0x3E), 0xBF, 0x00)
  7370. }
  7371.  
  7372. Method (PPFD, 0, NotSerialized)
  7373. {
  7374. SG1D = 0x01
  7375. If ((GDBI () == 0x0D))
  7376. {
  7377. \_SB.PCI0.LPC.FDC.DCFD = 0x01
  7378. SG1O = 0x01
  7379. }
  7380. Else
  7381. {
  7382. \_SB.PCI0.LPC.FDC.DCFD = 0x00
  7383. SG1O = 0x00
  7384. }
  7385. }
  7386.  
  7387. Method (PPUB, 1, NotSerialized)
  7388. {
  7389. PG3D = 0x01
  7390. If (Arg0)
  7391. {
  7392. PG3O = 0x00
  7393. }
  7394. Else
  7395. {
  7396. PG3O = 0x01
  7397. }
  7398. }
  7399.  
  7400. Method (PPID, 0, NotSerialized)
  7401. {
  7402. SG0O = 0x00
  7403. SG0D = 0x01
  7404. SG0O = 0x01
  7405. Sleep (0x01)
  7406. SG0O = 0x00
  7407. SG0D = 0x00
  7408. Sleep (0x19)
  7409. }
  7410.  
  7411. Name (DPRB, 0x00)
  7412. Name (DSCB, 0x00)
  7413. Name (DSOB, 0x00)
  7414. Name (USOB, 0x00)
  7415. Method (PPBN, 1, NotSerialized)
  7416. {
  7417. Local0 = PADR (0x00, 0x001E0000)
  7418. Local1 = PPAD ()
  7419. If ((Arg0 == 0x01))
  7420. {
  7421. DPRB = \RPCI ((Local1 | 0x18))
  7422. DSCB = \RPCI ((Local1 | 0x19))
  7423. DSOB = \RPCI ((Local1 | 0x1A))
  7424. USOB = \RPCI ((Local0 | 0x1A))
  7425. If (!DSCB)
  7426. {
  7427. \WPCI ((Local1 | 0x18), \RPCI ((Local0 | 0x19)))
  7428. Local2 = (USOB + 0x01)
  7429. \WPCI ((Local1 | 0x19), Local2)
  7430. Local2 += 0x06
  7431. \WPCI ((Local1 | 0x1A), Local2)
  7432. If ((Local2 > USOB))
  7433. {
  7434. \WPCI ((Local0 | 0x1A), Local2)
  7435. }
  7436. }
  7437. }
  7438.  
  7439. If ((Arg0 == 0x00))
  7440. {
  7441. \WPCI ((Local1 | 0x18), DPRB)
  7442. \WPCI ((Local1 | 0x19), DSCB)
  7443. \WPCI ((Local1 | 0x1A), DSOB)
  7444. \WPCI ((Local0 | 0x1A), USOB)
  7445. }
  7446. }
  7447.  
  7448. Method (PPMX, 0, NotSerialized)
  7449. {
  7450. PPBN (0x01)
  7451. Local0 = DPCI (0x00, 0x00)
  7452. Local1 = 0x04
  7453. Local2 = 0x00
  7454. While (Local1)
  7455. {
  7456. Local1--
  7457. Local2 <<= 0x08
  7458. Local2 |= \RPCI ((Local0 | Local1))
  7459. }
  7460.  
  7461. If ((Local2 == 0x00213388))
  7462. {
  7463. SDCL |= 0x04
  7464. }
  7465.  
  7466. PPBN (0x00)
  7467. }
  7468.  
  7469. Method (PPAD, 0, NotSerialized)
  7470. {
  7471. Local0 = \RPCI ((PADR (0x00, 0x001E0000) | 0x19))
  7472. Return (PADR (Local0, _ADR))
  7473. }
  7474.  
  7475. Device (IDE1)
  7476. {
  7477. Name (_ADR, 0x00010000) // _ADR: Address
  7478. Name (_S3D, 0x03) // _S3D: S3 Device State
  7479. OperationRegion (CMCS, PCI_Config, 0x00, 0x0100)
  7480. Field (CMCS, DWordAcc, NoLock, Preserve)
  7481. {
  7482. Offset (0x4F),
  7483. , 2,
  7484. ENCL, 1,
  7485. Offset (0x50),
  7486. Offset (0x51),
  7487. , 2,
  7488. PRMC, 1,
  7489. SNDC, 1,
  7490. Offset (0x52),
  7491. XCMT, 8,
  7492. , 6,
  7493. XAR0, 2,
  7494. XDRR, 4,
  7495. XDRW, 4,
  7496. Offset (0x73),
  7497. XUDM, 1,
  7498. , 1,
  7499. XUDC, 1,
  7500. , 1,
  7501. XUDT, 2,
  7502. Offset (0x74)
  7503. }
  7504.  
  7505. Method (DREG, 2, NotSerialized)
  7506. {
  7507. If ((Arg0 == 0x02))
  7508. {
  7509. If (Arg1)
  7510. {
  7511. If ((\_SB.PCI0.PCI1.DOCK.GDID () == 0x4A004D24))
  7512. {
  7513. If (!(\_SB.PCI0.PCI1.DOCK.SCAD & 0x02))
  7514. {
  7515. PRMC = 0x01
  7516. SNDC = 0x01
  7517. }
  7518. }
  7519.  
  7520. If (\W98F)
  7521. {
  7522. RAID ()
  7523. }
  7524. }
  7525. }
  7526. }
  7527.  
  7528. Method (RAID, 0, NotSerialized)
  7529. {
  7530. ENCL = 0x01
  7531. Local0 = DADR (_ADR)
  7532. \WPCI ((Local0 | 0x0A), 0x04)
  7533. ENCL = 0x00
  7534. }
  7535.  
  7536. Method (_STA, 0, NotSerialized) // _STA: Status
  7537. {
  7538. Local0 = 0x00
  7539. If ((\_SB.PCI0.PCI1.DOCK.GDID () == 0x4A004D24))
  7540. {
  7541. If (!(\_SB.PCI0.PCI1.DOCK.SCAD & 0x02))
  7542. {
  7543. Local0 = 0x0F
  7544. }
  7545. }
  7546.  
  7547. Return (Local0)
  7548. }
  7549.  
  7550. Method (CART, 1, NotSerialized)
  7551. {
  7552. If ((Arg0 == 0x00))
  7553. {
  7554. Return (0x02)
  7555. }
  7556. Else
  7557. {
  7558. Return (0x01)
  7559. }
  7560. }
  7561.  
  7562. Method (CCMD, 1, NotSerialized)
  7563. {
  7564. If ((Arg0 == 0x04))
  7565. {
  7566. Return (0x3F)
  7567. }
  7568. ElseIf ((Arg0 == 0x03))
  7569. {
  7570. Return (0x32)
  7571. }
  7572. ElseIf ((Arg0 == 0x02))
  7573. {
  7574. Return (0xAF)
  7575. }
  7576. ElseIf ((Arg0 == 0x01))
  7577. {
  7578. Return (0xA2)
  7579. }
  7580. Else
  7581. {
  7582. Return (0xA9)
  7583. }
  7584. }
  7585.  
  7586. Method (CDRW, 2, NotSerialized)
  7587. {
  7588. If ((Arg0 == 0x01))
  7589. {
  7590. Local0 = 0x88
  7591. }
  7592. ElseIf ((Arg0 == 0x02))
  7593. {
  7594. Local0 = 0x31
  7595. }
  7596. ElseIf ((Arg0 == 0x03))
  7597. {
  7598. Local0 = 0x3F
  7599. }
  7600. Else
  7601. {
  7602. Local0 = 0xFFFFFFFF
  7603. }
  7604.  
  7605. If ((Arg1 == 0x00))
  7606. {
  7607. Local1 = 0x6D
  7608. }
  7609. ElseIf ((Arg1 == 0x01))
  7610. {
  7611. Local1 = 0x43
  7612. }
  7613. ElseIf ((Arg1 == 0x02))
  7614. {
  7615. Local1 = 0x43
  7616. }
  7617. ElseIf ((Arg1 == 0x03))
  7618. {
  7619. Local1 = 0x32
  7620. }
  7621. Else
  7622. {
  7623. Local1 = 0x3F
  7624. }
  7625.  
  7626. If ((Local0 != 0xFFFFFFFF))
  7627. {
  7628. If ((CCYC (Local0) > CCYC (Local1)))
  7629. {
  7630. Local1 = Local0
  7631. }
  7632. }
  7633.  
  7634. Return (Local1)
  7635. }
  7636.  
  7637. Method (CCYC, 1, NotSerialized)
  7638. {
  7639. Local0 = (Arg0 & 0x0F)
  7640. Local1 = (Arg0 >> 0x04)
  7641. If (Local0)
  7642. {
  7643. If ((Local0 == 0x0F))
  7644. {
  7645. Local0 = 0x01
  7646. }
  7647. Else
  7648. {
  7649. Local0++
  7650. }
  7651. }
  7652. Else
  7653. {
  7654. Local0 = 0x10
  7655. }
  7656.  
  7657. If (!Local1)
  7658. {
  7659. Local1 = 0x10
  7660. }
  7661.  
  7662. Local0 += Local1
  7663. Local0 *= 0x1E
  7664. Return (Local0)
  7665. }
  7666.  
  7667. Method (CUDC, 1, NotSerialized)
  7668. {
  7669. If ((Arg0 == 0xFF))
  7670. {
  7671. Return (0x11)
  7672. }
  7673. ElseIf ((Arg0 == 0x00))
  7674. {
  7675. Return (0x03)
  7676. }
  7677. ElseIf ((Arg0 == 0x01))
  7678. {
  7679. Return (0x02)
  7680. }
  7681. ElseIf ((Arg0 == 0x02))
  7682. {
  7683. Return (0x01)
  7684. }
  7685. ElseIf ((Arg0 == 0x03))
  7686. {
  7687. Return (0x02)
  7688. }
  7689. ElseIf ((Arg0 == 0x04))
  7690. {
  7691. Return (0x01)
  7692. }
  7693.  
  7694. Return (0x11)
  7695. }
  7696.  
  7697. Device (PRIM)
  7698. {
  7699. Name (_ADR, 0x00) // _ADR: Address
  7700. Name (BGTM, Buffer (0x14){})
  7701. CreateDWordField (BGTM, 0x00, GTP0)
  7702. CreateDWordField (BGTM, 0x04, GTD0)
  7703. CreateDWordField (BGTM, 0x08, GTP1)
  7704. CreateDWordField (BGTM, 0x0C, GTD1)
  7705. CreateDWordField (BGTM, 0x10, GTMF)
  7706. Name (BPI0, 0x00)
  7707. Name (BDM0, 0x00)
  7708. Name (BPI1, 0x00)
  7709. Name (BDM1, 0x00)
  7710. Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode
  7711. {
  7712. Local4 = 0x12
  7713. If (XCMT)
  7714. {
  7715. If (XDRR)
  7716. {
  7717. If ((XDRR == 0x0F))
  7718. {
  7719. Local0 = 0x01
  7720. }
  7721. Else
  7722. {
  7723. Local0 = (0x01 + XDRR) /* \_SB_.PCI0.PCI1.DOCK.IDE1.XDRR */
  7724. }
  7725. }
  7726. Else
  7727. {
  7728. Local0 = 0x10
  7729. }
  7730.  
  7731. If (XDRW)
  7732. {
  7733. Local1 = XDRW /* \_SB_.PCI0.PCI1.DOCK.IDE1.XDRW */
  7734. }
  7735. Else
  7736. {
  7737. Local1 = 0x10
  7738. }
  7739.  
  7740. Local0 += Local1
  7741. Local0 *= 0x1E
  7742. If ((Local0 > 0xF0))
  7743. {
  7744. Local0 = 0x0384
  7745. }
  7746.  
  7747. Local1 = Local0
  7748. }
  7749. Else
  7750. {
  7751. Local0 = 0x00
  7752. }
  7753.  
  7754. Local1 = Local0
  7755. If (XUDM)
  7756. {
  7757. Local4 |= 0x01
  7758. If (XUDC)
  7759. {
  7760. Local1 = (XUDT + 0x01)
  7761. Local1 *= 0x0F
  7762. }
  7763. Else
  7764. {
  7765. Local1 = (XUDT + 0x01)
  7766. Local1 *= 0x1E
  7767. If ((Local1 == 0x5A))
  7768. {
  7769. Local1 = 0x50
  7770. }
  7771. }
  7772. }
  7773.  
  7774. If (!Local0)
  7775. {
  7776. Local4 |= 0x01
  7777. Local0 = 0x78
  7778. Local1 = 0x1E
  7779. }
  7780.  
  7781. GTP0 = Local0
  7782. GTD0 = Local1
  7783. GTP1 = 0x00
  7784. GTD1 = 0x00
  7785. GTMF = Local4
  7786. Return (BGTM) /* \_SB_.PCI0.PCI1.DOCK.IDE1.PRIM.BGTM */
  7787. }
  7788.  
  7789. Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
  7790. {
  7791. If ((SizeOf (Arg1) == 0x0200))
  7792. {
  7793. CreateDWordField (Arg0, 0x00, STP0)
  7794. CreateDWordField (Arg0, 0x04, STD0)
  7795. CreateDWordField (Arg0, 0x08, STP1)
  7796. CreateDWordField (Arg0, 0x0C, STD1)
  7797. CreateDWordField (Arg0, 0x10, STMF)
  7798. CreateWordField (Arg1, 0x00, D000)
  7799. CreateWordField (Arg1, 0x62, D049)
  7800. CreateWordField (Arg1, 0x66, D051)
  7801. CreateWordField (Arg1, 0x6A, D053)
  7802. CreateWordField (Arg1, 0x7C, D062)
  7803. CreateWordField (Arg1, 0x7E, D063)
  7804. CreateWordField (Arg1, 0x80, D064)
  7805. CreateWordField (Arg1, 0x82, D065)
  7806. CreateWordField (Arg1, 0x88, D068)
  7807. CreateWordField (Arg1, 0xB0, D088)
  7808. If (\W98F)
  7809. {
  7810. STD0 = \UUDM (D053, D088)
  7811. If (STD0)
  7812. {
  7813. STMF |= 0x01
  7814. }
  7815. Else
  7816. {
  7817. STMF &= 0xFE
  7818. }
  7819.  
  7820. STP0 = \UMDM (D053, D063, D062, D065)
  7821. If (!STP0)
  7822. {
  7823. STP0 = \UPIO (D053, D064, D051, D068)
  7824. }
  7825.  
  7826. If ((D049 & 0x0800))
  7827. {
  7828. STMF |= 0x02
  7829. }
  7830. Else
  7831. {
  7832. STMF &= 0xFD
  7833. }
  7834. }
  7835.  
  7836. Local0 = \DPIO (STP0, (STMF & 0x02))
  7837. Local1 = \DUDM (STD0, (STMF & 0x01))
  7838. Local2 = \DMDM (STD0, (STMF & 0x01))
  7839. XAR0 = CART (Local0)
  7840. XCMT = CCMD (Local0)
  7841. Local3 = CDRW (Local2, Local0)
  7842. XDRR = (Local3 & 0x0F)
  7843. XDRW = (Local3 >> 0x04)
  7844. If ((Local1 != 0xFF))
  7845. {
  7846. XUDM = 0x01
  7847. If ((Local1 <= 0x02))
  7848. {
  7849. XUDC = 0x00
  7850. }
  7851. Else
  7852. {
  7853. XUDC = 0x01
  7854. }
  7855.  
  7856. XUDT = CUDC (Local1)
  7857. }
  7858.  
  7859. BDM0 = \FDMA (Local0, Local1)
  7860. BPI0 = \FPIO (Local0)
  7861. }
  7862. }
  7863.  
  7864. Device (MSTR)
  7865. {
  7866. Name (_ADR, 0x00) // _ADR: Address
  7867. Name (HDTF, Buffer (0x1C)
  7868. {
  7869. /* 0000 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, // ........
  7870. /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00, // ........
  7871. /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00, // ........
  7872. /* 0018 */ 0x00, 0x00, 0xA0, 0xEF // ....
  7873. })
  7874. CreateByteField (HDTF, 0x0F, HDMA)
  7875. CreateByteField (HDTF, 0x16, HPIO)
  7876. Name (IDTF, Buffer (0x0E)
  7877. {
  7878. /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, // ........
  7879. /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF // ......
  7880. })
  7881. CreateByteField (IDTF, 0x01, IDMA)
  7882. CreateByteField (IDTF, 0x08, IPIO)
  7883. Name (DDTF, Buffer (0x1C)
  7884. {
  7885. /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, // ........
  7886. /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 0x00, // ........
  7887. /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, // ........
  7888. /* 0018 */ 0x00, 0x00, 0xA0, 0xE3 // ....
  7889. })
  7890. CreateByteField (DDTF, 0x01, DDMA)
  7891. CreateByteField (DDTF, 0x08, DPIO)
  7892. CreateByteField (DDTF, 0x0F, DTAT)
  7893. CreateByteField (DDTF, 0x16, DTFT)
  7894. Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
  7895. {
  7896. If ((\_SB.PCI0.PCI1.DOCK.GDBI () == 0x06))
  7897. {
  7898. HDMA = ^^BDM0 /* \_SB_.PCI0.PCI1.DOCK.IDE1.PRIM.BDM0 */
  7899. HPIO = ^^BPI0 /* \_SB_.PCI0.PCI1.DOCK.IDE1.PRIM.BPI0 */
  7900. Return (HDTF) /* \_SB_.PCI0.PCI1.DOCK.IDE1.PRIM.MSTR.HDTF */
  7901. }
  7902. Else
  7903. {
  7904. IDMA = ^^BDM0 /* \_SB_.PCI0.PCI1.DOCK.IDE1.PRIM.BDM0 */
  7905. IPIO = ^^BPI0 /* \_SB_.PCI0.PCI1.DOCK.IDE1.PRIM.BPI0 */
  7906. Return (IDTF) /* \_SB_.PCI0.PCI1.DOCK.IDE1.PRIM.MSTR.IDTF */
  7907. }
  7908. }
  7909. }
  7910. }
  7911. }
  7912.  
  7913. Device (CBS2)
  7914. {
  7915. Name (_ADR, 0x00020000) // _ADR: Address
  7916. Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
  7917. {
  7918. If (\WMEF)
  7919. {
  7920. Return (0x02)
  7921. }
  7922.  
  7923. Return (0x03)
  7924. }
  7925.  
  7926. Name (_SUN, 0x03) // _SUN: Slot User Number
  7927. Method (_STA, 0, NotSerialized) // _STA: Status
  7928. {
  7929. If ((\_SB.PCI0.PCI1.DOCK.GDID () == 0x4A004D24))
  7930. {
  7931. Return (0x0F)
  7932. }
  7933. Else
  7934. {
  7935. Return (0x00)
  7936. }
  7937. }
  7938.  
  7939. Method (DREG, 2, NotSerialized)
  7940. {
  7941. If (((Arg0 == 0x02) && (Arg1 == 0x01)))
  7942. {
  7943. If ((\_SB.PCI0.PCI1.DOCK.GDID () == 0x4A004D24))
  7944. {
  7945. ICFG ()
  7946. }
  7947. }
  7948. }
  7949.  
  7950. OperationRegion (CBUS, PCI_Config, 0x00, 0x0100)
  7951. Field (CBUS, DWordAcc, NoLock, Preserve)
  7952. {
  7953. Offset (0x44),
  7954. LGDC, 32,
  7955. Offset (0x80),
  7956. SYSC, 32,
  7957. Offset (0x8C),
  7958. MULR, 32,
  7959. RSTS, 8,
  7960. CCTL, 8,
  7961. DCTL, 8,
  7962. DIAG, 8
  7963. }
  7964.  
  7965. Method (ICFG, 0, NotSerialized)
  7966. {
  7967. LGDC = ((LGDC & 0x00) | 0x00)
  7968. SYSC = ((SYSC & 0x00FFFF00) | 0xA864C077)
  7969. MULR = ((MULR & 0x00) | 0x1002)
  7970. RSTS = ((RSTS & 0x00) | 0xC0)
  7971. CCTL = ((CCTL & 0x7B) | 0x02)
  7972. DCTL = ((DCTL & 0x00) | 0x66)
  7973. DIAG = ((DIAG & 0x1E) | 0x40)
  7974. }
  7975. }
  7976.  
  7977. Device (CBS3)
  7978. {
  7979. Name (_ADR, 0x00020001) // _ADR: Address
  7980. Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
  7981. {
  7982. If (\WMEF)
  7983. {
  7984. Return (0x02)
  7985. }
  7986.  
  7987. Return (0x03)
  7988. }
  7989.  
  7990. Name (_SUN, 0x04) // _SUN: Slot User Number
  7991. Method (_STA, 0, NotSerialized) // _STA: Status
  7992. {
  7993. If ((\_SB.PCI0.PCI1.DOCK.GDID () == 0x4A004D24))
  7994. {
  7995. Return (0x0F)
  7996. }
  7997. Else
  7998. {
  7999. Return (0x00)
  8000. }
  8001. }
  8002.  
  8003. Method (DREG, 2, NotSerialized)
  8004. {
  8005. If (((Arg0 == 0x02) && (Arg1 == 0x01)))
  8006. {
  8007. If ((\_SB.PCI0.PCI1.DOCK.GDID () == 0x4A004D24))
  8008. {
  8009. ICFG ()
  8010. }
  8011. }
  8012. }
  8013.  
  8014. OperationRegion (CBUS, PCI_Config, 0x00, 0x0100)
  8015. Field (CBUS, DWordAcc, NoLock, Preserve)
  8016. {
  8017. Offset (0x44),
  8018. LGDC, 32,
  8019. Offset (0x80),
  8020. SYSC, 32,
  8021. Offset (0x8C),
  8022. MULR, 32,
  8023. RSTS, 8,
  8024. CCTL, 8,
  8025. DCTL, 8,
  8026. DIAG, 8
  8027. }
  8028.  
  8029. Method (ICFG, 0, NotSerialized)
  8030. {
  8031. LGDC = ((LGDC & 0x00) | 0x00)
  8032. SYSC = ((SYSC & 0x00FFFF00) | 0xA864C077)
  8033. MULR = ((MULR & 0x00) | 0x1002)
  8034. RSTS = ((RSTS & 0x00) | 0xC0)
  8035. CCTL = ((CCTL & 0x7B) | 0x02)
  8036. DCTL = ((DCTL & 0x00) | 0x66)
  8037. DIAG = ((DIAG & 0x1E) | 0x40)
  8038. }
  8039. }
  8040. }
  8041. }
  8042.  
  8043. Device (IDE0)
  8044. {
  8045. Name (_ADR, 0x001F0001) // _ADR: Address
  8046. Name (_S3D, 0x03) // _S3D: S3 Device State
  8047. OperationRegion (IDCS, PCI_Config, 0x00, 0x0100)
  8048. Field (IDCS, DWordAcc, NoLock, Preserve)
  8049. {
  8050. Offset (0x40),
  8051. PFT0, 1,
  8052. PIE0, 1,
  8053. PPE0, 1,
  8054. PDT0, 1,
  8055. PFT1, 1,
  8056. PIE1, 1,
  8057. PPE1, 1,
  8058. PDT1, 1,
  8059. PRC0, 2,
  8060. , 2,
  8061. PIS0, 2,
  8062. PSIE, 1,
  8063. PIDE, 1,
  8064. SFT0, 1,
  8065. SIE0, 1,
  8066. SPE0, 1,
  8067. SDT0, 1,
  8068. SFT1, 1,
  8069. SIE1, 1,
  8070. SPE1, 1,
  8071. SDT1, 1,
  8072. SRC0, 2,
  8073. , 2,
  8074. SIS0, 2,
  8075. SSIE, 1,
  8076. SIDE, 1,
  8077. PRC1, 2,
  8078. PIS1, 2,
  8079. SRC1, 2,
  8080. SIS1, 2,
  8081. Offset (0x48),
  8082. PSD0, 1,
  8083. PSD1, 1,
  8084. SSD0, 1,
  8085. SSD1, 1,
  8086. Offset (0x4A),
  8087. PCT0, 2,
  8088. , 2,
  8089. PCT1, 2,
  8090. Offset (0x4B),
  8091. SCT0, 2,
  8092. , 2,
  8093. SCT1, 2,
  8094. Offset (0x4C),
  8095. Offset (0x54),
  8096. PCB0, 1,
  8097. PCB1, 1,
  8098. SCB0, 1,
  8099. SCB1, 1,
  8100. PCR0, 1,
  8101. PCR1, 1,
  8102. SCR0, 1,
  8103. SCR1, 1,
  8104. , 2,
  8105. WRPP, 1,
  8106. , 1,
  8107. FPB0, 1,
  8108. FPB1, 1,
  8109. FSB0, 1,
  8110. FSB1, 1,
  8111. PSIG, 2,
  8112. SSIG, 2
  8113. }
  8114.  
  8115. Field (IDCS, DWordAcc, NoLock, Preserve)
  8116. {
  8117. Offset (0x40),
  8118. PTI0, 4,
  8119. PTI1, 4,
  8120. Offset (0x42),
  8121. STI0, 4,
  8122. STI1, 4
  8123. }
  8124.  
  8125. Method (GPCT, 4, NotSerialized)
  8126. {
  8127. If (!(Arg0 | Arg1))
  8128. {
  8129. Return (0x00)
  8130. }
  8131.  
  8132. If ((!Arg0 && Arg1))
  8133. {
  8134. Return (0x0384)
  8135. }
  8136.  
  8137. Return (((0x09 - (Arg2 + Arg3)) * 0x1E))
  8138. }
  8139.  
  8140. Method (GDCT, 4, NotSerialized)
  8141. {
  8142. If (!Arg0)
  8143. {
  8144. Return (0x00)
  8145. }
  8146.  
  8147. If (Arg1)
  8148. {
  8149. Return (0x14)
  8150. }
  8151.  
  8152. If (Arg2)
  8153. {
  8154. Return (((0x04 - Arg3) * 0x0F))
  8155. }
  8156.  
  8157. Return (((0x04 - Arg3) * 0x1E))
  8158. }
  8159.  
  8160. Method (MTIM, 2, NotSerialized)
  8161. {
  8162. Local0 = 0x00
  8163. If (Arg0)
  8164. {
  8165. Local0 |= 0x01
  8166. }
  8167.  
  8168. If ((Arg0 >= 0x02))
  8169. {
  8170. Local0 |= 0x02
  8171. }
  8172.  
  8173. If (!Arg1)
  8174. {
  8175. Local0 |= 0x04
  8176. }
  8177.  
  8178. If (!Arg0)
  8179. {
  8180. Local0 |= 0x08
  8181. }
  8182.  
  8183. Return (Local0)
  8184. }
  8185.  
  8186. Method (MISP, 1, NotSerialized)
  8187. {
  8188. If (!Arg0)
  8189. {
  8190. Return (0x00)
  8191. }
  8192.  
  8193. If ((Arg0 <= 0x02))
  8194. {
  8195. Return (0x01)
  8196. }
  8197.  
  8198. Return (0x02)
  8199. }
  8200.  
  8201. Method (MRCT, 1, NotSerialized)
  8202. {
  8203. If ((Arg0 <= 0x02))
  8204. {
  8205. Return (0x00)
  8206. }
  8207.  
  8208. If ((Arg0 == 0x03))
  8209. {
  8210. Return (0x01)
  8211. }
  8212.  
  8213. Return (0x03)
  8214. }
  8215.  
  8216. Device (PRIM)
  8217. {
  8218. Name (_ADR, 0x00) // _ADR: Address
  8219. Name (BGTM, Buffer (0x14){})
  8220. CreateDWordField (BGTM, 0x00, GTP0)
  8221. CreateDWordField (BGTM, 0x04, GTD0)
  8222. CreateDWordField (BGTM, 0x08, GTP1)
  8223. CreateDWordField (BGTM, 0x0C, GTD1)
  8224. CreateDWordField (BGTM, 0x10, GTMF)
  8225. Name (BPI0, 0x00)
  8226. Name (BDM0, 0x00)
  8227. Name (BPI1, 0x00)
  8228. Name (BDM1, 0x00)
  8229. Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode
  8230. {
  8231. GTP0 = GPCT (PFT0, PDT0, PIS0, PRC0)
  8232. GTD0 = GDCT (PSD0, FPB0, PCB0, PCT0)
  8233. If (!GTD0)
  8234. {
  8235. GTD0 = GTP0 /* \_SB_.PCI0.IDE0.PRIM.GTP0 */
  8236. }
  8237.  
  8238. If (PSIE)
  8239. {
  8240. GTP1 = GPCT (PFT1, PDT1, PIS1, PRC1)
  8241. GTD1 = GDCT (PSD1, FPB1, PCB1, PCT1)
  8242. If (!GTD1)
  8243. {
  8244. GTD1 = GTP1 /* \_SB_.PCI0.IDE0.PRIM.GTP1 */
  8245. }
  8246. }
  8247. Else
  8248. {
  8249. GTP1 = 0x00
  8250. GTD1 = 0x00
  8251. }
  8252.  
  8253. GTMF = 0x00
  8254. If (PSD0)
  8255. {
  8256. GTMF |= 0x01
  8257. }
  8258.  
  8259. If (PIE0)
  8260. {
  8261. GTMF |= 0x02
  8262. }
  8263.  
  8264. If (PSD1)
  8265. {
  8266. GTMF |= 0x04
  8267. }
  8268.  
  8269. If (PIE1)
  8270. {
  8271. GTMF |= 0x08
  8272. }
  8273.  
  8274. GTMF |= 0x10
  8275. Return (BGTM) /* \_SB_.PCI0.IDE0.PRIM.BGTM */
  8276. }
  8277.  
  8278. Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
  8279. {
  8280. CreateDWordField (Arg0, 0x00, STP0)
  8281. CreateDWordField (Arg0, 0x04, STD0)
  8282. CreateDWordField (Arg0, 0x08, STP1)
  8283. CreateDWordField (Arg0, 0x0C, STD1)
  8284. CreateDWordField (Arg0, 0x10, STMF)
  8285. If ((SizeOf (Arg1) == 0x0200))
  8286. {
  8287. CreateWordField (Arg1, 0x00, M000)
  8288. CreateWordField (Arg1, 0x62, M049)
  8289. CreateWordField (Arg1, 0x66, M051)
  8290. CreateWordField (Arg1, 0x6A, M053)
  8291. CreateWordField (Arg1, 0x7C, M062)
  8292. CreateWordField (Arg1, 0x7E, M063)
  8293. CreateWordField (Arg1, 0x80, M064)
  8294. CreateWordField (Arg1, 0x82, M065)
  8295. CreateWordField (Arg1, 0x88, M068)
  8296. CreateWordField (Arg1, 0xB0, M088)
  8297. If (\W98F)
  8298. {
  8299. STD0 = \UUDM (M053, M088)
  8300. If (STD0)
  8301. {
  8302. STMF |= 0x01
  8303. }
  8304. Else
  8305. {
  8306. STMF &= 0xFE
  8307. }
  8308.  
  8309. STP0 = \UMDM (M053, M063, M062, M065)
  8310. If (!STP0)
  8311. {
  8312. STP0 = \UPIO (M053, M064, M051, M068)
  8313. }
  8314.  
  8315. If ((M049 & 0x0800))
  8316. {
  8317. STMF |= 0x02
  8318. }
  8319. Else
  8320. {
  8321. STMF &= 0xFD
  8322. }
  8323. }
  8324.  
  8325. Local0 = \DPIO (STP0, (STMF & 0x02))
  8326. Local1 = \DUDM (STD0, (STMF & 0x01))
  8327. PTI0 = MTIM (Local0, (M000 & 0x8000))
  8328. PIS0 = MISP (Local0)
  8329. PRC0 = MRCT (Local0)
  8330. If ((Local1 == 0xFF))
  8331. {
  8332. PSD0 = 0x00
  8333. }
  8334. Else
  8335. {
  8336. PSD0 = 0x01
  8337. If ((Local1 <= 0x02))
  8338. {
  8339. PCT0 = Local1
  8340. }
  8341. ElseIf ((Local1 & 0x01))
  8342. {
  8343. PCT0 = 0x01
  8344. }
  8345. Else
  8346. {
  8347. PCT0 = 0x02
  8348. }
  8349.  
  8350. If ((Local1 >= 0x03))
  8351. {
  8352. PCB0 = 0x01
  8353. }
  8354. Else
  8355. {
  8356. PCB0 = 0x00
  8357. }
  8358.  
  8359. If ((Local1 == 0x05))
  8360. {
  8361. FPB0 = 0x01
  8362. }
  8363. Else
  8364. {
  8365. FPB0 = 0x00
  8366. }
  8367.  
  8368. PCR0 = 0x01
  8369. }
  8370.  
  8371. BDM0 = \FDMA (Local0, Local1)
  8372. BPI0 = \FPIO (Local0)
  8373. }
  8374.  
  8375. If ((SizeOf (Arg2) == 0x0200))
  8376. {
  8377. CreateWordField (Arg2, 0x00, S000)
  8378. CreateWordField (Arg2, 0x62, S049)
  8379. CreateWordField (Arg2, 0x66, S051)
  8380. CreateWordField (Arg2, 0x6A, S053)
  8381. CreateWordField (Arg2, 0x7C, S062)
  8382. CreateWordField (Arg2, 0x7E, S063)
  8383. CreateWordField (Arg2, 0x80, S064)
  8384. CreateWordField (Arg2, 0x82, S065)
  8385. CreateWordField (Arg2, 0x88, S068)
  8386. CreateWordField (Arg2, 0xB0, S088)
  8387. If (\W98F)
  8388. {
  8389. STD1 = \UUDM (S053, S088)
  8390. If (STD1)
  8391. {
  8392. STMF |= 0x04
  8393. }
  8394. Else
  8395. {
  8396. STMF &= 0xFB
  8397. }
  8398.  
  8399. STP1 = \UMDM (S053, S063, S062, S065)
  8400. If (!STP1)
  8401. {
  8402. STP1 = \UPIO (S053, S064, S051, S068)
  8403. }
  8404.  
  8405. If ((S049 & 0x0800))
  8406. {
  8407. STMF |= 0x08
  8408. }
  8409. Else
  8410. {
  8411. STMF &= 0xF7
  8412. }
  8413. }
  8414.  
  8415. Local0 = \DPIO (STP1, (STMF & 0x08))
  8416. Local1 = \DUDM (STD1, (STMF & 0x04))
  8417. If (STP1)
  8418. {
  8419. PTI1 = MTIM (Local0, (S000 & 0x8000))
  8420. If ((STMF & 0x10))
  8421. {
  8422. PIS1 = MISP (Local0)
  8423. PRC1 = MRCT (Local0)
  8424. PSIE = 0x01
  8425. }
  8426. }
  8427. Else
  8428. {
  8429. PTI1 = 0x00
  8430. PSIE = 0x00
  8431. }
  8432.  
  8433. If ((Local1 == 0xFF))
  8434. {
  8435. PSD1 = 0x00
  8436. }
  8437. Else
  8438. {
  8439. PSD1 = 0x01
  8440. If ((Local1 <= 0x02))
  8441. {
  8442. PCT1 = Local1
  8443. }
  8444. ElseIf ((Local1 & 0x01))
  8445. {
  8446. PCT1 = 0x01
  8447. }
  8448. Else
  8449. {
  8450. PCT1 = 0x02
  8451. }
  8452.  
  8453. If ((Local1 >= 0x03))
  8454. {
  8455. PCB1 = 0x01
  8456. }
  8457. Else
  8458. {
  8459. PCB1 = 0x00
  8460. }
  8461.  
  8462. If ((Local1 == 0x05))
  8463. {
  8464. FPB1 = 0x01
  8465. }
  8466. Else
  8467. {
  8468. FPB1 = 0x00
  8469. }
  8470.  
  8471. PCR1 = 0x01
  8472. }
  8473.  
  8474. BDM1 = \FDMA (Local0, Local1)
  8475. BPI1 = \FPIO (Local0)
  8476. }
  8477. }
  8478.  
  8479. Device (MSTR)
  8480. {
  8481. Name (_ADR, 0x00) // _ADR: Address
  8482. Name (HDTF, Buffer (0x1C)
  8483. {
  8484. /* 0000 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, // ........
  8485. /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00, // ........
  8486. /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00, // ........
  8487. /* 0018 */ 0x00, 0x00, 0xA0, 0xEF // ....
  8488. })
  8489. CreateByteField (HDTF, 0x0F, HDMA)
  8490. CreateByteField (HDTF, 0x16, HPIO)
  8491. Name (IDTF, Buffer (0x0E)
  8492. {
  8493. /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, // ........
  8494. /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF // ......
  8495. })
  8496. CreateByteField (IDTF, 0x01, IDMA)
  8497. CreateByteField (IDTF, 0x08, IPIO)
  8498. Name (DDTF, Buffer (0x1C)
  8499. {
  8500. /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, // ........
  8501. /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 0x00, // ........
  8502. /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, // ........
  8503. /* 0018 */ 0x00, 0x00, 0xA0, 0xE3 // ....
  8504. })
  8505. CreateByteField (DDTF, 0x01, DDMA)
  8506. CreateByteField (DDTF, 0x08, DPIO)
  8507. CreateByteField (DDTF, 0x0F, DTAT)
  8508. CreateByteField (DDTF, 0x16, DTFT)
  8509. Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
  8510. {
  8511. HDMA = ^^BDM0 /* \_SB_.PCI0.IDE0.PRIM.BDM0 */
  8512. HPIO = ^^BPI0 /* \_SB_.PCI0.IDE0.PRIM.BPI0 */
  8513. Return (HDTF) /* \_SB_.PCI0.IDE0.PRIM.MSTR.HDTF */
  8514. }
  8515.  
  8516. Name (_PSC, 0x00) // _PSC: Power State Current
  8517. Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
  8518. {
  8519. Local0 = _PSC /* \_SB_.PCI0.IDE0.PRIM.MSTR._PSC */
  8520. _PSC = 0x00
  8521. If ((Local0 == 0x03))
  8522. {
  8523. \FISP ()
  8524. }
  8525. }
  8526.  
  8527. Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
  8528. {
  8529. _PSC = 0x03
  8530. }
  8531. }
  8532. }
  8533.  
  8534. Device (SCND)
  8535. {
  8536. Name (_ADR, 0x01) // _ADR: Address
  8537. Name (BGTM, Buffer (0x14){})
  8538. CreateDWordField (BGTM, 0x00, GTP0)
  8539. CreateDWordField (BGTM, 0x04, GTD0)
  8540. CreateDWordField (BGTM, 0x08, GTP1)
  8541. CreateDWordField (BGTM, 0x0C, GTD1)
  8542. CreateDWordField (BGTM, 0x10, GTMF)
  8543. Name (BPI0, 0x00)
  8544. Name (BDM0, 0x00)
  8545. Name (BPI1, 0x00)
  8546. Name (BDM1, 0x00)
  8547. Method (_GTM, 0, NotSerialized) // _GTM: Get Timing Mode
  8548. {
  8549. GTP0 = GPCT (SFT0, SDT0, SIS0, SRC0)
  8550. GTD0 = GDCT (SSD0, FSB0, SCB0, SCT0)
  8551. If (!GTD0)
  8552. {
  8553. GTD0 = GTP0 /* \_SB_.PCI0.IDE0.SCND.GTP0 */
  8554. }
  8555.  
  8556. GTP1 = 0x00
  8557. GTD1 = 0x00
  8558. GTMF = 0x00
  8559. If (SSD0)
  8560. {
  8561. GTMF |= 0x01
  8562. }
  8563.  
  8564. If (!GTP0)
  8565. {
  8566. GTMF |= 0x01
  8567. GTP0 = 0x78
  8568. GTD0 = 0x14
  8569. }
  8570.  
  8571. If (SIE0)
  8572. {
  8573. GTMF |= 0x02
  8574. }
  8575.  
  8576. GTMF |= 0x10
  8577. Return (BGTM) /* \_SB_.PCI0.IDE0.SCND.BGTM */
  8578. }
  8579.  
  8580. Method (_STM, 3, NotSerialized) // _STM: Set Timing Mode
  8581. {
  8582. CreateDWordField (Arg0, 0x00, STP0)
  8583. CreateDWordField (Arg0, 0x04, STD0)
  8584. CreateDWordField (Arg0, 0x08, STP1)
  8585. CreateDWordField (Arg0, 0x0C, STD1)
  8586. CreateDWordField (Arg0, 0x10, STMF)
  8587. If ((SizeOf (Arg1) == 0x0200))
  8588. {
  8589. CreateWordField (Arg1, 0x00, M000)
  8590. CreateWordField (Arg1, 0x62, M049)
  8591. CreateWordField (Arg1, 0x66, M051)
  8592. CreateWordField (Arg1, 0x6A, M053)
  8593. CreateWordField (Arg1, 0x7C, M062)
  8594. CreateWordField (Arg1, 0x7E, M063)
  8595. CreateWordField (Arg1, 0x80, M064)
  8596. CreateWordField (Arg1, 0x82, M065)
  8597. CreateWordField (Arg1, 0x88, M068)
  8598. CreateWordField (Arg1, 0xB0, M088)
  8599. If (\W98F)
  8600. {
  8601. STD0 = \UUDM (M053, M088)
  8602. If (STD0)
  8603. {
  8604. STMF |= 0x01
  8605. }
  8606. Else
  8607. {
  8608. STMF &= 0xFE
  8609. }
  8610.  
  8611. STP0 = \UMDM (M053, M063, M062, M065)
  8612. If (!STP0)
  8613. {
  8614. STP0 = \UPIO (M053, M064, M051, M068)
  8615. }
  8616.  
  8617. If ((M049 & 0x0800))
  8618. {
  8619. STMF |= 0x02
  8620. }
  8621. Else
  8622. {
  8623. STMF &= 0xFD
  8624. }
  8625. }
  8626.  
  8627. Local0 = \DPIO (STP0, (STMF & 0x02))
  8628. Local1 = \DUDM (STD0, (STMF & 0x01))
  8629. If ((\_SB.PCI0.LPC.EC.BGID (0x00) >= 0x0C))
  8630. {
  8631. Local0 = 0x00
  8632. Local1 = 0xFF
  8633. }
  8634.  
  8635. STI0 = MTIM (Local0, (M000 & 0x8000))
  8636. SIS0 = MISP (Local0)
  8637. SRC0 = MRCT (Local0)
  8638. If ((Local1 == 0xFF))
  8639. {
  8640. SSD0 = 0x00
  8641. }
  8642. Else
  8643. {
  8644. SSD0 = 0x01
  8645. If ((Local1 <= 0x02))
  8646. {
  8647. SCT0 = Local1
  8648. }
  8649. ElseIf ((Local1 & 0x01))
  8650. {
  8651. SCT0 = 0x01
  8652. }
  8653. Else
  8654. {
  8655. SCT0 = 0x02
  8656. }
  8657.  
  8658. If ((Local1 >= 0x03))
  8659. {
  8660. SCB0 = 0x01
  8661. }
  8662. Else
  8663. {
  8664. SCB0 = 0x00
  8665. }
  8666.  
  8667. If ((Local1 == 0x05))
  8668. {
  8669. FSB0 = 0x01
  8670. }
  8671. Else
  8672. {
  8673. FSB0 = 0x00
  8674. }
  8675.  
  8676. SCR0 = 0x01
  8677. }
  8678.  
  8679. BDM0 = \FDMA (Local0, Local1)
  8680. BPI0 = \FPIO (Local0)
  8681. }
  8682. }
  8683.  
  8684. Device (MSTR)
  8685. {
  8686. Name (_ADR, 0x00) // _ADR: Address
  8687. Name (HDTF, Buffer (0x1C)
  8688. {
  8689. /* 0000 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, // ........
  8690. /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00, // ........
  8691. /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00, // ........
  8692. /* 0018 */ 0x00, 0x00, 0xA0, 0xEF // ....
  8693. })
  8694. CreateByteField (HDTF, 0x0F, HDMA)
  8695. CreateByteField (HDTF, 0x16, HPIO)
  8696. Name (IDTF, Buffer (0x0E)
  8697. {
  8698. /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, // ........
  8699. /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF // ......
  8700. })
  8701. CreateByteField (IDTF, 0x01, IDMA)
  8702. CreateByteField (IDTF, 0x08, IPIO)
  8703. Name (DDTF, Buffer (0x1C)
  8704. {
  8705. /* 0000 */ 0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, // ........
  8706. /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 0x00, // ........
  8707. /* 0010 */ 0x00, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, // ........
  8708. /* 0018 */ 0x00, 0x00, 0xA0, 0xE3 // ....
  8709. })
  8710. CreateByteField (DDTF, 0x01, DDMA)
  8711. CreateByteField (DDTF, 0x08, DPIO)
  8712. CreateByteField (DDTF, 0x0F, DTAT)
  8713. CreateByteField (DDTF, 0x16, DTFT)
  8714. Method (_GTF, 0, NotSerialized) // _GTF: Get Task File
  8715. {
  8716. Local0 = \_SB.PCI0.LPC.EC.BGID (0x00)
  8717. If ((Local0 == 0x06))
  8718. {
  8719. HDMA = ^^BDM0 /* \_SB_.PCI0.IDE0.SCND.BDM0 */
  8720. HPIO = ^^BPI0 /* \_SB_.PCI0.IDE0.SCND.BPI0 */
  8721. Return (HDTF) /* \_SB_.PCI0.IDE0.SCND.MSTR.HDTF */
  8722. }
  8723.  
  8724. Local1 = Zero
  8725. If ((Local0 == 0x03))
  8726. {
  8727. Local1 = One
  8728. }
  8729.  
  8730. If ((Local0 == 0x0A))
  8731. {
  8732. Local1 = One
  8733. }
  8734.  
  8735. If ((Local0 == 0x0B))
  8736. {
  8737. Local1 = One
  8738. }
  8739.  
  8740. If (Local1)
  8741. {
  8742. DTFT = \CDFL
  8743. DTAT = \CDAH
  8744. DDMA = ^^BDM0 /* \_SB_.PCI0.IDE0.SCND.BDM0 */
  8745. DPIO = ^^BPI0 /* \_SB_.PCI0.IDE0.SCND.BPI0 */
  8746. Return (DDTF) /* \_SB_.PCI0.IDE0.SCND.MSTR.DDTF */
  8747. }
  8748. Else
  8749. {
  8750. IDMA = ^^BDM0 /* \_SB_.PCI0.IDE0.SCND.BDM0 */
  8751. IPIO = ^^BPI0 /* \_SB_.PCI0.IDE0.SCND.BPI0 */
  8752. Return (IDTF) /* \_SB_.PCI0.IDE0.SCND.MSTR.IDTF */
  8753. }
  8754. }
  8755. }
  8756. }
  8757. }
  8758.  
  8759. Device (USB0)
  8760. {
  8761. Name (_ADR, 0x001D0000) // _ADR: Address
  8762. Name (_S3D, 0x02) // _S3D: S3 Device State
  8763. OperationRegion (U0CS, PCI_Config, 0xC4, 0x04)
  8764. Field (U0CS, DWordAcc, NoLock, Preserve)
  8765. {
  8766. U0EN, 2,
  8767. Offset (0x04)
  8768. }
  8769.  
  8770. Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
  8771. {
  8772. \_SB.PCI0.LPC.EC.PUBS
  8773. })
  8774. Name (_PR1, Package (0x01) // _PR1: Power Resources for D1
  8775. {
  8776. \_SB.PCI0.LPC.EC.PUBS
  8777. })
  8778. Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
  8779. {
  8780. \_SB.PCI0.LPC.EC.PUBS
  8781. })
  8782. Name (_PRW, Package (0x03) // _PRW: Power Resources for Wake
  8783. {
  8784. 0x03,
  8785. 0x03,
  8786. \_SB.PCI0.LPC.EC.PUBS
  8787. })
  8788. Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
  8789. {
  8790. If (Arg0)
  8791. {
  8792. U0EN = 0x03
  8793. }
  8794. Else
  8795. {
  8796. U0EN = 0x00
  8797. }
  8798.  
  8799. \_SB.PCI0.LPC.EC.PNST (Arg0)
  8800. }
  8801.  
  8802. Device (URTH)
  8803. {
  8804. Name (_ADR, 0x00) // _ADR: Address
  8805. Device (UNST)
  8806. {
  8807. Name (_ADR, 0x02) // _ADR: Address
  8808. Name (_EJD, "_SB.NEST") // _EJD: Ejection Dependent Device
  8809. Method (_STA, 0, NotSerialized) // _STA: Status
  8810. {
  8811. If (\_SB.PCI0.LPC.EC.BSTA (0x02))
  8812. {
  8813. Return (0x0F)
  8814. }
  8815. Else
  8816. {
  8817. Return (0x00)
  8818. }
  8819. }
  8820. }
  8821. }
  8822. }
  8823.  
  8824. Device (USB1)
  8825. {
  8826. Name (_ADR, 0x001D0001) // _ADR: Address
  8827. Name (_S3D, 0x02) // _S3D: S3 Device State
  8828. OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
  8829. Field (U1CS, DWordAcc, NoLock, Preserve)
  8830. {
  8831. U1EN, 2,
  8832. Offset (0x04)
  8833. }
  8834.  
  8835. Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
  8836. {
  8837. \_SB.PCI0.LPC.EC.PUBS
  8838. })
  8839. Name (_PR1, Package (0x01) // _PR1: Power Resources for D1
  8840. {
  8841. \_SB.PCI0.LPC.EC.PUBS
  8842. })
  8843. Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
  8844. {
  8845. \_SB.PCI0.LPC.EC.PUBS
  8846. })
  8847. Name (_PRW, Package (0x03) // _PRW: Power Resources for Wake
  8848. {
  8849. 0x04,
  8850. 0x03,
  8851. \_SB.PCI0.LPC.EC.PUBS
  8852. })
  8853. Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
  8854. {
  8855. If (Arg0)
  8856. {
  8857. U1EN = 0x03
  8858. }
  8859. Else
  8860. {
  8861. U1EN = 0x00
  8862. }
  8863. }
  8864. }
  8865.  
  8866. Device (USB2)
  8867. {
  8868. Name (_ADR, 0x001D0002) // _ADR: Address
  8869. Name (_S3D, 0x02) // _S3D: S3 Device State
  8870. }
  8871.  
  8872. Device (USB7)
  8873. {
  8874. Name (_ADR, 0x001D0007) // _ADR: Address
  8875. Name (_S3D, 0x03) // _S3D: S3 Device State
  8876. OperationRegion (U7CS, PCI_Config, 0x60, 0x04)
  8877. Field (U7CS, DWordAcc, NoLock, Preserve)
  8878. {
  8879. Offset (0x02),
  8880. PWKI, 1,
  8881. PWUC, 6,
  8882. Offset (0x04)
  8883. }
  8884.  
  8885. Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
  8886. {
  8887. \_SB.PCI0.LPC.EC.PUBS
  8888. })
  8889. Name (_PR1, Package (0x01) // _PR1: Power Resources for D1
  8890. {
  8891. \_SB.PCI0.LPC.EC.PUBS
  8892. })
  8893. Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
  8894. {
  8895. \_SB.PCI0.LPC.EC.PUBS
  8896. })
  8897. Method (_INI, 0, NotSerialized) // _INI: Initialize
  8898. {
  8899. PWKI = 0x01
  8900. PWUC = 0x0F
  8901. }
  8902.  
  8903. Device (URTH)
  8904. {
  8905. Name (_ADR, 0x00) // _ADR: Address
  8906. Device (UPDK)
  8907. {
  8908. Name (_ADR, 0x01) // _ADR: Address
  8909. Method (_STA, 0, NotSerialized) // _STA: Status
  8910. {
  8911. Local0 = \_SB.GDCK.GGID ()
  8912. If (((Local0 == 0x00) || (Local0 == 0x03)))
  8913. {
  8914. Return (0x0F)
  8915. }
  8916. ElseIf (\WNTF)
  8917. {
  8918. Return (0x00)
  8919. }
  8920. Else
  8921. {
  8922. Return (0x0F)
  8923. }
  8924. }
  8925. }
  8926.  
  8927. Device (UNST)
  8928. {
  8929. Name (_ADR, 0x02) // _ADR: Address
  8930. Name (_EJD, "_SB.NEST") // _EJD: Ejection Dependent Device
  8931. Method (_STA, 0, NotSerialized) // _STA: Status
  8932. {
  8933. If (\_SB.PCI0.LPC.EC.BSTA (0x02))
  8934. {
  8935. Return (0x0F)
  8936. }
  8937. Else
  8938. {
  8939. Return (0x00)
  8940. }
  8941. }
  8942. }
  8943. }
  8944. }
  8945.  
  8946. Device (AC9M)
  8947. {
  8948. Name (_ADR, 0x001F0006) // _ADR: Address
  8949. Name (_S3D, 0x03) // _S3D: S3 Device State
  8950. Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
  8951. {
  8952. 0x05,
  8953. 0x04
  8954. })
  8955. Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake
  8956. {
  8957. Noop
  8958. }
  8959. }
  8960. }
  8961.  
  8962. Scope (\_SB)
  8963. {
  8964. Device (GDCK)
  8965. {
  8966. Name (_HID, EisaId ("IBM0079")) // _HID: Hardware ID
  8967. Name (_CID, EisaId ("PNP0C15") /* Docking Station */) // _CID: Compatible ID
  8968. Method (_STA, 0, NotSerialized) // _STA: Status
  8969. {
  8970. Local0 = GGID ()
  8971. If (!\W98F)
  8972. {
  8973. Local1 = 0x00
  8974. }
  8975. Else
  8976. {
  8977. Local1 = 0x0C
  8978. }
  8979.  
  8980. If ((Local0 == 0x03))
  8981. {
  8982. Local1 = \_SB.PCI0.LPC.EC.SSTA ()
  8983. }
  8984.  
  8985. If ((Local0 == 0x00))
  8986. {
  8987. Local1 = \_SB.PCI0.PCI1.DOCK.DSTA ()
  8988. }
  8989.  
  8990. If ((Local0 == 0x01))
  8991. {
  8992. Noop
  8993. }
  8994.  
  8995. Return (Local1)
  8996. }
  8997.  
  8998. Method (_INI, 0, NotSerialized) // _INI: Initialize
  8999. {
  9000. \_SB.PCI0.LPC.EC.SINI ()
  9001. \_SB.PCI0.LPC.EC.DATT (0x02, 0x01)
  9002. If ((GGID () == 0x07))
  9003. {
  9004. \_SB.PCI0.LPC.EC.DATT (0x01, 0x00)
  9005. }
  9006. Else
  9007. {
  9008. \_SB.PCI0.LPC.EC.DATT (0x01, 0x01)
  9009. }
  9010.  
  9011. \_SB.PCI0.LPC.EC.DDWK (0x00)
  9012. }
  9013.  
  9014. Method (_DCK, 1, NotSerialized) // _DCK: Dock Present
  9015. {
  9016. Local0 = 0x00
  9017. If ((GGID () == 0x03))
  9018. {
  9019. Local0 = \_SB.PCI0.LPC.EC.SDCK (Arg0)
  9020. }
  9021.  
  9022. If ((GGID () == 0x00))
  9023. {
  9024. Local0 = \_SB.PCI0.PCI1.DOCK.DDCK (Arg0)
  9025. }
  9026.  
  9027. Return (Local0)
  9028. }
  9029.  
  9030. Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9
  9031. {
  9032. If ((GGID () == 0x03))
  9033. {
  9034. \_SB.PCI0.LPC.EC.SEJ0 (Arg0)
  9035. }
  9036.  
  9037. If ((GGID () == 0x00))
  9038. {
  9039. \_SB.PCI0.PCI1.DOCK.DEJ0 (Arg0)
  9040. }
  9041. }
  9042.  
  9043. Method (XEJ3, 1, NotSerialized)
  9044. {
  9045. If ((GGID () == 0x03))
  9046. {
  9047. \_SB.PCI0.LPC.EC.SEJ3 (Arg0)
  9048. }
  9049.  
  9050. If ((GGID () == 0x00))
  9051. {
  9052. \_SB.PCI0.PCI1.DOCK.DEJ3 (Arg0)
  9053. }
  9054. }
  9055.  
  9056. Method (_EJ4, 1, NotSerialized) // _EJx: Eject Device, x=0-9
  9057. {
  9058. If ((GGID () == 0x03))
  9059. {
  9060. \_SB.PCI0.LPC.EC.SEJ4 (Arg0)
  9061. }
  9062.  
  9063. If ((GGID () == 0x00))
  9064. {
  9065. \_SB.PCI0.PCI1.DOCK.DEJ4 (Arg0)
  9066. }
  9067. }
  9068.  
  9069. Method (PEJ3, 0, NotSerialized)
  9070. {
  9071. If ((GGID () == 0x03))
  9072. {
  9073. \_SB.PCI0.LPC.EC.PSE3 ()
  9074. }
  9075.  
  9076. If ((GGID () == 0x00))
  9077. {
  9078. \_SB.PCI0.PCI1.DOCK.PDE3 ()
  9079. }
  9080. }
  9081.  
  9082. Method (_BDN, 0, NotSerialized) // _BDN: BIOS Dock Name
  9083. {
  9084. Local0 = 0x00
  9085. If ((GGID () == 0x03))
  9086. {
  9087. Local0 = \_SB.PCI0.LPC.EC.SLBN ()
  9088. }
  9089.  
  9090. If ((GGID () == 0x00))
  9091. {
  9092. Local0 = \_SB.PCI0.PCI1.DOCK.DBDN ()
  9093. }
  9094.  
  9095. Return (Local0)
  9096. }
  9097.  
  9098. Method (_UID, 0, NotSerialized) // _UID: Unique ID
  9099. {
  9100. Local0 = 0x00
  9101. If ((GGID () == 0x03))
  9102. {
  9103. Local0 = \_SB.PCI0.LPC.EC.SLUD ()
  9104. }
  9105.  
  9106. If ((GGID () == 0x00))
  9107. {
  9108. Local0 = \_SB.PCI0.PCI1.DOCK.DUID ()
  9109. }
  9110.  
  9111. Return (Local0)
  9112. }
  9113.  
  9114. Method (GPTS, 1, NotSerialized)
  9115. {
  9116. \_SB.PCI0.LPC.EC.DDWK (0x00)
  9117. \_SB.PCI0.LPC.EC.SPTS (Arg0)
  9118. \_SB.PCI0.PCI1.DOCK.DPTS (Arg0)
  9119. \_SB.PCI0.LPC.EC.RPTS (Arg0)
  9120. }
  9121.  
  9122. Method (GWAK, 1, NotSerialized)
  9123. {
  9124. \_SB.PCI0.LPC.EC.SWAK (Arg0)
  9125. \_SB.PCI0.PCI1.DOCK.DWAK (Arg0)
  9126. \_SB.PCI0.LPC.EC.RWAK (Arg0)
  9127. \_SB.PCI0.LPC.EC.DDWK (0x00)
  9128. If (!\_SB.PCI0.LPC.PNF)
  9129. {
  9130. \_SB.PCI0.LPC.FDC.SLFD (0x01)
  9131. }
  9132. Else
  9133. {
  9134. \_SB.PCI0.LPC.FDC.SLFD (0x00)
  9135. }
  9136. }
  9137.  
  9138. Method (GGPE, 0, NotSerialized)
  9139. {
  9140. If ((GGID () == 0x03))
  9141. {
  9142. \_SB.PCI0.LPC.EC.SGPE ()
  9143. }
  9144.  
  9145. If ((GGID () == 0x00))
  9146. {
  9147. \_SB.PCI0.PCI1.DOCK.DGPE ()
  9148. }
  9149. }
  9150.  
  9151. Name (G_ID, 0xFFFFFFFF)
  9152. Method (GGID, 0, NotSerialized)
  9153. {
  9154. Local0 = G_ID /* \_SB_.GDCK.G_ID */
  9155. If ((Local0 == 0xFFFFFFFF))
  9156. {
  9157. If (\H8DR)
  9158. {
  9159. Local0 = (\_SB.PCI0.LPC.EC.HLID & 0x07)
  9160. }
  9161. Else
  9162. {
  9163. Local0 = (\RBEC (0x48) & 0x07)
  9164. }
  9165.  
  9166. G_ID = Local0
  9167. }
  9168.  
  9169. Return (Local0)
  9170. }
  9171. }
  9172. }
  9173.  
  9174. Scope (\_SB.PCI0.LPC.EC)
  9175. {
  9176. Method (_Q50, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  9177. {
  9178. Local0 = \_SB.GDCK.GGID ()
  9179. If ((Local0 != 0x07))
  9180. {
  9181. If ((Local0 == 0x03))
  9182. {
  9183. \_SB.PCI0.LPC.EC.SPEJ ()
  9184. }
  9185.  
  9186. If (\W98F)
  9187. {
  9188. Notify (\_SB.GDCK, 0x01) // Device Check
  9189. }
  9190. Else
  9191. {
  9192. Notify (\_SB.GDCK, 0x03) // Eject Request
  9193. }
  9194. }
  9195. }
  9196.  
  9197. Method (_Q58, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  9198. {
  9199. \_SB.GDCK.G_ID = 0xFFFFFFFF
  9200. \_SB.PCI0.PCI1.DOCK.DOID = 0xFFFFFFFF
  9201. \_SB.PCI0.LPC.EC.SLID = 0xFFFFFFFF
  9202. Local0 = \_SB.GDCK.GGID ()
  9203. If ((Local0 == 0x07))
  9204. {
  9205. HB1I = 0x00
  9206. GUSB (0x01)
  9207. FANS (\FS1L, \FS1M, \FS1H)
  9208. \_SB.PCI0.LPC.FDC.SLFD (0x01)
  9209. }
  9210. Else
  9211. {
  9212. \_SB.PCI0.LPC.FDC.SLFD (0x00)
  9213. }
  9214.  
  9215. If ((Local0 == 0x03))
  9216. {
  9217. Notify (\_SB.GDCK, 0x00) // Bus Check
  9218. FANS (\FS2L, \FS2M, \FS2H)
  9219. }
  9220.  
  9221. If ((Local0 == 0x01))
  9222. {
  9223. GUSB (0x01)
  9224. }
  9225. }
  9226.  
  9227. Method (GUSB, 1, NotSerialized)
  9228. {
  9229. If (\H8DR)
  9230. {
  9231. HDUE = Arg0
  9232. }
  9233. Else
  9234. {
  9235. \MBEC (0x02, 0xFE, Arg0)
  9236. }
  9237. }
  9238.  
  9239. Method (DATT, 2, NotSerialized)
  9240. {
  9241. Local0 = 0x00
  9242. If ((Arg0 == 0x00))
  9243. {
  9244. If ((Arg1 == 0x01))
  9245. {
  9246. If (\H8DR)
  9247. {
  9248. HAM6 |= 0x80
  9249. }
  9250. Else
  9251. {
  9252. \MBEC (0x16, 0xFF, 0x80)
  9253. }
  9254.  
  9255. Local0 = 0x01
  9256. }
  9257.  
  9258. If ((Arg1 == 0x00))
  9259. {
  9260. If (\H8DR)
  9261. {
  9262. HAM6 &= 0x7F
  9263. }
  9264. Else
  9265. {
  9266. \MBEC (0x16, 0x7F, 0x00)
  9267. }
  9268. }
  9269.  
  9270. If ((Arg1 == 0x02))
  9271. {
  9272. If (\H8DR)
  9273. {
  9274. If ((HAM6 & 0x80))
  9275. {
  9276. Local0 = 0x01
  9277. }
  9278. }
  9279. ElseIf ((\RBEC (0x16) & 0x80))
  9280. {
  9281. Local0 = 0x01
  9282. }
  9283. }
  9284. }
  9285.  
  9286. If ((Arg0 == 0x01))
  9287. {
  9288. If ((Arg1 == 0x01))
  9289. {
  9290. If (\H8DR)
  9291. {
  9292. HAMA |= 0x01
  9293. }
  9294. Else
  9295. {
  9296. \MBEC (0x1A, 0xFF, 0x01)
  9297. }
  9298.  
  9299. Local0 = 0x01
  9300. }
  9301.  
  9302. If ((Arg1 == 0x00))
  9303. {
  9304. If (\H8DR)
  9305. {
  9306. HAMA &= 0xFE
  9307. }
  9308. Else
  9309. {
  9310. \MBEC (0x1A, 0xFE, 0x00)
  9311. }
  9312. }
  9313.  
  9314. If ((Arg1 == 0x02))
  9315. {
  9316. If (\H8DR)
  9317. {
  9318. If ((HAMA & 0x01))
  9319. {
  9320. Local0 = 0x01
  9321. }
  9322. }
  9323. ElseIf ((\RBEC (0x1A) & 0x01))
  9324. {
  9325. Local0 = 0x01
  9326. }
  9327. }
  9328. }
  9329.  
  9330. If ((Arg0 == 0x02))
  9331. {
  9332. If ((Arg1 == 0x01))
  9333. {
  9334. If (\H8DR)
  9335. {
  9336. HAMB |= 0x01
  9337. }
  9338. Else
  9339. {
  9340. \MBEC (0x1B, 0xFF, 0x01)
  9341. }
  9342.  
  9343. Local0 = 0x01
  9344. }
  9345.  
  9346. If ((Arg1 == 0x00))
  9347. {
  9348. If (\H8DR)
  9349. {
  9350. HAMB &= 0xFE
  9351. }
  9352. Else
  9353. {
  9354. \MBEC (0x1A, 0xFE, 0x00)
  9355. }
  9356. }
  9357.  
  9358. If ((Arg1 == 0x02))
  9359. {
  9360. If (\H8DR)
  9361. {
  9362. If ((HAMB & 0x01))
  9363. {
  9364. Local0 = 0x01
  9365. }
  9366. }
  9367. ElseIf ((\RBEC (0x1B) & 0x01))
  9368. {
  9369. Local0 = 0x01
  9370. }
  9371. }
  9372. }
  9373.  
  9374. Return (Local0)
  9375. }
  9376.  
  9377. Method (DDWK, 1, NotSerialized)
  9378. {
  9379. Local0 = 0x00
  9380. If ((Arg0 == 0x01))
  9381. {
  9382. If (\H8DR)
  9383. {
  9384. HWDK = One
  9385. }
  9386. Else
  9387. {
  9388. \MBEC (0x32, 0xFF, 0x08)
  9389. }
  9390.  
  9391. Local0 = 0x01
  9392. }
  9393.  
  9394. If ((Arg0 == 0x00))
  9395. {
  9396. If (\H8DR)
  9397. {
  9398. HWDK = Zero
  9399. }
  9400. Else
  9401. {
  9402. \MBEC (0x32, 0xF7, 0x00)
  9403. }
  9404. }
  9405.  
  9406. If ((Arg0 == 0x02))
  9407. {
  9408. If (\H8DR)
  9409. {
  9410. If (HWDK)
  9411. {
  9412. Local0 = 0x01
  9413. }
  9414. }
  9415. ElseIf ((\RBEC (0x32) & 0x08))
  9416. {
  9417. Local0 = 0x01
  9418. }
  9419. }
  9420.  
  9421. Return (Local0)
  9422. }
  9423. }
  9424.  
  9425. Scope (\_SB.PCI0.LPC.EC)
  9426. {
  9427. Name (SLID, 0xFFFFFFFF)
  9428. Name (SIDB, 0xFFFFFFFF)
  9429. Name (SSID, 0xFFFFFFFF)
  9430. Name (SFLG, 0x00)
  9431. Name (SUCT, 0x00)
  9432. Name (SHKE, 0x00)
  9433. Method (SLBN, 0, NotSerialized)
  9434. {
  9435. Return (0x79004D24)
  9436. }
  9437.  
  9438. Method (SLUD, 0, NotSerialized)
  9439. {
  9440. Return (0x00)
  9441. }
  9442.  
  9443. Method (SSTA, 0, NotSerialized)
  9444. {
  9445. SUDK ()
  9446. SUDT ()
  9447. If ((GSID () == 0x79004D24))
  9448. {
  9449. Local0 = 0x0F
  9450. }
  9451. ElseIf (!\W98F)
  9452. {
  9453. Local0 = 0x00
  9454. }
  9455. Else
  9456. {
  9457. Local0 = 0x0C
  9458. }
  9459.  
  9460. If (\W98F)
  9461. {
  9462. Local0 = HIDS (Local0)
  9463. }
  9464.  
  9465. Return (Local0)
  9466. }
  9467.  
  9468. Method (SINI, 0, NotSerialized)
  9469. {
  9470. If ((GSID () == 0x79004D24))
  9471. {
  9472. SFLG |= 0x0400
  9473. }
  9474. Else
  9475. {
  9476. SFLG &= ~0x0400
  9477. }
  9478. }
  9479.  
  9480. Method (SPTS, 1, NotSerialized)
  9481. {
  9482. If (((Arg0 >= 0x01) && (Arg0 <= 0x04)))
  9483. {
  9484. SHKE = 0x00
  9485. If ((SFLG & 0x02))
  9486. {
  9487. SLID = 0x00
  9488. SFLG &= ~0x02
  9489. }
  9490.  
  9491. If ((GSID () == 0x79004D24))
  9492. {
  9493. \_SB.PCI0.LPC.EC.DDWK (0x01)
  9494. }
  9495.  
  9496. SIDB = GSID ()
  9497. If (\H8DR)
  9498. {
  9499. SSID = (HLID & 0x07)
  9500. }
  9501. Else
  9502. {
  9503. SSID = (RBEC (0x48) & 0x07)
  9504. }
  9505.  
  9506. If ((SSID != 0x03))
  9507. {
  9508. If (HB1A)
  9509. {
  9510. SSID = 0xFFFFFFFE
  9511. }
  9512. }
  9513.  
  9514. SFLG |= 0x0100
  9515. }
  9516. }
  9517.  
  9518. Method (SWAK, 1, NotSerialized)
  9519. {
  9520. SLID = 0xFFFFFFFF
  9521. If (((Arg0 >= 0x01) && (Arg0 <= 0x04)))
  9522. {
  9523. If ((SIDB == 0x79004D24))
  9524. {
  9525. If ((GSID () == 0x79004D24))
  9526. {
  9527. LED (0x03, 0x80)
  9528. SHKE = (Arg0 << 0x08)
  9529. }
  9530. Else
  9531. {
  9532. Notify (\_SB.GDCK, 0x00) // Bus Check
  9533. SFLG &= ~0x0400
  9534. }
  9535. }
  9536. ElseIf ((GSID () == 0x79004D24))
  9537. {
  9538. WSDK ()
  9539. }
  9540. Else
  9541. {
  9542. Noop
  9543. }
  9544.  
  9545. If (\H8DR)
  9546. {
  9547. Local0 = (HLID & 0x07)
  9548. }
  9549. Else
  9550. {
  9551. Local0 = (RBEC (0x48) & 0x07)
  9552. }
  9553.  
  9554. If (((SSID == 0x03) || (SSID == 0xFFFFFFFE)))
  9555. {
  9556. If (((Local0 != 0x03) && ~HB1A))
  9557. {
  9558. FANS (\FS1L, \FS1M, \FS1H)
  9559. }
  9560. }
  9561.  
  9562. If ((SSID != 0x03))
  9563. {
  9564. If ((Local0 == 0x03))
  9565. {
  9566. FANS (\FS2L, \FS2M, \FS2H)
  9567. }
  9568. }
  9569.  
  9570. If ((SSID != 0xFFFFFFFE))
  9571. {
  9572. If (((Local0 != 0x03) && HB1A))
  9573. {
  9574. FANS (\FS3L, \FS3M, \FS3H)
  9575. }
  9576. }
  9577.  
  9578. SFLG &= ~0x0100
  9579. SFLG &= ~0x02
  9580. SFLG &= ~0x10
  9581. SFLG &= ~0x20
  9582. }
  9583. }
  9584.  
  9585. Method (SGPE, 0, NotSerialized)
  9586. {
  9587. SFLG |= 0x08
  9588. }
  9589.  
  9590. Method (SDCK, 1, NotSerialized)
  9591. {
  9592. If (\H8DR)
  9593. {
  9594. If (Arg0)
  9595. {
  9596. LED (0x03, 0x80)
  9597. GUSB (0x01)
  9598. If (\WNTF)
  9599. {
  9600. \_SB.PCI0.LPC.EC.BAT2.XB2S = 0x01
  9601. }
  9602.  
  9603. If (!BXCN)
  9604. {
  9605. BSCN ()
  9606. }
  9607.  
  9608. \_SB.PCI0.LPC.EC.DATT (0x01, 0x01)
  9609. SFLG |= 0x0400
  9610. }
  9611. Else
  9612. {
  9613. SFLG |= 0x02
  9614. GUSB (0x00)
  9615. HB1I = 0x01
  9616. If (\WNTF)
  9617. {
  9618. \_SB.PCI0.LPC.EC.BAT1.B1ST = 0x00
  9619. \_SB.PCI0.LPC.EC.BAT1.XB1S = 0x00
  9620. \_SB.PCI0.LPC.EC.BAT2.B2ST = 0x00
  9621. \_SB.PCI0.LPC.EC.BAT2.XB2S = 0x00
  9622. }
  9623.  
  9624. BEJ0 (0x01)
  9625. If (BXCN)
  9626. {
  9627. Notify (\_SB.SWAP, 0x82) // Device-Specific Change
  9628. }
  9629.  
  9630. \_SB.PCI0.LPC.EC.DATT (0x01, 0x00)
  9631. SFLG &= ~0x0400
  9632. }
  9633. }
  9634.  
  9635. Return (0x01)
  9636. }
  9637.  
  9638. Method (SEJ0, 1, NotSerialized)
  9639. {
  9640. SLID = 0x00
  9641. LED (0x03, 0x00)
  9642. SUDI ()
  9643. SFLG &= ~0x02
  9644. }
  9645.  
  9646. Method (SEJ3, 1, NotSerialized)
  9647. {
  9648. SFLG |= 0x10
  9649. If ((\SPS == 0x03))
  9650. {
  9651. PSE3 ()
  9652. }
  9653. }
  9654.  
  9655. Method (SEJ4, 1, NotSerialized)
  9656. {
  9657. SFLG |= 0x20
  9658. }
  9659.  
  9660. Method (PSE3, 0, NotSerialized)
  9661. {
  9662. If ((SFLG & 0x10))
  9663. {
  9664. LED (0x03, 0x00)
  9665. }
  9666. }
  9667.  
  9668. Name (SHDE, 0x00)
  9669. Method (WSDK, 0, NotSerialized)
  9670. {
  9671. If ((SFLG & (0x10 | 0x20)))
  9672. {
  9673. SDCK (0x01)
  9674. If (\W98F)
  9675. {
  9676. SFLG |= 0x0200
  9677. SHDE = 0x05
  9678. }
  9679. }
  9680. Else
  9681. {
  9682. Notify (\_SB.GDCK, 0x00) // Bus Check
  9683. }
  9684. }
  9685.  
  9686. Method (HIDS, 1, NotSerialized)
  9687. {
  9688. Local0 = Arg0
  9689. If ((SFLG & 0x0200))
  9690. {
  9691. If ((Arg0 == 0x0F))
  9692. {
  9693. If (\W98F)
  9694. {
  9695. Local0 = 0x0C
  9696. }
  9697.  
  9698. SHDE--
  9699. If (!SHDE)
  9700. {
  9701. SFLG &= ~0x0200
  9702. Notify (\_SB.GDCK, 0x00) // Bus Check
  9703. }
  9704. }
  9705. Else
  9706. {
  9707. SFLG &= ~0x0200
  9708. }
  9709. }
  9710.  
  9711. Return (Local0)
  9712. }
  9713.  
  9714. Method (SUDK, 0, NotSerialized)
  9715. {
  9716. If ((SFLG & 0x08))
  9717. {
  9718. If (!(SFLG & 0x0100))
  9719. {
  9720. SHKE |= 0x2004
  9721. If ((\UOPT == 0x00))
  9722. {
  9723. \_SB.PCI0.LPC.EC.HKEY.MHKQ (SHKE)
  9724. }
  9725.  
  9726. If (\W98F)
  9727. {
  9728. Notify (\_SB.GDCK, 0x01) // Device Check
  9729. }
  9730. Else
  9731. {
  9732. Notify (\_SB.GDCK, 0x03) // Eject Request
  9733. }
  9734.  
  9735. SFLG &= ~0x08
  9736. }
  9737. }
  9738. }
  9739.  
  9740. Method (SUDI, 0, NotSerialized)
  9741. {
  9742. If (\WNTF)
  9743. {
  9744. SUCT = 0x01
  9745. }
  9746. Else
  9747. {
  9748. SUCT = 0x05
  9749. }
  9750. }
  9751.  
  9752. Method (SUDT, 0, NotSerialized)
  9753. {
  9754. If ((SHKE & 0x2004))
  9755. {
  9756. If ((GSID () == 0x00))
  9757. {
  9758. If (!SUCT--)
  9759. {
  9760. SHKE = 0x00
  9761. If ((\UOPT == 0x00))
  9762. {
  9763. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x4003)
  9764. }
  9765. }
  9766. }
  9767. }
  9768. }
  9769.  
  9770. Method (GSID, 0, NotSerialized)
  9771. {
  9772. If ((SLID == 0xFFFFFFFF))
  9773. {
  9774. \_SB.GDCK.G_ID = 0xFFFFFFFF
  9775. If ((\_SB.GDCK.GGID () == 0x03))
  9776. {
  9777. SLID = 0x79004D24
  9778. }
  9779. Else
  9780. {
  9781. SLID = 0x00
  9782. }
  9783. }
  9784.  
  9785. Return (SLID) /* \_SB_.PCI0.LPC_.EC__.SLID */
  9786. }
  9787.  
  9788. Method (SPEJ, 0, NotSerialized)
  9789. {
  9790. LED (0x03, 0x00)
  9791. Sleep (0xC8)
  9792. LED (0x03, 0x80)
  9793. Sleep (0xC8)
  9794. LED (0x03, 0x00)
  9795. Sleep (0xC8)
  9796. LED (0x03, 0x80)
  9797. Sleep (0xC8)
  9798. LED (0x03, 0x00)
  9799. Sleep (0xC8)
  9800. LED (0x03, 0x80)
  9801. }
  9802. }
  9803.  
  9804. Scope (\_SB.PCI0.LPC.EC)
  9805. {
  9806. Name (BDEV, 0xFF)
  9807. Name (BSTS, 0x00)
  9808. Name (BHKE, 0x00)
  9809. Name (BXCN, 0x00)
  9810. Method (_Q2C, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  9811. {
  9812. If ((SFLG & 0x0400))
  9813. {
  9814. If ((BSTS == 0x00))
  9815. {
  9816. BDEV = BGID (0x00)
  9817. If (BXCN)
  9818. {
  9819. NXRE (BDEV)
  9820. }
  9821. Else
  9822. {
  9823. NBRE (BDEV)
  9824. }
  9825. }
  9826. }
  9827. }
  9828.  
  9829. Method (_Q2D, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  9830. {
  9831. If ((SFLG & 0x0400))
  9832. {
  9833. BDEV = BGID (0x00)
  9834. If (BXCN)
  9835. {
  9836. NXRC (BDEV)
  9837. }
  9838. Else
  9839. {
  9840. NBIN (BDEV)
  9841. }
  9842. }
  9843. }
  9844.  
  9845. Method (_Q38, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  9846. {
  9847. If ((SFLG & 0x0400))
  9848. {
  9849. Local0 = BGID (0x00)
  9850. If ((Local0 != BDEV))
  9851. {
  9852. If ((Local0 == 0x0F))
  9853. {
  9854. BDIS ()
  9855. If (BXCN)
  9856. {
  9857. Local0 = BDEV /* \_SB_.PCI0.LPC_.EC__.BDEV */
  9858. BDEV = 0x0F
  9859. NXEJ (Local0)
  9860. }
  9861. Else
  9862. {
  9863. NBEJ (BDEV)
  9864. BDEV = Local0
  9865. }
  9866. }
  9867. ElseIf (HPBU)
  9868. {
  9869. If (BXCN)
  9870. {
  9871. BDEV = Local0
  9872. NXIN (Local0)
  9873. }
  9874. }
  9875. Else
  9876. {
  9877. BDEV = Local0
  9878. If (BXCN)
  9879. {
  9880. NXRC (Local0)
  9881. }
  9882. Else
  9883. {
  9884. NBIN (Local0)
  9885. }
  9886. }
  9887. }
  9888. }
  9889. }
  9890.  
  9891. Method (NBRE, 1, NotSerialized)
  9892. {
  9893. If ((Arg0 == 0x0D))
  9894. {
  9895. If (\LFDC)
  9896. {
  9897. Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x03) // Eject Request
  9898. }
  9899. }
  9900.  
  9901. If ((Arg0 < 0x0C))
  9902. {
  9903. Notify (\_SB.PCI0.IDE0.SCND.MSTR, 0x03) // Eject Request
  9904. }
  9905.  
  9906. If ((Arg0 == 0x0E))
  9907. {
  9908. If (\WNTF)
  9909. {
  9910. Notify (\_SB.NEST, 0x03) // Eject Request
  9911. }
  9912. }
  9913.  
  9914. If ((Arg0 == 0x10))
  9915. {
  9916. If ((HPAC || HB0A))
  9917. {
  9918. If (\WNTF)
  9919. {
  9920. Notify (\_SB.PCI0.LPC.EC.BAT1, 0x03) // Eject Request
  9921. }
  9922. }
  9923. Else
  9924. {
  9925. LED (0x04, 0xC0)
  9926. BEEP (0x0F)
  9927. BSTS = 0x02
  9928. }
  9929. }
  9930. }
  9931.  
  9932. Method (NBEJ, 1, NotSerialized)
  9933. {
  9934. If ((BSTS == 0x00))
  9935. {
  9936. If ((Arg0 == 0x0D))
  9937. {
  9938. If (\LFDC)
  9939. {
  9940. Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x01) // Device Check
  9941. }
  9942. }
  9943.  
  9944. If ((Arg0 < 0x0C))
  9945. {
  9946. Notify (\_SB.PCI0.IDE0.SCND.MSTR, 0x01) // Device Check
  9947. }
  9948.  
  9949. If ((Arg0 == 0x0E))
  9950. {
  9951. If (\WNTF)
  9952. {
  9953. Notify (\_SB.NEST, 0x01) // Device Check
  9954. }
  9955. }
  9956.  
  9957. If ((Arg0 == 0x10))
  9958. {
  9959. If (\WNTF)
  9960. {
  9961. Notify (\_SB.PCI0.LPC.EC.BAT1, 0x01) // Device Check
  9962. }
  9963. Else
  9964. {
  9965. Notify (\_SB.PCI0.LPC.EC.BAT2, 0x81) // Information Change
  9966. }
  9967. }
  9968. }
  9969.  
  9970. LED (0x04, 0x00)
  9971. BEEP (0x00)
  9972. BSTS = 0x00
  9973. }
  9974.  
  9975. Method (NBIN, 1, NotSerialized)
  9976. {
  9977. If ((Arg0 == 0x0D))
  9978. {
  9979. If (\LFDC)
  9980. {
  9981. BEN (0x00)
  9982. LED (0x04, 0x80)
  9983. Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x01) // Device Check
  9984. }
  9985. }
  9986.  
  9987. If ((Arg0 < 0x0C))
  9988. {
  9989. If ((Arg0 == 0x06))
  9990. {
  9991. BEN (0x02)
  9992. }
  9993. Else
  9994. {
  9995. BEN (0x01)
  9996. }
  9997.  
  9998. LED (0x04, 0x80)
  9999. Notify (\_SB.PCI0.IDE0.SCND.MSTR, 0x01) // Device Check
  10000. }
  10001.  
  10002. If ((Arg0 == 0x0E))
  10003. {
  10004. BEN (0x00)
  10005. LED (0x04, 0x80)
  10006. If (\WNTF)
  10007. {
  10008. Notify (\_SB.NEST, 0x01) // Device Check
  10009. }
  10010. }
  10011.  
  10012. If ((Arg0 == 0x10))
  10013. {
  10014. LED (0x04, 0x80)
  10015. If (\WNTF)
  10016. {
  10017. \_SB.PCI0.LPC.EC.BAT1.XB1S = 0x01
  10018. Notify (\_SB.PCI0.LPC.EC.BAT1, 0x01) // Device Check
  10019. }
  10020. Else
  10021. {
  10022. Notify (\_SB.PCI0.LPC.EC.BAT2, 0x81) // Information Change
  10023. }
  10024. }
  10025.  
  10026. BEEP (0x00)
  10027. BSTS = 0x00
  10028. }
  10029.  
  10030. Method (BSCN, 0, NotSerialized)
  10031. {
  10032. If (!HPBU)
  10033. {
  10034. Local0 = BGID (0x00)
  10035. BDEV = Local0
  10036. If ((Local0 == 0x0D))
  10037. {
  10038. If (\LFDC)
  10039. {
  10040. BEN (0x00)
  10041. LED (0x04, 0x80)
  10042. }
  10043. }
  10044.  
  10045. If ((Local0 < 0x0C))
  10046. {
  10047. If ((Local0 == 0x06))
  10048. {
  10049. BEN (0x02)
  10050. }
  10051. Else
  10052. {
  10053. BEN (0x01)
  10054. }
  10055.  
  10056. LED (0x04, 0x80)
  10057. }
  10058.  
  10059. If ((Local0 == 0x0E))
  10060. {
  10061. BEN (0x00)
  10062. LED (0x04, 0x80)
  10063. }
  10064.  
  10065. If ((Local0 == 0x10))
  10066. {
  10067. LED (0x04, 0x80)
  10068. \_SB.PCI0.LPC.EC.BAT1.XB1S = 0x01
  10069. }
  10070.  
  10071. BEEP (0x00)
  10072. BSTS = 0x00
  10073. }
  10074. }
  10075.  
  10076. Method (BEJ0, 1, NotSerialized)
  10077. {
  10078. If (Arg0)
  10079. {
  10080. BDIS ()
  10081. LED (0x04, 0x00)
  10082. \BHDP (0x01, 0x00)
  10083. BDEV = 0x0F
  10084. BSTS = 0x01
  10085. If (BHKE)
  10086. {
  10087. BHKE = 0x00
  10088. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x3003)
  10089. }
  10090. }
  10091. Else
  10092. {
  10093. LED (0x04, 0x80)
  10094. BSTS = 0x00
  10095. }
  10096. }
  10097.  
  10098. Method (BEJ3, 1, NotSerialized)
  10099. {
  10100. If (Arg0)
  10101. {
  10102. BDIS ()
  10103. BSTS = 0x01
  10104. }
  10105. Else
  10106. {
  10107. BSTS = 0x00
  10108. }
  10109. }
  10110.  
  10111. Method (BPTS, 1, NotSerialized)
  10112. {
  10113. HDBM = 0x01
  10114. If ((BSTS != 0x00))
  10115. {
  10116. BDEV = 0x0F
  10117. BSTS = 0x00
  10118. }
  10119.  
  10120. BHKE = 0x00
  10121. Local0 = 0x01
  10122. If ((BDEV != 0x0F))
  10123. {
  10124. If ((!\LFDC && (BDEV == 0x0D)))
  10125. {
  10126. Local0 = 0x00
  10127. }
  10128. }
  10129. Else
  10130. {
  10131. Local0 = 0x00
  10132. }
  10133.  
  10134. If ((Arg0 == 0x05))
  10135. {
  10136. Local0 = 0x00
  10137. }
  10138.  
  10139. If (Local0)
  10140. {
  10141. BUWK (0x01)
  10142. }
  10143. Else
  10144. {
  10145. LED (0x04, 0x00)
  10146. BUWK (0x00)
  10147. }
  10148. }
  10149.  
  10150. Method (BWAK, 1, NotSerialized)
  10151. {
  10152. BUWK (0x00)
  10153. Local0 = BGID (0x00)
  10154. If ((!\LFDC && (Local0 == 0x0D)))
  10155. {
  10156. BDIS ()
  10157. }
  10158.  
  10159. \_SB.PCI0.LPC.FDC._INI ()
  10160. If (\LFDC)
  10161. {
  10162. If ((Local0 != 0x0D))
  10163. {
  10164. If ((\_SB.PCI0.LPC.FDC.FD0S == \_SB.PCI0.LPC.EC.HPNF))
  10165. {
  10166. Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x01) // Device Check
  10167. }
  10168. }
  10169. }
  10170.  
  10171. If ((\_SB.PCI0.LPC.EC.BAT2.XB2S || HBCS)){}
  10172. ElseIf (HB1A)
  10173. {
  10174. \_SB.PCI0.LPC.EC.BAT2.XB2S = 0x01
  10175. Notify (\_SB.PCI0.LPC.EC.BAT2, 0x01) // Device Check
  10176. }
  10177.  
  10178. If ((SFLG & 0x0400))
  10179. {
  10180. If ((BSTS == 0x00))
  10181. {
  10182. If ((Local0 != BDEV))
  10183. {
  10184. If (BXCN)
  10185. {
  10186. BDEV = Local0
  10187. NXRC (Local0)
  10188. }
  10189. Else
  10190. {
  10191. NBEJ (BDEV)
  10192. BDEV = Local0
  10193. NBIN (Local0)
  10194. }
  10195. }
  10196. ElseIf ((\LFDC || (BDEV != 0x0D)))
  10197. {
  10198. If ((Local0 != 0x0F))
  10199. {
  10200. LED (0x04, 0x80)
  10201. If (HPBU)
  10202. {
  10203. BHKE = ((Arg0 << 0x08) | 0x2005)
  10204. \_SB.PCI0.LPC.EC.HKEY.MHKQ (BHKE)
  10205. If ((Arg0 <= 0x02)){}
  10206. ElseIf (BXCN)
  10207. {
  10208. NXRE (Local0)
  10209. }
  10210. Else
  10211. {
  10212. NBRE (Local0)
  10213. }
  10214. }
  10215. }
  10216. }
  10217. }
  10218. }
  10219. ElseIf (BXCN)
  10220. {
  10221. \_SB.PCI0.IDE0.SSD0 = 0x00
  10222. \_SB.PCI0.IDE0.SIE0 = 0x00
  10223. }
  10224. }
  10225.  
  10226. Method (BDIS, 0, NotSerialized)
  10227. {
  10228. If (!\_SB.PCI0.LPC.CSON)
  10229. {
  10230. \_SB.PCI0.IDE0.SIE0 = 0x00
  10231. \_SB.PCI0.IDE0.STI0 = 0x00
  10232. \_SB.PCI0.LPC.URST = 0x00
  10233. Stall (0x0F)
  10234. \_SB.PCI0.IDE0.SSIG = 0x01
  10235. \_SB.PCI0.LPC.CSON = 0x01
  10236. \_SB.PCI0.LPC.EC.PNST (0x00)
  10237. }
  10238. }
  10239.  
  10240. Method (BEN, 1, NotSerialized)
  10241. {
  10242. If (\_SB.PCI0.LPC.CSON)
  10243. {
  10244. \_SB.PCI0.LPC.URST = 0x00
  10245. \_SB.PCI0.LPC.CSON = 0x00
  10246. Sleep (0x0F)
  10247. If (Arg0)
  10248. {
  10249. \_SB.PCI0.IDE0.SSIG = 0x00
  10250. \_SB.PCI0.IDE0.SIDE = 0x01
  10251. Stall (0x2D)
  10252. \_SB.PCI0.LPC.URST = 0x01
  10253. If ((Arg0 == 0x02))
  10254. {
  10255. Sleep (0x0960)
  10256. }
  10257. Else
  10258. {
  10259. Sleep (0x0190)
  10260. }
  10261. }
  10262. }
  10263. }
  10264.  
  10265. Method (BSTA, 1, NotSerialized)
  10266. {
  10267. If (\_SB.PCI0.LPC.CSON)
  10268. {
  10269. Return (0x00)
  10270. }
  10271.  
  10272. BINI ()
  10273. If ((Arg0 == 0x00))
  10274. {
  10275. Return ((BDEV == 0x0D))
  10276. }
  10277.  
  10278. If ((Arg0 == 0x01))
  10279. {
  10280. Return ((BDEV < 0x0C))
  10281. }
  10282.  
  10283. If ((Arg0 == 0x02))
  10284. {
  10285. Return ((BDEV == 0x0E))
  10286. }
  10287.  
  10288. Return (0x00)
  10289. }
  10290.  
  10291. Method (BUWK, 1, NotSerialized)
  10292. {
  10293. If (\H8DR)
  10294. {
  10295. If (Arg0)
  10296. {
  10297. \_SB.PCI0.LPC.EC.HWBU = 0x01
  10298. }
  10299. Else
  10300. {
  10301. \_SB.PCI0.LPC.EC.HWBU = 0x00
  10302. }
  10303. }
  10304. ElseIf (Arg0)
  10305. {
  10306. \MBEC (0x32, 0xFF, 0x80)
  10307. }
  10308. Else
  10309. {
  10310. \MBEC (0x32, 0x7F, 0x00)
  10311. }
  10312. }
  10313.  
  10314. Method (BINI, 0, NotSerialized)
  10315. {
  10316. If ((BDEV == 0xFF))
  10317. {
  10318. BDEV = BGID (0x00)
  10319. }
  10320. }
  10321.  
  10322. Method (BGID, 1, NotSerialized)
  10323. {
  10324. If (Arg0)
  10325. {
  10326. Local0 = 0xFF
  10327. }
  10328. ElseIf ((\_SB.PCI0.LPC.EC.GSID () == 0x79004D24))
  10329. {
  10330. If (\H8DR)
  10331. {
  10332. Local0 = HBID /* \_SB_.PCI0.LPC_.EC__.HBID */
  10333. }
  10334. Else
  10335. {
  10336. Local0 = (RBEC (0x47) >> 0x02)
  10337. Local0 &= 0x0F
  10338. }
  10339.  
  10340. If ((Local0 == 0x0F))
  10341. {
  10342. If (\H8DR)
  10343. {
  10344. If ((HB1A && HBCS))
  10345. {
  10346. Local0 = 0x10
  10347. }
  10348. }
  10349. ElseIf ((\RBEC (0x39) & 0x80))
  10350. {
  10351. If ((\RBEC (0x47) & 0x40))
  10352. {
  10353. Local0 = 0x10
  10354. }
  10355. }
  10356. }
  10357. }
  10358. Else
  10359. {
  10360. Local0 = 0x0F
  10361. }
  10362.  
  10363. Return (Local0)
  10364. }
  10365.  
  10366. Method (NXRE, 1, NotSerialized)
  10367. {
  10368. If ((Arg0 == 0x0F))
  10369. {
  10370. LED (0x04, 0x00)
  10371. BSTS = 0x00
  10372. }
  10373.  
  10374. If ((Arg0 == 0x0D))
  10375. {
  10376. If (\LFDC)
  10377. {
  10378. LED (0x04, 0xC0)
  10379. Notify (\_SB.SWAP, 0x83) // Device-Specific Change
  10380. }
  10381. }
  10382.  
  10383. If ((Arg0 < 0x0C))
  10384. {
  10385. LED (0x04, 0xC0)
  10386. Notify (\_SB.SWAP, 0x83) // Device-Specific Change
  10387. }
  10388.  
  10389. If ((Arg0 == 0x0E))
  10390. {
  10391. LED (0x04, 0xC0)
  10392. Notify (\_SB.SWAP, 0x83) // Device-Specific Change
  10393. }
  10394.  
  10395. If ((Arg0 == 0x10))
  10396. {
  10397. If ((HPAC || HB0A))
  10398. {
  10399. LED (0x04, 0xC0)
  10400. Notify (\_SB.SWAP, 0x83) // Device-Specific Change
  10401. }
  10402. Else
  10403. {
  10404. LED (0x04, 0xC0)
  10405. BEEP (0x0F)
  10406. BSTS = 0x02
  10407. }
  10408. }
  10409. }
  10410.  
  10411. Method (NXRC, 1, NotSerialized)
  10412. {
  10413. If ((Arg0 == 0x0D))
  10414. {
  10415. If (\LFDC)
  10416. {
  10417. LED (0x04, 0x80)
  10418. BEN (0x00)
  10419. Notify (\_SB.SWAP, 0x80) // Status Change
  10420. }
  10421. }
  10422.  
  10423. If ((Arg0 < 0x0C))
  10424. {
  10425. LED (0x04, 0x80)
  10426. If ((Arg0 == 0x06))
  10427. {
  10428. BEN (0x02)
  10429. }
  10430. Else
  10431. {
  10432. BEN (0x01)
  10433. }
  10434.  
  10435. Notify (\_SB.SWAP, 0x80) // Status Change
  10436. }
  10437.  
  10438. If ((Arg0 == 0x0E))
  10439. {
  10440. LED (0x04, 0x80)
  10441. BEN (0x00)
  10442. Notify (\_SB.SWAP, 0x80) // Status Change
  10443. }
  10444.  
  10445. If ((Arg0 == 0x10))
  10446. {
  10447. Notify (\_SB.PCI0.LPC.EC.BAT2, 0x81) // Information Change
  10448. LED (0x04, 0x80)
  10449. Notify (\_SB.SWAP, 0x80) // Status Change
  10450. }
  10451.  
  10452. BEEP (0x00)
  10453. BSTS = 0x00
  10454. }
  10455.  
  10456. Method (NXEJ, 1, NotSerialized)
  10457. {
  10458. If ((Arg0 == 0x10))
  10459. {
  10460. Notify (\_SB.PCI0.LPC.EC.BAT2, 0x81) // Information Change
  10461. }
  10462.  
  10463. Notify (\_SB.SWAP, 0x82) // Device-Specific Change
  10464. LED (0x04, 0x00)
  10465. BEEP (0x00)
  10466. BSTS = 0x00
  10467. }
  10468.  
  10469. Method (NXIN, 1, NotSerialized)
  10470. {
  10471. Notify (\_SB.SWAP, 0x81) // Information Change
  10472. }
  10473. }
  10474.  
  10475. Scope (\_SB.PCI0.IDE0.SCND.MSTR)
  10476. {
  10477. Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9
  10478. {
  10479. \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
  10480. }
  10481.  
  10482. Method (_STA, 0, NotSerialized) // _STA: Status
  10483. {
  10484. If (\_SB.PCI0.LPC.EC.BSTA (0x01))
  10485. {
  10486. Return (0x0F)
  10487. }
  10488. Else
  10489. {
  10490. Return (0x00)
  10491. }
  10492. }
  10493. }
  10494.  
  10495. Scope (\_SB.PCI0.LPC.FDC)
  10496. {
  10497. Name (XFDS, 0x00)
  10498. Name (DCFD, 0x00)
  10499. Method (_INI, 0, NotSerialized) // _INI: Initialize
  10500. {
  10501. XFDS = 0x00
  10502. If (\H8DR)
  10503. {
  10504. \_SB.PCI0.LPC.EC.HAMA |= 0x0C
  10505. }
  10506. Else
  10507. {
  10508. \MBEC (0x1A, 0xFF, 0x0C)
  10509. }
  10510. }
  10511.  
  10512. Name (FDEB, Buffer (0x14)
  10513. {
  10514. /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  10515. /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
  10516. /* 0010 */ 0x02, 0x00, 0x00, 0x00 // ....
  10517. })
  10518. CreateByteField (FDEB, 0x00, FD0S)
  10519. Method (_FDE, 0, NotSerialized) // _FDE: Floppy Disk Enumerate
  10520. {
  10521. If ((\_SB.PCI0.LPC.EC.BSTA (0x00) || DCFD))
  10522. {
  10523. FD0S = 0x01
  10524. }
  10525. ElseIf ((\_SB.PCI0.LPC.EC.HPNF || XFDS))
  10526. {
  10527. If (!\_SB.PCI0.LPC.PNF)
  10528. {
  10529. FD0S = 0x01
  10530. }
  10531. Else
  10532. {
  10533. FD0S = 0x00
  10534. }
  10535. }
  10536. Else
  10537. {
  10538. FD0S = 0x01
  10539. }
  10540.  
  10541. Return (FDEB) /* \_SB_.PCI0.LPC_.FDC_.FDEB */
  10542. }
  10543. }
  10544.  
  10545. Scope (\_SB.PCI0.LPC.FDC.FDD0)
  10546. {
  10547. Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9
  10548. {
  10549. If (\_SB.PCI0.LPC.EC.BSTA (0x00))
  10550. {
  10551. \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
  10552. }
  10553. ElseIf (DCFD){}
  10554. Else
  10555. {
  10556. XFDS = 0x01
  10557. }
  10558. }
  10559. }
  10560.  
  10561. Scope (\_SB.PCI0.LPC.EC)
  10562. {
  10563. Method (_Q52, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10564. {
  10565. If (\_SB.PCI0.LPC.FDC.XFDS)
  10566. {
  10567. \_SB.PCI0.LPC.FDC.XFDS = 0x00
  10568. }
  10569. ElseIf ((\_SB.PCI0.LPC.EC.BSTA (0x00) || \_SB.PCI0.LPC.FDC.DCFD)){}
  10570. ElseIf (\LFDC)
  10571. {
  10572. Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x01) // Device Check
  10573. }
  10574. }
  10575.  
  10576. Method (_Q53, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10577. {
  10578. \_SB.PCI0.LPC.FDC.XFDS = 0x00
  10579. If ((\_SB.PCI0.LPC.EC.BSTA (0x00) || \_SB.PCI0.LPC.FDC.DCFD)){}
  10580. ElseIf (\LFDC)
  10581. {
  10582. Notify (\_SB.PCI0.LPC.FDC.FDD0, 0x01) // Device Check
  10583. }
  10584. }
  10585. }
  10586.  
  10587. Scope (\_SB.PCI0.LPC.EC.BAT1)
  10588. {
  10589. Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9
  10590. {
  10591. B1ST = 0x00
  10592. XB1S = 0x00
  10593. \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
  10594. }
  10595. }
  10596.  
  10597. Scope (\_SB)
  10598. {
  10599. Device (NEST)
  10600. {
  10601. Name (_HID, EisaId ("IBM006A")) // _HID: Hardware ID
  10602. Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9
  10603. {
  10604. \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
  10605. }
  10606.  
  10607. Method (_STA, 0, NotSerialized) // _STA: Status
  10608. {
  10609. If (\WNTF)
  10610. {
  10611. If (\_SB.PCI0.LPC.EC.BSTA (0x02))
  10612. {
  10613. Return (0x0F)
  10614. }
  10615. Else
  10616. {
  10617. Return (0x00)
  10618. }
  10619. }
  10620. Else
  10621. {
  10622. Return (0x00)
  10623. }
  10624. }
  10625. }
  10626. }
  10627.  
  10628. Scope (\_SB)
  10629. {
  10630. Device (SWAP)
  10631. {
  10632. Name (_HID, EisaId ("IBM0069")) // _HID: Hardware ID
  10633. Method (_STA, 0, NotSerialized) // _STA: Status
  10634. {
  10635. If (\WMEF)
  10636. {
  10637. Return (0x0F)
  10638. }
  10639. Else
  10640. {
  10641. Return (0x00)
  10642. }
  10643. }
  10644.  
  10645. Method (XCNN, 1, NotSerialized)
  10646. {
  10647. \_SB.PCI0.LPC.EC.BXCN = Arg0
  10648. Return (0x09)
  10649. }
  10650.  
  10651. Method (XSWP, 0, NotSerialized)
  10652. {
  10653. Return (0x07)
  10654. }
  10655.  
  10656. Method (XEJ0, 1, NotSerialized)
  10657. {
  10658. \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
  10659. }
  10660.  
  10661. Method (XEJ3, 1, NotSerialized)
  10662. {
  10663. \_SB.PCI0.LPC.EC.BEJ3 (Arg0)
  10664. }
  10665.  
  10666. Method (XDID, 0, NotSerialized)
  10667. {
  10668. Name (XPCK, Package (0x06)
  10669. {
  10670. 0x00,
  10671. 0x00,
  10672. 0xFFFFFFFF,
  10673. 0xFFFFFFFF,
  10674. 0xFFFFFFFF,
  10675. 0x00
  10676. })
  10677. Local0 = \_SB.PCI0.LPC.EC.BDEV
  10678. XPCK [0x00] = Local0
  10679. If ((Local0 < 0x0C))
  10680. {
  10681. XPCK [0x02] = \_SB.PCI0.IDE0._ADR
  10682. XPCK [0x03] = \_SB.PCI0.IDE0.SCND._ADR
  10683. XPCK [0x04] = \_SB.PCI0.IDE0.SCND.MSTR._ADR
  10684. }
  10685.  
  10686. If ((Local0 == 0x0D))
  10687. {
  10688. If (\LFDC)
  10689. {
  10690. XPCK [0x02] = \_SB.PCI0.LPC.FDC._HID
  10691. XPCK [0x04] = \_SB.PCI0.LPC.FDC.FDD0._ADR
  10692. }
  10693. Else
  10694. {
  10695. XPCK [0x00] = 0x0F
  10696. }
  10697. }
  10698.  
  10699. If ((Local0 == 0x0E))
  10700. {
  10701. XPCK [0x02] = \_SB.PCI0.USB0._ADR
  10702. XPCK [0x03] = \_SB.PCI0.USB0.URTH._ADR
  10703. XPCK [0x04] = \_SB.PCI0.USB0.URTH.UNST._ADR
  10704. }
  10705.  
  10706. If ((Local0 == 0x10))
  10707. {
  10708. XPCK [0x02] = \_SB.PCI0.LPC.EC.BAT2._HID
  10709. XPCK [0x04] = \_SB.PCI0.LPC.EC.BAT2._UID
  10710. }
  10711.  
  10712. XPCK [0x05] = (\_SB.PCI0.LPC.CSON ^ 0x01)
  10713. Return (XPCK) /* \_SB_.SWAP.XDID.XPCK */
  10714. }
  10715.  
  10716. Method (XSTM, 1, NotSerialized)
  10717. {
  10718. Name (XDMY, Buffer (0x14){})
  10719. \_SB.PCI0.IDE0.SCND._STM (XDMY, Arg0, 0x00)
  10720. }
  10721.  
  10722. Method (XGTF, 0, NotSerialized)
  10723. {
  10724. Return (\_SB.PCI0.IDE0.SCND.MSTR._GTF ())
  10725. }
  10726.  
  10727. Method (XBCK, 0, NotSerialized)
  10728. {
  10729. \_SB.PCI0.LPC.EC._Q38 ()
  10730. }
  10731. }
  10732. }
  10733.  
  10734. Scope (\_SB.PCI0.LPC.EC)
  10735. {
  10736. Method (RPTS, 1, NotSerialized)
  10737. {
  10738. Noop
  10739. }
  10740.  
  10741. Method (RWAK, 1, NotSerialized)
  10742. {
  10743. \_SB.PCI0.LPC.EC.GUSB (0x01)
  10744. }
  10745. }
  10746.  
  10747. Scope (\_SB.PCI0.LPC.EC)
  10748. {
  10749. Method (_Q1C, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10750. {
  10751. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00200000))
  10752. {
  10753. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1016)
  10754. }
  10755.  
  10756. \UCMS (0x00)
  10757. }
  10758.  
  10759. Method (_Q1D, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10760. {
  10761. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00100000))
  10762. {
  10763. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1015)
  10764. }
  10765.  
  10766. \UCMS (0x01)
  10767. }
  10768.  
  10769. Method (_Q1E, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10770. {
  10771. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00400000))
  10772. {
  10773. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1017)
  10774. }
  10775.  
  10776. \UCMS (0x02)
  10777. }
  10778. }
  10779.  
  10780. Scope (\_SB.PCI0.LPC.EC)
  10781. {
  10782. Method (_Q14, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10783. {
  10784. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x8000))
  10785. {
  10786. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1010)
  10787. }
  10788.  
  10789. \UCMS (0x04)
  10790. }
  10791.  
  10792. Method (_Q15, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10793. {
  10794. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00010000))
  10795. {
  10796. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1011)
  10797. }
  10798.  
  10799. \UCMS (0x05)
  10800. }
  10801. }
  10802.  
  10803. Scope (\_SB.PCI0.LPC.EC)
  10804. {
  10805. Method (_Q19, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10806. {
  10807. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00800000))
  10808. {
  10809. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1018)
  10810. }
  10811.  
  10812. \UCMS (0x03)
  10813. }
  10814. }
  10815.  
  10816. Scope (\_SB.PCI0.LPC.EC)
  10817. {
  10818. Method (_Q63, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10819. {
  10820. If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00080000))
  10821. {
  10822. \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1014)
  10823. }
  10824.  
  10825. \UCMS (0x0B)
  10826. }
  10827. }
  10828.  
  10829. Scope (\_SB.PCI0.LPC.EC)
  10830. {
  10831. Method (_Q70, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10832. {
  10833. FNST ()
  10834. }
  10835.  
  10836. Method (_Q72, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10837. {
  10838. FNST ()
  10839. }
  10840.  
  10841. Method (_Q73, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  10842. {
  10843. FNST ()
  10844. }
  10845.  
  10846. Method (FNST, 0, NotSerialized)
  10847. {
  10848. If (\H8DR)
  10849. {
  10850. Local0 = HFNS /* \_SB_.PCI0.LPC_.EC__.HFNS */
  10851. Local1 = HFNE /* \_SB_.PCI0.LPC_.EC__.HFNE */
  10852. }
  10853. Else
  10854. {
  10855. Local0 = (\RBEC (0x0E) & 0x03)
  10856. Local1 = (\RBEC (0x00) & 0x08)
  10857. }
  10858.  
  10859. If (Local1)
  10860. {
  10861. If ((Local0 == 0x00))
  10862. {
  10863. \UCMS (0x11)
  10864. }
  10865.  
  10866. If ((Local0 == 0x01))
  10867. {
  10868. \UCMS (0x0F)
  10869. }
  10870.  
  10871. If ((Local0 == 0x02))
  10872. {
  10873. \UCMS (0x10)
  10874. }
  10875. }
  10876. }
  10877. }
  10878.  
  10879. Scope (\_SB.PCI0.LPC.EC.HKEY)
  10880. {
  10881. Name (BTFG, 0x00)
  10882. Method (GULP, 0, NotSerialized)
  10883. {
  10884. Local0 = 0x00
  10885. If ((BTFG & 0x00010000))
  10886. {
  10887. Local0 |= 0x04
  10888. }
  10889.  
  10890. Return (Local0)
  10891. }
  10892.  
  10893. Method (SULP, 1, NotSerialized)
  10894. {
  10895. Return (GULP ())
  10896. }
  10897.  
  10898. Method (GBDC, 0, NotSerialized)
  10899. {
  10900. Local0 = 0x00
  10901. If (DBTH ())
  10902. {
  10903. Local0 |= 0x01
  10904. }
  10905.  
  10906. If (DPWS ())
  10907. {
  10908. Local0 |= 0x02
  10909. }
  10910.  
  10911. If ((BTFG & 0x00010000))
  10912. {
  10913. Local0 |= 0x04
  10914. }
  10915.  
  10916. Return (Local0)
  10917. }
  10918.  
  10919. Method (SBDC, 1, NotSerialized)
  10920. {
  10921. If ((Arg0 & 0x02))
  10922. {
  10923. DPWC (0x01)
  10924. }
  10925. Else
  10926. {
  10927. DPWC (0x00)
  10928. }
  10929.  
  10930. If ((Arg0 & 0x04))
  10931. {
  10932. BTFG |= 0x00010000
  10933. \BLTH (0x02)
  10934. }
  10935. Else
  10936. {
  10937. BTFG &= ~0x00010000
  10938. \BLTH (0x03)
  10939. }
  10940.  
  10941. Return (GBDC ())
  10942. }
  10943.  
  10944. Method (BTIN, 0, NotSerialized)
  10945. {
  10946. If (\BLTH (0x01))
  10947. {
  10948. BTFG |= 0x00010000
  10949. }
  10950.  
  10951. DATH (0x01)
  10952. PBTN (0x01)
  10953. MODE (0x01)
  10954. }
  10955.  
  10956. Method (BTPS, 1, NotSerialized)
  10957. {
  10958. If ((Arg0 >= 0x04))
  10959. {
  10960. \BLTH (0x05)
  10961. }
  10962.  
  10963. PBTN (0x00)
  10964. If (!(BTFG & 0x00010000))
  10965. {
  10966. If (DBTH ())
  10967. {
  10968. DPWC (0x00)
  10969. }
  10970. }
  10971.  
  10972. PWRS ()
  10973. }
  10974.  
  10975. Method (BTWA, 1, NotSerialized)
  10976. {
  10977. PBTN (0x01)
  10978. If ((BTFG & 0x0200))
  10979. {
  10980. DPWC (0x01)
  10981. }
  10982. }
  10983.  
  10984. Method (MODE, 1, NotSerialized)
  10985. {
  10986. If (Arg0)
  10987. {
  10988. If (\H8DR)
  10989. {
  10990. \_SB.PCI0.LPC.EC.BTCM = One
  10991. }
  10992. Else
  10993. {
  10994. \MBEC (0x01, 0xFF, 0x02)
  10995. }
  10996. }
  10997. ElseIf (\H8DR)
  10998. {
  10999. \_SB.PCI0.LPC.EC.BTCM = Zero
  11000. }
  11001. Else
  11002. {
  11003. \MBEC (0x01, 0xFD, 0x00)
  11004. }
  11005. }
  11006.  
  11007. Method (PBTN, 1, NotSerialized)
  11008. {
  11009. If (Arg0)
  11010. {
  11011. If (\H8DR)
  11012. {
  11013. \_SB.PCI0.LPC.EC.BTPC = One
  11014. }
  11015. Else
  11016. {
  11017. \MBEC (0x01, 0xFF, 0x40)
  11018. }
  11019. }
  11020. ElseIf (\H8DR)
  11021. {
  11022. \_SB.PCI0.LPC.EC.BTPC = Zero
  11023. }
  11024. Else
  11025. {
  11026. \MBEC (0x01, 0xBF, 0x00)
  11027. }
  11028. }
  11029.  
  11030. Method (PWRS, 0, NotSerialized)
  11031. {
  11032. If (DPWS ())
  11033. {
  11034. BTFG |= 0x0200
  11035. }
  11036. Else
  11037. {
  11038. BTFG &= ~0x0200
  11039. }
  11040.  
  11041. Local0 = 0x00
  11042. If ((DBTH () && (BTFG & 0x0200)))
  11043. {
  11044. Local0 |= 0x01
  11045. }
  11046.  
  11047. Return (Local0)
  11048. }
  11049.  
  11050. Method (BTAT, 2, NotSerialized)
  11051. {
  11052. Local0 = 0x00
  11053. If (DBTH ())
  11054. {
  11055. Local0 |= DATN (Arg0, Arg1)
  11056. }
  11057.  
  11058. Return (Local0)
  11059. }
  11060. }
  11061.  
  11062. Scope (\_SB.PCI0.LPC.EC.HKEY)
  11063. {
  11064. Method (DBTH, 0, NotSerialized)
  11065. {
  11066. Local0 = 0x00
  11067. Local0 = CCDC (GCDC ())
  11068. Return (Local0)
  11069. }
  11070.  
  11071. Method (CCDC, 1, NotSerialized)
  11072. {
  11073. Local0 = SizeOf (BDCT)
  11074. While (Local0)
  11075. {
  11076. Local0--
  11077. If ((Arg0 == DerefOf (BDCT [Local0])))
  11078. {
  11079. Return (0x01)
  11080. }
  11081. }
  11082.  
  11083. Return (0x00)
  11084. }
  11085.  
  11086. Name (BDCT, Buffer (0x03)
  11087. {
  11088. 0x01, 0x00, 0x04 // ...
  11089. })
  11090. Method (GCDC, 0, NotSerialized)
  11091. {
  11092. GDR0 = 0x00
  11093. Local0 = (GDT0 << 0x01)
  11094. Local1 = (C0BI << 0x02)
  11095. Local1 |= C0EI /* \_SB_.PCI0.LPC_.C0EI */
  11096. Return ((Local0 | Local1))
  11097. }
  11098.  
  11099. Method (DPWC, 1, NotSerialized)
  11100. {
  11101. If (Arg0)
  11102. {
  11103. If (\H8DR)
  11104. {
  11105. \_SB.PCI0.LPC.EC.BDPW = One
  11106. }
  11107. Else
  11108. {
  11109. \MBEC (0x3B, 0xFF, 0x20)
  11110. }
  11111. }
  11112. ElseIf (\H8DR)
  11113. {
  11114. \_SB.PCI0.LPC.EC.BDPW = Zero
  11115. }
  11116. Else
  11117. {
  11118. \MBEC (0x3B, 0xDF, 0x00)
  11119. }
  11120. }
  11121.  
  11122. Method (DATH, 1, NotSerialized)
  11123. {
  11124. If (Arg0)
  11125. {
  11126. If (\H8DR)
  11127. {
  11128. \_SB.PCI0.LPC.EC.BDDT = Zero
  11129. }
  11130. Else
  11131. {
  11132. \MBEC (0x3B, 0xBF, 0x00)
  11133. }
  11134. }
  11135. ElseIf (\H8DR)
  11136. {
  11137. \_SB.PCI0.LPC.EC.BDDT = One
  11138. }
  11139. Else
  11140. {
  11141. \MBEC (0x3B, 0xFF, 0x40)
  11142. }
  11143. }
  11144.  
  11145. Method (DPWS, 0, NotSerialized)
  11146. {
  11147. If (\H8DR)
  11148. {
  11149. Local0 = \_SB.PCI0.LPC.EC.BDPW
  11150. }
  11151. Else
  11152. {
  11153. Local0 = ((\RBEC (0x3B) & 0x20) >> 0x05)
  11154. }
  11155.  
  11156. Return (Local0)
  11157. }
  11158.  
  11159. Method (DTGL, 0, NotSerialized)
  11160. {
  11161. If (DBTH ())
  11162. {
  11163. DPWC (!DPWS ())
  11164. }
  11165. }
  11166.  
  11167. Method (DATS, 0, NotSerialized)
  11168. {
  11169. If (\H8DR)
  11170. {
  11171. Local0 = \_SB.PCI0.LPC.EC.BDDT
  11172. }
  11173. Else
  11174. {
  11175. Local0 = ((\RBEC (0x3B) & 0x40) >> 0x06)
  11176. }
  11177.  
  11178. Local0 ^= 0x01
  11179. Return (Local0)
  11180. }
  11181.  
  11182. Method (DWKS, 0, NotSerialized)
  11183. {
  11184. If (\H8DR)
  11185. {
  11186. Local0 = \_SB.PCI0.LPC.EC.BDWK
  11187. }
  11188. Else
  11189. {
  11190. Local0 = ((\RBEC (0x48) & 0x40) >> 0x06)
  11191. }
  11192.  
  11193. Return (Local0)
  11194. }
  11195.  
  11196. Method (DATN, 2, NotSerialized)
  11197. {
  11198. Local0 = 0x00
  11199. If ((Arg0 == 0x00))
  11200. {
  11201. If ((Arg1 == 0x01))
  11202. {
  11203. If (\H8DR)
  11204. {
  11205. \_SB.PCI0.LPC.EC.HAMA |= 0x40
  11206. }
  11207. Else
  11208. {
  11209. \MBEC (0x1A, 0xFF, 0x40)
  11210. }
  11211. }
  11212.  
  11213. If ((Arg1 == 0x00))
  11214. {
  11215. If (\H8DR)
  11216. {
  11217. \_SB.PCI0.LPC.EC.HAMA &= 0xBF
  11218. }
  11219. Else
  11220. {
  11221. \MBEC (0x1A, 0xBF, 0x00)
  11222. }
  11223. }
  11224.  
  11225. If ((Arg1 == 0x02))
  11226. {
  11227. If (\H8DR)
  11228. {
  11229. If ((\_SB.PCI0.LPC.EC.HAMA & 0x40))
  11230. {
  11231. Local0 = 0x01
  11232. }
  11233. }
  11234. ElseIf ((\RBEC (0x1A) & 0x40))
  11235. {
  11236. Local0 = 0x01
  11237. }
  11238. }
  11239. }
  11240.  
  11241. If ((Arg0 == 0x01))
  11242. {
  11243. If ((Arg1 == 0x01))
  11244. {
  11245. If (\H8DR)
  11246. {
  11247. \_SB.PCI0.LPC.EC.HAMA |= 0x80
  11248. }
  11249. Else
  11250. {
  11251. \MBEC (0x1A, 0xFF, 0x80)
  11252. }
  11253. }
  11254.  
  11255. If ((Arg1 == 0x00))
  11256. {
  11257. If (\H8DR)
  11258. {
  11259. \_SB.PCI0.LPC.EC.HAMA &= 0x7F
  11260. }
  11261. Else
  11262. {
  11263. \MBEC (0x1A, 0x7F, 0x00)
  11264. }
  11265. }
  11266.  
  11267. If ((Arg1 == 0x02))
  11268. {
  11269. If (\H8DR)
  11270. {
  11271. If ((\_SB.PCI0.LPC.EC.HAMA & 0x80))
  11272. {
  11273. Local0 = 0x01
  11274. }
  11275. }
  11276. ElseIf ((\RBEC (0x1A) & 0x80))
  11277. {
  11278. Local0 = 0x01
  11279. }
  11280. }
  11281. }
  11282.  
  11283. Return (Local0)
  11284. }
  11285. }
  11286.  
  11287. Scope (\_SB.PCI0.LPC.EC)
  11288. {
  11289. Method (_Q57, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  11290. {
  11291. Noop
  11292. }
  11293. }
  11294. }
  11295.  
  11296. Scope (\_SB.PCI0.PCI1.DOCK)
  11297. {
  11298. Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
  11299. }
  11300.  
  11301. Scope (\_SB.PCI0.LPC.FDC.FDD0)
  11302. {
  11303. Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
  11304. }
  11305.  
  11306. Scope (\_SB.PCI0.IDE0.SCND)
  11307. {
  11308. Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
  11309. }
  11310.  
  11311. Scope (\_SB.NEST)
  11312. {
  11313. Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
  11314. }
  11315.  
  11316. Scope (\_SB.PCI0.LPC.EC.BAT1)
  11317. {
  11318. Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
  11319. }
  11320.  
  11321. Scope (\_SB.PCI0.LPC.EC.BAT2)
  11322. {
  11323. Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
  11324. }
  11325.  
  11326. Scope (\_SB.PCI0.USB0.URTH)
  11327. {
  11328. Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
  11329. }
  11330.  
  11331. Scope (\_SB.PCI0.USB7.URTH.UPDK)
  11332. {
  11333. Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
  11334. }
  11335.  
  11336. Scope (\_SB.PCI0.LPC.UART)
  11337. {
  11338. Name (_EJD, "_SB.GDCK") // _EJD: Ejection Dependent Device
  11339. }
  11340.  
  11341. Name (\_S0, Package (0x04) // _S0_: S0 System State
  11342. {
  11343. 0x00,
  11344. 0x00,
  11345. 0x00,
  11346. 0x00
  11347. })
  11348. Name (\_S3, Package (0x04) // _S3_: S3 System State
  11349. {
  11350. 0x05,
  11351. 0x05,
  11352. 0x00,
  11353. 0x00
  11354. })
  11355. Name (\_S4, Package (0x04) // _S4_: S4 System State
  11356. {
  11357. 0x06,
  11358. 0x06,
  11359. 0x00,
  11360. 0x00
  11361. })
  11362. Name (\_S5, Package (0x04) // _S5_: S5 System State
  11363. {
  11364. 0x07,
  11365. 0x07,
  11366. 0x00,
  11367. 0x00
  11368. })
  11369. Method (\_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep
  11370. {
  11371. Local0 = 0x01
  11372. If ((Arg0 == \SPS))
  11373. {
  11374. Local0 = 0x00
  11375. }
  11376.  
  11377. If (((Arg0 == 0x00) || (Arg0 >= 0x06)))
  11378. {
  11379. Local0 = 0x00
  11380. }
  11381.  
  11382. If (Local0)
  11383. {
  11384. \SPS = Arg0
  11385. \_SB.PCI0.LPC.EC.HKEY.MHKE (0x00)
  11386. If (\_SB.PCI0.LPC.EC.KBLT)
  11387. {
  11388. \UCMS (0x0D)
  11389. }
  11390.  
  11391. If ((Arg0 == 0x01))
  11392. {
  11393. \FNID = \_SB.PCI0.LPC.EC.HFNI
  11394. \_SB.PCI0.LPC.EC.HFNI = 0x00
  11395. \_SB.PCI0.LPC.EC.HFSP = 0x00
  11396. }
  11397.  
  11398. If ((Arg0 == 0x03))
  11399. {
  11400. \TRAP ()
  11401. }
  11402.  
  11403. If ((Arg0 == 0x04))
  11404. {
  11405. \_SB.SLPB._PSW (0x00)
  11406. If (\SPEN)
  11407. {
  11408. \STEP (0x07)
  11409. }
  11410.  
  11411. \TRAP ()
  11412. }
  11413.  
  11414. If ((Arg0 == 0x05))
  11415. {
  11416. \TRAP ()
  11417. }
  11418.  
  11419. \_SB.PCI0.LPC.EC.BPTS (Arg0)
  11420. If ((Arg0 != 0x05))
  11421. {
  11422. \_SB.PCI0.LPC.EC.HCMU = 0x01
  11423. \_SB.GDCK.GPTS (Arg0)
  11424. If (\W98F)
  11425. {
  11426. \CBRI ()
  11427. }
  11428. }
  11429.  
  11430. \_SB.PCI0.LPC.EC.HKEY.BTPS (Arg0)
  11431. }
  11432. }
  11433.  
  11434. Name (WAKI, Package (0x02)
  11435. {
  11436. 0x00,
  11437. 0x00
  11438. })
  11439. Method (\_WAK, 1, NotSerialized) // _WAK: Wake
  11440. {
  11441. If (((Arg0 == 0x00) || (Arg0 >= 0x05)))
  11442. {
  11443. Return (WAKI) /* \WAKI */
  11444. }
  11445.  
  11446. \SPS = 0x00
  11447. \_SB.PCI0.LPC.EC.HCMU = 0x00
  11448. \_SB.PCI0.LPC.EC.HFSP = 0x80
  11449. \_SB.PCI0.LPC.EC.EVNT (0x01)
  11450. \_SB.PCI0.LPC.EC.HKEY.MHKE (0x01)
  11451. \_SB.PCI0.LPC.EC.FNST ()
  11452. If ((Arg0 == 0x01))
  11453. {
  11454. \FNID = \_SB.PCI0.LPC.EC.HFNI
  11455. }
  11456.  
  11457. If ((Arg0 == 0x03))
  11458. {
  11459. If (\WNTF)
  11460. {
  11461. If ((\WNTF == 0x01))
  11462. {
  11463. If (\_SB.PCI0.LPC.EC.AC._PSR ())
  11464. {
  11465. \_SB.PCI0.LPC.C4C3 = 0x00
  11466. }
  11467. ElseIf (\CWAS)
  11468. {
  11469. \_SB.PCI0.LPC.C4C3 = 0x00
  11470. }
  11471. Else
  11472. {
  11473. \_SB.PCI0.LPC.C4C3 = 0x01
  11474. }
  11475. }
  11476. Else
  11477. {
  11478. \_SB.PCI0.LPC.C4C3 = 0x00
  11479. If (\OSC4)
  11480. {
  11481. Notify (\_PR.CPU, 0x81) // C-State Change
  11482. }
  11483. }
  11484. }
  11485. }
  11486.  
  11487. If ((Arg0 == 0x04))
  11488. {
  11489. If (\W98F)
  11490. {
  11491. Notify (\_SB.SLPB, 0x02) // Device Wake
  11492. }
  11493.  
  11494. If (\WMEF)
  11495. {
  11496. \_SB.PCI0.LPC.EC.BEEP (0x05)
  11497. }
  11498.  
  11499. If (!\W98F)
  11500. {
  11501. \_SB.PCI0.LPC.EC.HSPA = 0x00
  11502. }
  11503.  
  11504. If (\WNTF)
  11505. {
  11506. If ((\WNTF == 0x01))
  11507. {
  11508. If ((!\_SB.PCI0.LPC.EC.AC._PSR () || \CWAS))
  11509. {
  11510. \_SB.PCI0.LPC.C4C3 = 0x00
  11511. }
  11512. }
  11513. ElseIf (\OSC4)
  11514. {
  11515. Notify (\_PR.CPU, 0x81) // C-State Change
  11516. }
  11517. }
  11518.  
  11519. If (\SPEN)
  11520. {
  11521. \STEP (0x08)
  11522. }
  11523. }
  11524.  
  11525. \_SB.GDCK.GWAK (Arg0)
  11526. \_SB.PCI0.LPC.EC.BWAK (Arg0)
  11527. \_SB.PCI0.LPC.EC.HKEY.BTWA (Arg0)
  11528. Notify (\_TZ.THM0, 0x80) // Thermal Status Change
  11529. \VSLD (\_SB.LID._LID ())
  11530. If ((\W98F && !\WMEF))
  11531. {
  11532. Notify (\_SB.PCI0.USB0, 0x00) // Bus Check
  11533. Notify (\_SB.PCI0.USB1, 0x00) // Bus Check
  11534. }
  11535.  
  11536. If ((Arg0 < 0x04))
  11537. {
  11538. If ((\RRBF & 0x02))
  11539. {
  11540. Local0 = (Arg0 << 0x08)
  11541. Local0 = (0x2013 | Local0)
  11542. \_SB.PCI0.LPC.EC.HKEY.MHKQ (Local0)
  11543. }
  11544. }
  11545.  
  11546. \RRBF = Zero
  11547. Return (WAKI) /* \WAKI */
  11548. }
  11549.  
  11550. Scope (\_SI)
  11551. {
  11552. Method (_SST, 1, NotSerialized) // _SST: System Status
  11553. {
  11554. If ((Arg0 == 0x00))
  11555. {
  11556. \_SB.PCI0.LPC.EC.LED (0x00, 0x00)
  11557. \_SB.PCI0.LPC.EC.LED (0x07, 0x00)
  11558. }
  11559.  
  11560. If ((Arg0 == 0x01))
  11561. {
  11562. If ((\SPS || \WNTF))
  11563. {
  11564. \_SB.PCI0.LPC.EC.BEEP (0x05)
  11565. }
  11566.  
  11567. \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
  11568. \_SB.PCI0.LPC.EC.LED (0x07, 0x00)
  11569. }
  11570.  
  11571. If ((Arg0 == 0x02))
  11572. {
  11573. \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
  11574. \_SB.PCI0.LPC.EC.LED (0x07, 0xC0)
  11575. }
  11576.  
  11577. If ((Arg0 == 0x03))
  11578. {
  11579. If ((\SPS > 0x03))
  11580. {
  11581. \_SB.PCI0.LPC.EC.BEEP (0x07)
  11582. }
  11583. ElseIf ((\SPS == 0x03))
  11584. {
  11585. \_SB.PCI0.LPC.EC.BEEP (0x03)
  11586. \_SB.GDCK.PEJ3 ()
  11587. }
  11588. Else
  11589. {
  11590. \_SB.PCI0.LPC.EC.BEEP (0x04)
  11591. }
  11592.  
  11593. If ((\SPS == 0x03))
  11594. {
  11595. \_SB.PCI0.LPC.EC.LED (0x00, 0x00)
  11596. }
  11597. Else
  11598. {
  11599. \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
  11600. }
  11601.  
  11602. \_SB.PCI0.LPC.EC.LED (0x07, 0x80)
  11603. }
  11604.  
  11605. If ((Arg0 == 0x04))
  11606. {
  11607. \_SB.PCI0.LPC.EC.BEEP (0x03)
  11608. \_SB.PCI0.LPC.EC.LED (0x07, 0xC0)
  11609. }
  11610. }
  11611. }
  11612.  
  11613. Scope (\_GPE)
  11614. {
  11615. Method (_L18, 0, NotSerialized) // _Lxx: Level-Triggered GPE, xx=0x00-0xFF
  11616. {
  11617. Local0 = \_SB.PCI0.LPC.EC.HWAK
  11618. \RRBF = Local0
  11619. Sleep (0x0A)
  11620. If ((Local0 & 0x02)){}
  11621. If ((Local0 & 0x04))
  11622. {
  11623. If (\W98F)
  11624. {
  11625. Notify (\_SB.SLPB, 0x02) // Device Wake
  11626. }
  11627. Else
  11628. {
  11629. Notify (\_SB.LID, 0x02) // Device Wake
  11630. }
  11631. }
  11632.  
  11633. If ((Local0 & 0x08))
  11634. {
  11635. \_SB.GDCK.GGPE ()
  11636. Notify (\_SB.SLPB, 0x02) // Device Wake
  11637. }
  11638.  
  11639. If ((Local0 & 0x10))
  11640. {
  11641. Notify (\_SB.SLPB, 0x02) // Device Wake
  11642. }
  11643.  
  11644. If ((Local0 & 0x20)){}
  11645. If ((Local0 & 0x40)){}
  11646. If ((Local0 & 0x80))
  11647. {
  11648. Notify (\_SB.SLPB, 0x02) // Device Wake
  11649. }
  11650. }
  11651. }
  11652.  
  11653. Scope (\_TZ)
  11654. {
  11655. ThermalZone (THM0)
  11656. {
  11657. Name (_PSL, Package (0x01) // _PSL: Passive List
  11658. {
  11659. \_PR.CPU
  11660. })
  11661. Method (_CRT, 0, NotSerialized) // _CRT: Critical Temperature
  11662. {
  11663. Return (\TCRT)
  11664. }
  11665.  
  11666. Method (_PSV, 0, NotSerialized) // _PSV: Passive Temperature
  11667. {
  11668. Return (\TPSV)
  11669. }
  11670.  
  11671. Method (_TC1, 0, NotSerialized) // _TC1: Thermal Constant 1
  11672. {
  11673. Return (\TTC1)
  11674. }
  11675.  
  11676. Method (_TC2, 0, NotSerialized) // _TC2: Thermal Constant 2
  11677. {
  11678. Return (\TTC2)
  11679. }
  11680.  
  11681. Method (_TSP, 0, NotSerialized) // _TSP: Thermal Sampling Period
  11682. {
  11683. Return (\TTSP)
  11684. }
  11685.  
  11686. Method (_TMP, 0, NotSerialized) // _TMP: Temperature
  11687. {
  11688. If (\H8DR)
  11689. {
  11690. Local0 = \_SB.PCI0.LPC.EC.TMP0
  11691. Local1 = \_SB.PCI0.LPC.EC.HT12
  11692. }
  11693. Else
  11694. {
  11695. Local0 = \RBEC (0x78)
  11696. Local1 = (\RBEC (0x20) & 0x40)
  11697. }
  11698.  
  11699. If (Local1)
  11700. {
  11701. Local0 = (\TCRT + 0x01)
  11702. Return (Local0)
  11703. }
  11704.  
  11705. Return (C2K (Local0))
  11706. }
  11707. }
  11708.  
  11709. Method (C2K, 1, NotSerialized)
  11710. {
  11711. Local0 = ((Arg0 * 0x0A) + 0x0AAC)
  11712. If ((Local0 <= 0x0AAC))
  11713. {
  11714. Local0 = 0x0BB8
  11715. }
  11716.  
  11717. If ((Local0 >= 0x0FAC))
  11718. {
  11719. Local0 = 0x0BB8
  11720. }
  11721.  
  11722. Return (Local0)
  11723. }
  11724. }
  11725.  
  11726. Scope (\_SB.PCI0.LPC.EC)
  11727. {
  11728. Method (_Q40, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
  11729. {
  11730. Notify (\_TZ.THM0, 0x80) // Thermal Status Change
  11731. If (\SPEN)
  11732. {
  11733. If (\OSPX)
  11734. {
  11735. Notify (\_PR.CPU, 0x80) // Performance Capability Change
  11736. }
  11737. ElseIf ((\_SB.PCI0.LPC.EC.HT00 || \_SB.PCI0.LPC.EC.HT10))
  11738. {
  11739. \STEP (0x09)
  11740. }
  11741. Else
  11742. {
  11743. \STEP (0x0A)
  11744. }
  11745. }
  11746. }
  11747. }
  11748.  
  11749. OperationRegion (MNVS, SystemMemory, 0x3FF78000, 0x1000)
  11750. Field (MNVS, DWordAcc, NoLock, Preserve)
  11751. {
  11752. Offset (0xF00),
  11753. GAPA, 32,
  11754. GAPL, 32,
  11755. DCKI, 32,
  11756. DCKS, 32,
  11757. VCDL, 1,
  11758. VCDC, 1,
  11759. VCDT, 1,
  11760. VCDD, 1,
  11761. , 1,
  11762. VCSS, 1,
  11763. VCDB, 1,
  11764. VCIN, 1,
  11765. Offset (0xF12),
  11766. VLID, 4,
  11767. VVPO, 4,
  11768. Offset (0xF14),
  11769. CDFL, 8,
  11770. CDAH, 8,
  11771. PMOD, 2,
  11772. PDIR, 1,
  11773. PDMA, 1,
  11774. Offset (0xF17),
  11775. LFDC, 1,
  11776. Offset (0xF18),
  11777. C2NA, 1,
  11778. C3NA, 1,
  11779. C4NA, 1,
  11780. Offset (0xF19),
  11781. SPEN, 1,
  11782. , 1,
  11783. , 1,
  11784. , 1,
  11785. Offset (0xF1A),
  11786. OSPX, 1,
  11787. OSC4, 1,
  11788. Offset (0xF1B),
  11789. UOPT, 8,
  11790. BTID, 32,
  11791. P0FQ, 16,
  11792. P0PW, 16,
  11793. P0CT, 16,
  11794. P1FQ, 16,
  11795. P1PW, 16,
  11796. P1CT, 16,
  11797. P2FQ, 16,
  11798. P2PW, 16,
  11799. P2CT, 16,
  11800. P3FQ, 16,
  11801. P3PW, 16,
  11802. P3CT, 16,
  11803. P4FQ, 16,
  11804. P4PW, 16,
  11805. P4CT, 16,
  11806. P5FQ, 16,
  11807. P5PW, 16,
  11808. P5CT, 16,
  11809. P6FQ, 16,
  11810. P6PW, 16,
  11811. P6CT, 16,
  11812. P7FQ, 16,
  11813. P7PW, 16,
  11814. P7CT, 16,
  11815. LWST, 8,
  11816. LPST, 8,
  11817. TCRT, 16,
  11818. TPSV, 16,
  11819. TTC1, 16,
  11820. TTC2, 16,
  11821. TTSP, 16,
  11822. SRP0, 8,
  11823. SRAG, 8,
  11824. SRHH, 8,
  11825. SRMC, 8,
  11826. SRCP, 8,
  11827. SRCR, 8,
  11828. SRVD, 8,
  11829. SRGD, 8,
  11830. CWAC, 1,
  11831. CWAS, 1,
  11832. Offset (0xF65),
  11833. CWAP, 16,
  11834. CWAT, 16,
  11835. DBGC, 1,
  11836. Offset (0xF6A),
  11837. FS1L, 16,
  11838. FS1M, 16,
  11839. FS1H, 16,
  11840. FS2L, 16,
  11841. FS2M, 16,
  11842. FS2H, 16,
  11843. FS3L, 16,
  11844. FS3M, 16,
  11845. FS3H, 16,
  11846. TPMP, 1,
  11847. Offset (0xF7D)
  11848. }
  11849.  
  11850. Field (MNVS, ByteAcc, NoLock, Preserve)
  11851. {
  11852. Offset (0xE00),
  11853. DDC1, 1024,
  11854. Offset (0xF00)
  11855. }
  11856.  
  11857. Field (MNVS, ByteAcc, NoLock, Preserve)
  11858. {
  11859. Offset (0xE00),
  11860. DDC2, 2048
  11861. }
  11862.  
  11863. OperationRegion (SMI0, SystemIO, 0xB2, 0x01)
  11864. Field (SMI0, ByteAcc, NoLock, Preserve)
  11865. {
  11866. APMC, 8
  11867. }
  11868.  
  11869. Field (MNVS, AnyAcc, NoLock, Preserve)
  11870. {
  11871. Offset (0xFC0),
  11872. CMD, 8,
  11873. ERR, 32,
  11874. PAR0, 32,
  11875. PAR1, 32,
  11876. PAR2, 32,
  11877. PAR3, 32
  11878. }
  11879.  
  11880. Mutex (MSMI, 0x07)
  11881. Method (SMI, 5, NotSerialized)
  11882. {
  11883. Acquire (MSMI, 0xFFFF)
  11884. CMD = Arg0
  11885. PAR0 = Arg1
  11886. PAR1 = Arg2
  11887. PAR2 = Arg3
  11888. PAR3 = Arg4
  11889. APMC = 0xF5
  11890. While ((ERR == 0x01))
  11891. {
  11892. Sleep (0x64)
  11893. APMC = 0xF5
  11894. }
  11895.  
  11896. Local0 = PAR0 /* \PAR0 */
  11897. Release (MSMI)
  11898. Return (Local0)
  11899. }
  11900.  
  11901. Method (RPCI, 1, NotSerialized)
  11902. {
  11903. Return (SMI (0x00, 0x00, Arg0, 0x00, 0x00))
  11904. }
  11905.  
  11906. Method (WPCI, 2, NotSerialized)
  11907. {
  11908. SMI (0x00, 0x01, Arg0, Arg1, 0x00)
  11909. }
  11910.  
  11911. Method (MPCI, 3, NotSerialized)
  11912. {
  11913. SMI (0x00, 0x02, Arg0, Arg1, Arg2)
  11914. }
  11915.  
  11916. Method (RBEC, 1, NotSerialized)
  11917. {
  11918. Return (SMI (0x00, 0x03, Arg0, 0x00, 0x00))
  11919. }
  11920.  
  11921. Method (WBEC, 2, NotSerialized)
  11922. {
  11923. SMI (0x00, 0x04, Arg0, Arg1, 0x00)
  11924. }
  11925.  
  11926. Method (MBEC, 3, NotSerialized)
  11927. {
  11928. SMI (0x00, 0x05, Arg0, Arg1, Arg2)
  11929. }
  11930.  
  11931. Method (RISA, 1, NotSerialized)
  11932. {
  11933. Return (SMI (0x00, 0x06, Arg0, 0x00, 0x00))
  11934. }
  11935.  
  11936. Method (WISA, 2, NotSerialized)
  11937. {
  11938. SMI (0x00, 0x07, Arg0, Arg1, 0x00)
  11939. }
  11940.  
  11941. Method (MISA, 3, NotSerialized)
  11942. {
  11943. SMI (0x00, 0x08, Arg0, Arg1, Arg2)
  11944. }
  11945.  
  11946. Method (VEXP, 0, NotSerialized)
  11947. {
  11948. SMI (0x01, 0x00, 0x00, 0x00, 0x00)
  11949. }
  11950.  
  11951. Method (VUPS, 1, NotSerialized)
  11952. {
  11953. SMI (0x01, 0x01, Arg0, 0x00, 0x00)
  11954. }
  11955.  
  11956. Method (VSDS, 2, NotSerialized)
  11957. {
  11958. SMI (0x01, 0x02, Arg0, Arg1, 0x00)
  11959. }
  11960.  
  11961. Method (VDDC, 0, NotSerialized)
  11962. {
  11963. SMI (0x01, 0x03, 0x00, 0x00, 0x00)
  11964. }
  11965.  
  11966. Method (VVPD, 1, NotSerialized)
  11967. {
  11968. SMI (0x01, 0x04, Arg0, 0x00, 0x00)
  11969. }
  11970.  
  11971. Method (VNRS, 1, NotSerialized)
  11972. {
  11973. SMI (0x01, 0x05, Arg0, 0x00, 0x00)
  11974. }
  11975.  
  11976. Method (GLPW, 0, NotSerialized)
  11977. {
  11978. Return (SMI (0x01, 0x06, 0x00, 0x00, 0x00))
  11979. }
  11980.  
  11981. Method (VSLD, 1, NotSerialized)
  11982. {
  11983. SMI (0x01, 0x07, Arg0, 0x00, 0x00)
  11984. }
  11985.  
  11986. Method (VEVT, 1, NotSerialized)
  11987. {
  11988. Return (SMI (0x01, 0x08, Arg0, 0x00, 0x00))
  11989. }
  11990.  
  11991. Method (UCMS, 1, NotSerialized)
  11992. {
  11993. Return (SMI (0x02, Arg0, 0x00, 0x00, 0x00))
  11994. }
  11995.  
  11996. Method (BHDP, 2, NotSerialized)
  11997. {
  11998. Return (SMI (0x03, 0x00, Arg0, Arg1, 0x00))
  11999. }
  12000.  
  12001. Method (DHDP, 1, NotSerialized)
  12002. {
  12003. Return (SMI (0x03, 0x01, Arg0, 0x00, 0x00))
  12004. }
  12005.  
  12006. Method (STEP, 1, NotSerialized)
  12007. {
  12008. SMI (0x04, Arg0, 0x00, 0x00, 0x00)
  12009. }
  12010.  
  12011. Method (TRAP, 0, NotSerialized)
  12012. {
  12013. SMI (0x05, 0x00, 0x00, 0x00, 0x00)
  12014. }
  12015.  
  12016. Method (CBRI, 0, NotSerialized)
  12017. {
  12018. SMI (0x05, 0x01, 0x00, 0x00, 0x00)
  12019. }
  12020.  
  12021. Method (BLTH, 1, NotSerialized)
  12022. {
  12023. Return (SMI (0x06, Arg0, 0x00, 0x00, 0x00))
  12024. }
  12025.  
  12026. Method (FISP, 0, NotSerialized)
  12027. {
  12028. SMI (0x07, 0x00, 0x00, 0x00, 0x00)
  12029. }
  12030.  
  12031. Method (DPIO, 2, NotSerialized)
  12032. {
  12033. If (!Arg0)
  12034. {
  12035. Return (0x00)
  12036. }
  12037.  
  12038. If ((Arg0 > 0xF0))
  12039. {
  12040. Return (0x00)
  12041. }
  12042.  
  12043. If ((Arg0 > 0xB4))
  12044. {
  12045. If (Arg1)
  12046. {
  12047. Return (0x02)
  12048. }
  12049. Else
  12050. {
  12051. Return (0x01)
  12052. }
  12053. }
  12054.  
  12055. If ((Arg0 > 0x78))
  12056. {
  12057. Return (0x03)
  12058. }
  12059.  
  12060. Return (0x04)
  12061. }
  12062.  
  12063. Method (DUDM, 2, NotSerialized)
  12064. {
  12065. If (!Arg1)
  12066. {
  12067. Return (0xFF)
  12068. }
  12069.  
  12070. If ((Arg0 > 0x5A))
  12071. {
  12072. Return (0x00)
  12073. }
  12074.  
  12075. If ((Arg0 > 0x3C))
  12076. {
  12077. Return (0x01)
  12078. }
  12079.  
  12080. If ((Arg0 > 0x2D))
  12081. {
  12082. Return (0x02)
  12083. }
  12084.  
  12085. If ((Arg0 > 0x1E))
  12086. {
  12087. Return (0x03)
  12088. }
  12089.  
  12090. If ((Arg0 > 0x14))
  12091. {
  12092. Return (0x04)
  12093. }
  12094.  
  12095. Return (0x05)
  12096. }
  12097.  
  12098. Method (DMDM, 2, NotSerialized)
  12099. {
  12100. If (Arg1)
  12101. {
  12102. Return (0x00)
  12103. }
  12104.  
  12105. If (!Arg0)
  12106. {
  12107. Return (0x00)
  12108. }
  12109.  
  12110. If ((Arg0 > 0x96))
  12111. {
  12112. Return (0x01)
  12113. }
  12114.  
  12115. If ((Arg0 > 0x78))
  12116. {
  12117. Return (0x02)
  12118. }
  12119.  
  12120. Return (0x03)
  12121. }
  12122.  
  12123. Method (UUDM, 2, NotSerialized)
  12124. {
  12125. If (!(Arg0 & 0x04))
  12126. {
  12127. Return (0x00)
  12128. }
  12129.  
  12130. If ((Arg1 & 0x20))
  12131. {
  12132. Return (0x14)
  12133. }
  12134.  
  12135. If ((Arg1 & 0x10))
  12136. {
  12137. Return (0x1E)
  12138. }
  12139.  
  12140. If ((Arg1 & 0x08))
  12141. {
  12142. Return (0x2D)
  12143. }
  12144.  
  12145. If ((Arg1 & 0x04))
  12146. {
  12147. Return (0x3C)
  12148. }
  12149.  
  12150. If ((Arg1 & 0x02))
  12151. {
  12152. Return (0x5A)
  12153. }
  12154.  
  12155. If ((Arg1 & 0x01))
  12156. {
  12157. Return (0x78)
  12158. }
  12159.  
  12160. Return (0x00)
  12161. }
  12162.  
  12163. Method (UMDM, 4, NotSerialized)
  12164. {
  12165. If (!(Arg0 & 0x02))
  12166. {
  12167. Return (0x00)
  12168. }
  12169.  
  12170. If ((Arg1 & 0x04))
  12171. {
  12172. Return (Arg3)
  12173. }
  12174.  
  12175. If ((Arg1 & 0x02))
  12176. {
  12177. If ((Arg3 <= 0x78))
  12178. {
  12179. Return (0xB4)
  12180. }
  12181. Else
  12182. {
  12183. Return (Arg3)
  12184. }
  12185. }
  12186.  
  12187. If ((Arg2 & 0x04))
  12188. {
  12189. If ((Arg3 <= 0xB4))
  12190. {
  12191. Return (0xF0)
  12192. }
  12193. Else
  12194. {
  12195. Return (Arg3)
  12196. }
  12197. }
  12198.  
  12199. Return (0x00)
  12200. }
  12201.  
  12202. Method (UPIO, 4, NotSerialized)
  12203. {
  12204. If (!(Arg0 & 0x02))
  12205. {
  12206. If ((Arg2 == 0x02))
  12207. {
  12208. Return (0xF0)
  12209. }
  12210. Else
  12211. {
  12212. Return (0x0384)
  12213. }
  12214. }
  12215.  
  12216. If ((Arg1 & 0x02))
  12217. {
  12218. Return (Arg3)
  12219. }
  12220.  
  12221. If ((Arg1 & 0x01))
  12222. {
  12223. If ((Arg3 <= 0x78))
  12224. {
  12225. Return (0xB4)
  12226. }
  12227. Else
  12228. {
  12229. Return (Arg3)
  12230. }
  12231. }
  12232.  
  12233. If ((Arg2 == 0x02))
  12234. {
  12235. Return (0xF0)
  12236. }
  12237. Else
  12238. {
  12239. Return (0x0384)
  12240. }
  12241. }
  12242.  
  12243. Method (FDMA, 2, NotSerialized)
  12244. {
  12245. If ((Arg1 != 0xFF))
  12246. {
  12247. Return ((Arg1 | 0x40))
  12248. }
  12249.  
  12250. If ((Arg0 >= 0x03))
  12251. {
  12252. Return (((Arg0 - 0x02) | 0x20))
  12253. }
  12254.  
  12255. If (Arg0)
  12256. {
  12257. Return (0x12)
  12258. }
  12259.  
  12260. Return (0x00)
  12261. }
  12262.  
  12263. Method (FPIO, 1, NotSerialized)
  12264. {
  12265. If ((Arg0 >= 0x03))
  12266. {
  12267. Return ((Arg0 | 0x08))
  12268. }
  12269.  
  12270. If ((Arg0 == 0x01))
  12271. {
  12272. Return (0x01)
  12273. }
  12274.  
  12275. Return (0x00)
  12276. }
  12277.  
  12278. Method (SCMP, 2, NotSerialized)
  12279. {
  12280. Local0 = SizeOf (Arg0)
  12281. If ((Local0 != SizeOf (Arg1)))
  12282. {
  12283. Return (One)
  12284. }
  12285.  
  12286. Local0++
  12287. Name (STR1, Buffer (Local0){})
  12288. Name (STR2, Buffer (Local0){})
  12289. STR1 = Arg0
  12290. STR2 = Arg1
  12291. Local1 = Zero
  12292. While ((Local1 < Local0))
  12293. {
  12294. Local2 = DerefOf (STR1 [Local1])
  12295. Local3 = DerefOf (STR2 [Local1])
  12296. If ((Local2 != Local3))
  12297. {
  12298. Return (One)
  12299. }
  12300.  
  12301. Local1++
  12302. }
  12303.  
  12304. Return (Zero)
  12305. }
  12306.  
  12307. Name (SPS, 0x00)
  12308. Name (OSIF, 0x00)
  12309. Name (W98F, 0x00)
  12310. Name (WNTF, 0x00)
  12311. Name (WMEF, 0x00)
  12312. Name (LNUX, 0x00)
  12313. Name (H8DR, 0x00)
  12314. Name (MEMX, 0x00)
  12315. Name (FNID, 0x00)
  12316. Name (RRBF, 0x00)
  12317. Scope (\)
  12318. {
  12319. Method (KOU2, 0, NotSerialized)
  12320. {
  12321. Stall (0x64)
  12322. }
  12323. }
  12324. }
Advertisement
Add Comment
Please, Sign In to add comment