Repository: RehabMan/HP-ProBook-4x30s-DSDT-Patch Branch: master Commit: 05a1e82bf575 Files: 183 Total size: 699.2 KB Directory structure: gitextract_wec_u5va/ ├── .gitignore ├── License.md ├── Patches.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── README.md ├── Resources_ProBook/ │ ├── README.txt │ ├── codec_dump_CX20724.txt │ ├── codec_dump_alc280_elitebook_g2_broadwell.txt │ └── codec_dump_alc280_folio_9480m.txt ├── _get_tools.sh ├── build/ │ └── readme.txt ├── build.sh ├── config/ │ └── readme.txt ├── config_parts/ │ ├── config_Broadwell_dp.plist │ ├── config_Broadwell_hdmi.plist │ ├── config_HD3000-4000_dp.plist │ ├── config_HD3000-4000_hdmi.plist │ ├── config_Haswell_dp.plist │ ├── config_Haswell_hdmi.plist │ ├── config_Haswell_no_hdmi_dp.plist │ ├── config_Kabylake_dp.plist │ ├── config_Kabylake_hdmi.plist │ ├── config_Skylake_dp.plist │ ├── config_Skylake_hdmi.plist │ ├── config_master.plist │ └── config_non_Intel_USB3.plist ├── download.sh ├── find_dependencies.sh ├── hotpatch/ │ ├── SSDT-1020G1b.dsl │ ├── SSDT-1030G1s.dsl │ ├── SSDT-1040G1h.dsl │ ├── SSDT-1040G3s.dsl │ ├── SSDT-1050G1k.dsl │ ├── SSDT-2x60.dsl │ ├── SSDT-2x70.dsl │ ├── SSDT-3x0G1.dsl │ ├── SSDT-4230.dsl │ ├── SSDT-450G1h.dsl │ ├── SSDT-4x0G0.dsl │ ├── SSDT-4x0G1h.dsl │ ├── SSDT-4x0G1i.dsl │ ├── SSDT-4x0G2b.dsl │ ├── SSDT-4x0G2h.dsl │ ├── SSDT-4x0G3s.dsl │ ├── SSDT-4x0G4k.dsl │ ├── SSDT-4x30.dsl │ ├── SSDT-4x40.dsl │ ├── SSDT-5x30.dsl │ ├── SSDT-6x0G1h.dsl │ ├── SSDT-6x0G2s.dsl │ ├── SSDT-6x60.dsl │ ├── SSDT-6x70.dsl │ ├── SSDT-8x0G1h.dsl │ ├── SSDT-8x0G1i.dsl │ ├── SSDT-8x0G2b.dsl │ ├── SSDT-8x0G2h.dsl │ ├── SSDT-8x0G3b.dsl │ ├── SSDT-8x0G3s.dsl │ ├── SSDT-8x0G4k.dsl │ ├── SSDT-8x60.dsl │ ├── SSDT-8x70.dsl │ ├── SSDT-9x70.dsl │ ├── SSDT-9x80.dsl │ ├── SSDT-ALS0.asl │ ├── SSDT-BATT-G2.asl │ ├── SSDT-BATT-G3.asl │ ├── SSDT-BATT-G4.asl │ ├── SSDT-BATT.asl │ ├── SSDT-EH01.asl │ ├── SSDT-EH02.asl │ ├── SSDT-FANORIG.dsl │ ├── SSDT-FANQ.dsl │ ├── SSDT-FANREAD.dsl │ ├── SSDT-HACK.asl │ ├── SSDT-IGPU.dsl │ ├── SSDT-KEY102.asl │ ├── SSDT-KEY87.asl │ ├── SSDT-PEG0_PEGP_RDSS.asl │ ├── SSDT-PEGP_DGFX_RDSS.asl │ ├── SSDT-PNLF.asl │ ├── SSDT-RMCF.asl │ ├── SSDT-RP01_PEGP_RDSS.asl │ ├── SSDT-RP01_PXSX_RDSS.asl │ ├── SSDT-RP05_DGFX_RDSS.asl │ ├── SSDT-RP05_PEGP_RDSS.asl │ ├── SSDT-RP05_PXSX_RDSS.asl │ ├── SSDT-USB-1020-G1.asl │ ├── SSDT-USB-1030-G1.asl │ ├── SSDT-USB-1040-G3.asl │ ├── SSDT-USB-1050-G1.asl │ ├── SSDT-USB-2x70.asl │ ├── SSDT-USB-4x0-G0.asl │ ├── SSDT-USB-4x0-G1.asl │ ├── SSDT-USB-4x0-G2.asl │ ├── SSDT-USB-4x0-G3.asl │ ├── SSDT-USB-4x0-G4.asl │ ├── SSDT-USB-4x30s.asl │ ├── SSDT-USB-4x40s.asl │ ├── SSDT-USB-640-G2.asl │ ├── SSDT-USB-6x0-G1.asl │ ├── SSDT-USB-6x60.asl │ ├── SSDT-USB-6x70.asl │ ├── SSDT-USB-8x0-G1.asl │ ├── SSDT-USB-8x0-G2.asl │ ├── SSDT-USB-8x0-G3.asl │ ├── SSDT-USB-8x0-G4.asl │ ├── SSDT-USB-8x60.asl │ ├── SSDT-USB-8x70.asl │ ├── SSDT-USB-9x70.asl │ ├── SSDT-USB-9x80.asl │ ├── SSDT-USB-Unknown.asl │ ├── SSDT-USB-ZBook-G1.asl │ ├── SSDT-USB-ZBook-G2.asl │ ├── SSDT-USB-ZBook-G3.asl │ ├── SSDT-USBX.asl │ ├── SSDT-USWE.asl │ ├── SSDT-XHC.asl │ ├── SSDT-zbG1h.dsl │ ├── SSDT-zbG2b.dsl │ ├── SSDT-zbG2h.dsl │ ├── SSDT-zbG2hA.dsl │ ├── SSDT-zbG3s.dsl │ └── include/ │ ├── ALC280_HDAU.asl │ ├── ALC280_HDEF.asl │ ├── ALC282_HDAU.asl │ ├── ALC282_HDEF.asl │ ├── ALC286_HDAU.asl │ ├── ALC286_HDEF.asl │ ├── CX20724_HDEF.asl │ ├── CX8200_HDEF.asl │ ├── IDT_7605_HDEF.asl │ ├── IDT_7695_HDEF.asl │ ├── IDT_76d1_HDEF.asl │ ├── IDT_76d9_HDEF.asl │ ├── IDT_76e0_HDAU.asl │ ├── IDT_76e0_HDEF.asl │ ├── disable_EH01-EH02.asl │ ├── disable_EH01.asl │ ├── disable_HECI.asl │ ├── enable_mouse.asl │ ├── key86_PS2K.asl │ ├── key86_data.asl │ ├── standard_PS2K.asl │ └── standard_PS2K_data.asl ├── install_acpi.sh ├── install_acpi_include.sh ├── install_downloads.sh ├── install_tools.sh ├── kexts/ │ ├── AppleALC_Info.plist │ ├── HSSDBlockStorage.kext/ │ │ └── Contents/ │ │ ├── Info.plist │ │ ├── MacOS/ │ │ │ └── HSSDBlockStorage │ │ └── Resources/ │ │ └── English.lproj/ │ │ └── InfoPlist.strings │ ├── JMB38X.kext/ │ │ └── Contents/ │ │ ├── Info.plist │ │ ├── MacOS/ │ │ │ └── JMB38X │ │ └── Resources/ │ │ ├── English.lproj/ │ │ │ └── InfoPlist.strings │ │ ├── jmcr_MMC.icns │ │ ├── jmcr_SD.icns │ │ └── jmcr_sdmmc.icns │ ├── JMicronATA.kext/ │ │ └── Contents/ │ │ ├── Info.plist │ │ ├── MacOS/ │ │ │ └── JMicronATA │ │ ├── Resources/ │ │ │ └── English.lproj/ │ │ │ └── InfoPlist.strings │ │ └── version.plist │ └── README.txt ├── make_acpi.sh ├── make_config.sh ├── makefile ├── makefile.d ├── merge_plist.sh ├── native/ │ ├── dsdt4530s/ │ │ ├── dsdt_f20_hd3k.aml │ │ ├── dsdt_f23_hd3k.aml │ │ ├── dsdt_f27_hd3k.aml │ │ ├── dsdt_f28_hd3k.aml │ │ ├── dsdt_f29_hd3k.aml │ │ ├── dsdt_f30_hd3k.aml │ │ ├── dsdt_f40_hd3k.aml │ │ ├── dsdt_f41_hd3k.aml │ │ └── dsdt_f60_hd3k.aml │ └── dsdt4540s/ │ ├── dsdt_f40_hd4k.aml │ ├── dsdt_f43_hd4k.aml │ ├── dsdt_f43_hd4k_8gb.aml │ ├── dsdt_f50_hd4k_8gb.aml │ └── dsdt_f60_hd4k_8gb.aml └── pre-patch_hda.sh ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ .DS_Store DerivedData/ Patches.xcodeproj/project.xcworkspace/xcuserdata/ Patches.xcodeproj/project.xcworkspace/xcshareddata/ Patches.xcodeproj/xcuserdata/ build/* !build/readme.txt _downloads/ _tools/ config/config_*.plist ================================================ FILE: License.md ================================================ ## The GNU General Public License (GPL-2.0) ## Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. ### Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. ### TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0\. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1\. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2\. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3\. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4\. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5\. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6\. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7\. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8\. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9\. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10\. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. ### NO WARRANTY 11\. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12\. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS ### How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. One line to give the program's name and a brief idea of what it does. 
Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type \`show w'. This is free software, and you are welcome to redistribute it under certain conditions; type \`show c' for details. The hypothetical commands \`show w' and \`show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than \`show w' and \`show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. signature of Ty Coon, 1 April 1989
Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. ================================================ FILE: Patches.xcodeproj/project.pbxproj ================================================ // !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 46; objects = { /* Begin PBXFileReference section */ 8404DCC01FEFF6D20073E620 /* SSDT-450G1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-450G1h.dsl"; path = "hotpatch/SSDT-450G1h.dsl"; sourceTree = ""; }; 841F11E31E9FA7B000BE33AF /* SSDT-RP05_PEGP_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RP05_PEGP_RDSS.asl"; path = "hotpatch/SSDT-RP05_PEGP_RDSS.asl"; sourceTree = ""; }; 84596D2A1E8CBD980005C4DB /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = kexts/AppleBacklightInjector.kext/Contents/Info.plist; sourceTree = ""; }; 845E536C1D0D34880069A1F9 /* SSDT-USB-1020-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-1020-G1.asl"; path = "hotpatch/SSDT-USB-1020-G1.asl"; sourceTree = ""; }; 8497866A1E9DBFBB0020BEF8 /* SSDT-2x60.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-2x60.dsl"; path = "hotpatch/SSDT-2x60.dsl"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; 8497866B1E9DC69F0020BEF8 /* key86_PS2K.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = key86_PS2K.asl; path = hotpatch/include/key86_PS2K.asl; sourceTree = ""; }; 84AB159A1E9AF5AD005206A1 /* SSDT-RP01_PXSX_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RP01_PXSX_RDSS.asl"; path = "hotpatch/SSDT-RP01_PXSX_RDSS.asl"; sourceTree = ""; }; 84B9D52516FFE684002CD441 /* License.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = License.md; sourceTree = ""; }; 84B9D52616FFE684002CD441 /* makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; lineEnding = 0; path = makefile; sourceTree = ""; usesTabs = 1; }; 84D207AD1E64F63F0083EC17 /* SSDT-RP01_PEGP_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RP01_PEGP_RDSS.asl"; path = "hotpatch/SSDT-RP01_PEGP_RDSS.asl"; sourceTree = ""; }; 84D207AE1E64F63F0083EC17 /* SSDT-RP05_DGFX_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RP05_DGFX_RDSS.asl"; path = "hotpatch/SSDT-RP05_DGFX_RDSS.asl"; sourceTree = ""; }; 84F681FC1E74CDD30097D85D /* SSDT-BATT-G4.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-BATT-G4.asl"; path = "hotpatch/SSDT-BATT-G4.asl"; sourceTree = ""; }; 84F681FD1E74D52C0097D85D /* config_Kabylake_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Kabylake_dp.plist; path = config_parts/config_Kabylake_dp.plist; sourceTree = ""; }; 84F681FF1E74D6D80097D85D /* SSDT-4x0G4k.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G4k.dsl"; path = "hotpatch/SSDT-4x0G4k.dsl"; sourceTree = ""; }; 84F682001E74DC9F0097D85D /* CX8200_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CX8200_HDEF.asl; path = hotpatch/include/CX8200_HDEF.asl; sourceTree = ""; }; ED023EB31CFDC75C00C5F3A2 /* SSDT-6x0G1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-6x0G1h.dsl"; path = "hotpatch/SSDT-6x0G1h.dsl"; sourceTree = ""; }; ED17156E1D070F3C00219AC6 /* SSDT-USB-6x0-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-6x0-G1.asl"; path = "hotpatch/SSDT-USB-6x0-G1.asl"; sourceTree = ""; }; ED1837421C0A4B1200A5A3DA /* merge_plist.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = merge_plist.sh; sourceTree = ""; }; ED18374E1C0A4B1200A5A3DA /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.txt; path = Resources_ProBook/README.txt; sourceTree = ""; }; ED2500551CF67CE6006A5FB7 /* SSDT-XHC.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-XHC.asl"; path = "hotpatch/SSDT-XHC.asl"; sourceTree = ""; }; ED2500561CF67CE6006A5FB7 /* SSDT-EH01.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-EH01.asl"; path = "hotpatch/SSDT-EH01.asl"; sourceTree = ""; }; ED2500571CF67CE6006A5FB7 /* SSDT-EH02.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-EH02.asl"; path = "hotpatch/SSDT-EH02.asl"; sourceTree = ""; }; ED2C0E751FE2D81000EFE2D5 /* SSDT-USB-Unknown.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-Unknown.asl"; path = "hotpatch/SSDT-USB-Unknown.asl"; sourceTree = ""; }; ED334FFB1F8D3ED100202D59 /* SSDT-PEG0_PEGP_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-PEG0_PEGP_RDSS.asl"; path = "hotpatch/SSDT-PEG0_PEGP_RDSS.asl"; sourceTree = ""; }; ED334FFC1F8D474E00202D59 /* SSDT-PEGP_DGFX_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-PEGP_DGFX_RDSS.asl"; path = "hotpatch/SSDT-PEGP_DGFX_RDSS.asl"; sourceTree = ""; }; ED341D5F1FA370BC00455E78 /* SSDT-4230.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4230.dsl"; path = "hotpatch/SSDT-4230.dsl"; sourceTree = ""; }; ED407DA51CF4FC8B00A03010 /* config_Skylake_hdmi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Skylake_hdmi.plist; path = config_parts/config_Skylake_hdmi.plist; sourceTree = ""; }; ED407DA61CF4FC8B00A03010 /* config_Broadwell_hdmi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Broadwell_hdmi.plist; path = config_parts/config_Broadwell_hdmi.plist; sourceTree = ""; }; ED407DA71CF4FC8B00A03010 /* config_Haswell_hdmi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Haswell_hdmi.plist; path = config_parts/config_Haswell_hdmi.plist; sourceTree = ""; }; ED458FFA214EB9CF003071B1 /* config_HD3000-4000_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "config_HD3000-4000_dp.plist"; path = "config_parts/config_HD3000-4000_dp.plist"; sourceTree = ""; }; ED458FFB214EB9D7003071B1 /* config_HD3000-4000_hdmi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "config_HD3000-4000_hdmi.plist"; path = "config_parts/config_HD3000-4000_hdmi.plist"; sourceTree = ""; }; ED45A34D1FD2E9FA001FA163 /* SSDT-1030G1s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-1030G1s.dsl"; path = "hotpatch/SSDT-1030G1s.dsl"; sourceTree = ""; }; ED464EDD1F89103C00592EC5 /* SSDT-USB-2x70.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-2x70.asl"; path = "hotpatch/SSDT-USB-2x70.asl"; sourceTree = ""; }; ED4BAC3C2167C68F007D7014 /* SSDT-8x0G3b.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G3b.dsl"; path = "hotpatch/SSDT-8x0G3b.dsl"; sourceTree = ""; }; ED4FCB5A20EE7F5700528938 /* SSDT-USB-1050-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-1050-G1.asl"; path = "hotpatch/SSDT-USB-1050-G1.asl"; sourceTree = ""; }; ED507CCE1CDCDAF400E14F67 /* SSDT-USB-9x70.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-9x70.asl"; path = "hotpatch/SSDT-USB-9x70.asl"; sourceTree = ""; }; ED5777E92175979D0093A621 /* SSDT-PNLF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-PNLF.asl"; path = "hotpatch/SSDT-PNLF.asl"; sourceTree = ""; }; ED5F0FDA1CE218160097FADC /* SSDT-zbG1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-zbG1h.dsl"; path = "hotpatch/SSDT-zbG1h.dsl"; sourceTree = ""; }; ED607C7620ED491300846672 /* SSDT-1050G1k.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-1050G1k.dsl"; path = "hotpatch/SSDT-1050G1k.dsl"; sourceTree = ""; }; ED6354D21D38643B00C77357 /* key86_data.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = key86_data.asl; path = hotpatch/include/key86_data.asl; sourceTree = ""; }; ED6354D31D38643B00C77357 /* standard_PS2K_data.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = standard_PS2K_data.asl; path = hotpatch/include/standard_PS2K_data.asl; sourceTree = ""; }; ED6354D41D38643B00C77357 /* standard_PS2K.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = standard_PS2K.asl; path = hotpatch/include/standard_PS2K.asl; sourceTree = ""; }; ED63DC271FDED5310001E2F4 /* enable_mouse.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = enable_mouse.asl; path = hotpatch/include/enable_mouse.asl; sourceTree = ""; }; ED6E36FA1D0AFCE900610C26 /* SSDT-1020G1b.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-1020G1b.dsl"; path = "hotpatch/SSDT-1020G1b.dsl"; sourceTree = ""; }; ED6E36FB1D0AFD8700610C26 /* ALC286_HDAU.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC286_HDAU.asl; path = hotpatch/include/ALC286_HDAU.asl; sourceTree = ""; }; ED6E36FC1D0AFD8700610C26 /* ALC286_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC286_HDEF.asl; path = hotpatch/include/ALC286_HDEF.asl; sourceTree = ""; }; ED71FE551D53978500EEF9F9 /* SSDT-9x80.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-9x80.dsl"; path = "hotpatch/SSDT-9x80.dsl"; sourceTree = ""; }; ED71FE561D53981100EEF9F9 /* SSDT-USB-9x80.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-9x80.asl"; path = "hotpatch/SSDT-USB-9x80.asl"; sourceTree = ""; }; ED7697A81CE1106D00DA0993 /* SSDT-USB-ZBook-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-ZBook-G1.asl"; path = "hotpatch/SSDT-USB-ZBook-G1.asl"; sourceTree = ""; }; ED815B7D1F9B7CDF005EBCA9 /* SSDT-zbG2hA.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-zbG2hA.dsl"; path = "hotpatch/SSDT-zbG2hA.dsl"; sourceTree = ""; }; ED815B7E1F9B7E68005EBCA9 /* disable_EH01.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = disable_EH01.asl; path = hotpatch/include/disable_EH01.asl; sourceTree = ""; }; ED815B7F1F9B7E68005EBCA9 /* disable_EH01-EH02.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "disable_EH01-EH02.asl"; path = "hotpatch/include/disable_EH01-EH02.asl"; sourceTree = ""; }; ED824E191CCFC43500EFDDF2 /* install_acpi.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = install_acpi.sh; sourceTree = ""; }; ED824E1A1CCFC43500EFDDF2 /* install_acpi_include.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = install_acpi_include.sh; sourceTree = ""; }; ED824E1B1CCFC43500EFDDF2 /* make_acpi.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = make_acpi.sh; sourceTree = ""; }; ED824E1C1CCFC43500EFDDF2 /* make_config.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = make_config.sh; sourceTree = ""; }; ED824E1D1CCFC43500EFDDF2 /* build.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = build.sh; sourceTree = ""; }; ED841A021ED637AB00A0B6BB /* SSDT-RMCF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RMCF.asl"; path = "hotpatch/SSDT-RMCF.asl"; sourceTree = ""; }; ED89CD261F393FDC00D752F9 /* config_Kabylake_hdmi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Kabylake_hdmi.plist; path = config_parts/config_Kabylake_hdmi.plist; sourceTree = ""; }; ED8D01121E18596D009A8C63 /* SSDT-USB-ZBook-G3.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-ZBook-G3.asl"; path = "hotpatch/SSDT-USB-ZBook-G3.asl"; sourceTree = ""; }; ED8D01131E185D62009A8C63 /* SSDT-zbG3s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-zbG3s.dsl"; path = "hotpatch/SSDT-zbG3s.dsl"; sourceTree = ""; }; ED8D28F4215A54C900F2E66E /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = kexts/LiluFriendLite.kext/Contents/Info.plist; sourceTree = ""; }; ED8D28F5215A54E600F2E66E /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = kexts/LiluFriend.kext/Contents/Info.plist; sourceTree = ""; }; ED8D4ED41E9C39C700F87978 /* SSDT-IGPU.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-IGPU.dsl"; path = "hotpatch/SSDT-IGPU.dsl"; sourceTree = ""; }; ED92D2AA1D19A4A8005C6F78 /* SSDT-USB-8x0-G3.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x0-G3.asl"; path = "hotpatch/SSDT-USB-8x0-G3.asl"; sourceTree = ""; }; ED97346F1C0A5F260063BCF9 /* download.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = download.sh; sourceTree = ""; }; ED9734701C0A5F370063BCF9 /* install_downloads.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = install_downloads.sh; sourceTree = ""; }; ED9755F321588F6200103E5D /* install_tools.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = install_tools.sh; sourceTree = ""; }; ED97E9121CC75350006C757A /* ALC282_HDAU.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC282_HDAU.asl; path = hotpatch/include/ALC282_HDAU.asl; sourceTree = ""; }; ED97E9131CC75350006C757A /* ALC282_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC282_HDEF.asl; path = hotpatch/include/ALC282_HDEF.asl; sourceTree = ""; }; ED97E9141CC75350006C757A /* ALC280_HDAU.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC280_HDAU.asl; path = hotpatch/include/ALC280_HDAU.asl; sourceTree = ""; }; ED97E9151CC75350006C757A /* ALC280_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC280_HDEF.asl; path = hotpatch/include/ALC280_HDEF.asl; sourceTree = ""; }; ED97E9161CC75350006C757A /* CX20724_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CX20724_HDEF.asl; path = hotpatch/include/CX20724_HDEF.asl; sourceTree = ""; }; ED97E9171CC75350006C757A /* IDT_76d1_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_76d1_HDEF.asl; path = hotpatch/include/IDT_76d1_HDEF.asl; sourceTree = ""; }; ED97E9181CC75350006C757A /* IDT_76d9_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_76d9_HDEF.asl; path = hotpatch/include/IDT_76d9_HDEF.asl; sourceTree = ""; }; ED97E9191CC75350006C757A /* IDT_76e0_HDAU.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_76e0_HDAU.asl; path = hotpatch/include/IDT_76e0_HDAU.asl; sourceTree = ""; }; ED97E91A1CC75350006C757A /* IDT_76e0_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_76e0_HDEF.asl; path = hotpatch/include/IDT_76e0_HDEF.asl; sourceTree = ""; }; ED97E91B1CC75350006C757A /* IDT_7605_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_7605_HDEF.asl; path = hotpatch/include/IDT_7605_HDEF.asl; sourceTree = ""; }; ED97E91C1CC75350006C757A /* IDT_7695_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_7695_HDEF.asl; path = hotpatch/include/IDT_7695_HDEF.asl; sourceTree = ""; }; ED97E91D1CC75350006C757A /* disable_HECI.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = disable_HECI.asl; path = hotpatch/include/disable_HECI.asl; sourceTree = ""; }; ED97E9201CC755BE006C757A /* config_master.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_master.plist; path = config_parts/config_master.plist; sourceTree = ""; }; ED97E9211CC755BE006C757A /* config_Broadwell_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Broadwell_dp.plist; path = config_parts/config_Broadwell_dp.plist; sourceTree = ""; }; ED97E9221CC755BE006C757A /* config_Haswell_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Haswell_dp.plist; path = config_parts/config_Haswell_dp.plist; sourceTree = ""; }; ED97E9251CC755BE006C757A /* config_Skylake_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Skylake_dp.plist; path = config_parts/config_Skylake_dp.plist; sourceTree = ""; }; ED97E92E1CC755BE006C757A /* config_non_Intel_USB3.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_non_Intel_USB3.plist; path = config_parts/config_non_Intel_USB3.plist; sourceTree = ""; }; ED97E92F1CC757D7006C757A /* SSDT-2x70.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-2x70.dsl"; path = "hotpatch/SSDT-2x70.dsl"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; ED97E9301CC757D7006C757A /* SSDT-3x0G1.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-3x0G1.dsl"; path = "hotpatch/SSDT-3x0G1.dsl"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; ED97E9311CC757D7006C757A /* SSDT-4x0G0.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-4x0G0.dsl"; path = "hotpatch/SSDT-4x0G0.dsl"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; ED97E9321CC757D7006C757A /* SSDT-4x0G1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G1h.dsl"; path = "hotpatch/SSDT-4x0G1h.dsl"; sourceTree = ""; }; ED97E9331CC757D7006C757A /* SSDT-4x0G1i.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G1i.dsl"; path = "hotpatch/SSDT-4x0G1i.dsl"; sourceTree = ""; }; ED97E9341CC757D7006C757A /* SSDT-4x0G2b.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G2b.dsl"; path = "hotpatch/SSDT-4x0G2b.dsl"; sourceTree = ""; }; ED97E9351CC757D7006C757A /* SSDT-4x0G2h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G2h.dsl"; path = "hotpatch/SSDT-4x0G2h.dsl"; sourceTree = ""; }; ED97E9361CC757D7006C757A /* SSDT-4x0G3s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G3s.dsl"; path = "hotpatch/SSDT-4x0G3s.dsl"; sourceTree = ""; }; ED97E9371CC757D7006C757A /* SSDT-4x30.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x30.dsl"; path = "hotpatch/SSDT-4x30.dsl"; sourceTree = ""; }; ED97E9381CC757D7006C757A /* SSDT-4x40.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x40.dsl"; path = "hotpatch/SSDT-4x40.dsl"; sourceTree = ""; }; ED97E9391CC757D7006C757A /* SSDT-6x60.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-6x60.dsl"; path = "hotpatch/SSDT-6x60.dsl"; sourceTree = ""; }; ED97E93A1CC757D7006C757A /* SSDT-6x70.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-6x70.dsl"; path = "hotpatch/SSDT-6x70.dsl"; sourceTree = ""; }; ED97E93B1CC757D7006C757A /* SSDT-8x0G1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G1h.dsl"; path = "hotpatch/SSDT-8x0G1h.dsl"; sourceTree = ""; }; ED97E93C1CC757D7006C757A /* SSDT-8x0G1i.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G1i.dsl"; path = "hotpatch/SSDT-8x0G1i.dsl"; sourceTree = ""; }; ED97E93D1CC757D7006C757A /* SSDT-8x0G2b.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G2b.dsl"; path = "hotpatch/SSDT-8x0G2b.dsl"; sourceTree = ""; }; ED97E93E1CC757D7006C757A /* SSDT-8x0G2h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G2h.dsl"; path = "hotpatch/SSDT-8x0G2h.dsl"; sourceTree = ""; }; ED97E93F1CC757D7006C757A /* SSDT-8x60.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x60.dsl"; path = "hotpatch/SSDT-8x60.dsl"; sourceTree = ""; }; ED97E9401CC757D7006C757A /* SSDT-8x70.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x70.dsl"; path = "hotpatch/SSDT-8x70.dsl"; sourceTree = ""; }; ED97E9411CC757D7006C757A /* SSDT-9x70.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-9x70.dsl"; path = "hotpatch/SSDT-9x70.dsl"; sourceTree = ""; }; ED97E9421CC757D7006C757A /* SSDT-1040G1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-1040G1h.dsl"; path = "hotpatch/SSDT-1040G1h.dsl"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; ED97E9431CC757D7006C757A /* SSDT-zbG2h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-zbG2h.dsl"; path = "hotpatch/SSDT-zbG2h.dsl"; sourceTree = ""; }; ED97E9441CC757D7006C757A /* SSDT-HACK.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-HACK.asl"; path = "hotpatch/SSDT-HACK.asl"; sourceTree = ""; }; ED97E9451CC757D7006C757A /* SSDT-USB-4x0-G2.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x0-G2.asl"; path = "hotpatch/SSDT-USB-4x0-G2.asl"; sourceTree = ""; }; ED97E9461CC757D7006C757A /* SSDT-USB-8x0-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x0-G1.asl"; path = "hotpatch/SSDT-USB-8x0-G1.asl"; sourceTree = ""; }; ED97E9471CC757D7006C757A /* SSDT-USB-8x0-G2.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x0-G2.asl"; path = "hotpatch/SSDT-USB-8x0-G2.asl"; sourceTree = ""; }; ED97E94A1CC757D7006C757A /* SSDT-USB-4x0-G3.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x0-G3.asl"; path = "hotpatch/SSDT-USB-4x0-G3.asl"; sourceTree = ""; }; ED97E94C1CC757D7006C757A /* SSDT-USB-6x60.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-6x60.asl"; path = "hotpatch/SSDT-USB-6x60.asl"; sourceTree = ""; }; ED97E94D1CC757D7006C757A /* SSDT-USB-8x60.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x60.asl"; path = "hotpatch/SSDT-USB-8x60.asl"; sourceTree = ""; }; ED97E94E1CC757D7006C757A /* SSDT-BATT-G3.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-BATT-G3.asl"; path = "hotpatch/SSDT-BATT-G3.asl"; sourceTree = ""; }; ED97E94F1CC757D7006C757A /* SSDT-USB-6x70.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-6x70.asl"; path = "hotpatch/SSDT-USB-6x70.asl"; sourceTree = ""; }; ED97E9501CC757D7006C757A /* SSDT-USB-4x40s.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x40s.asl"; path = "hotpatch/SSDT-USB-4x40s.asl"; sourceTree = ""; }; ED97E9511CC757D7006C757A /* SSDT-FANQ.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-FANQ.dsl"; path = "hotpatch/SSDT-FANQ.dsl"; sourceTree = ""; }; ED97E9521CC757D7006C757A /* SSDT-BATT.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-BATT.asl"; path = "hotpatch/SSDT-BATT.asl"; sourceTree = ""; }; ED97E9531CC757D7006C757A /* SSDT-BATT-G2.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-BATT-G2.asl"; path = "hotpatch/SSDT-BATT-G2.asl"; sourceTree = ""; }; ED97E9541CC757D7006C757A /* SSDT-USB-4x30s.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x30s.asl"; path = "hotpatch/SSDT-USB-4x30s.asl"; sourceTree = ""; }; ED97E9551CC757D7006C757A /* SSDT-FANORIG.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-FANORIG.dsl"; path = "hotpatch/SSDT-FANORIG.dsl"; sourceTree = ""; }; ED97E9561CC757D7006C757A /* SSDT-FANREAD.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-FANREAD.dsl"; path = "hotpatch/SSDT-FANREAD.dsl"; sourceTree = ""; }; ED97E9571CC757D7006C757A /* SSDT-KEY87.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-KEY87.asl"; path = "hotpatch/SSDT-KEY87.asl"; sourceTree = ""; }; ED97E9581CC757D7006C757A /* SSDT-KEY102.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-KEY102.asl"; path = "hotpatch/SSDT-KEY102.asl"; sourceTree = ""; }; ED9CD3A61F376730004C5906 /* SSDT-USB-4x0-G0.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x0-G0.asl"; path = "hotpatch/SSDT-USB-4x0-G0.asl"; sourceTree = ""; }; ED9E98FB1CC905FA0032E2A3 /* SSDT-zbG2b.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-zbG2b.dsl"; path = "hotpatch/SSDT-zbG2b.dsl"; sourceTree = ""; }; EDA152011CC82A4B0040A5C0 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; EDA70AD21CEFEE6B009D2AA7 /* SSDT-5x30.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-5x30.dsl"; path = "hotpatch/SSDT-5x30.dsl"; sourceTree = ""; }; EDA9D5501D2D48C600DA4204 /* SSDT-6x0G2s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-6x0G2s.dsl"; path = "hotpatch/SSDT-6x0G2s.dsl"; sourceTree = ""; }; EDAB27061D3953E800FD5D06 /* SSDT-USB-640-G2.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-640-G2.asl"; path = "hotpatch/SSDT-USB-640-G2.asl"; sourceTree = ""; }; EDB4C8A91F69720900DC39F3 /* SSDT-8x0G4k.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G4k.dsl"; path = "hotpatch/SSDT-8x0G4k.dsl"; sourceTree = ""; }; EDB4C8AB1F6972A500DC39F3 /* SSDT-USB-8x0-G4.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x0-G4.asl"; path = "hotpatch/SSDT-USB-8x0-G4.asl"; sourceTree = ""; }; EDB4C8AC1F69738900DC39F3 /* SSDT-RP05_PXSX_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RP05_PXSX_RDSS.asl"; path = "hotpatch/SSDT-RP05_PXSX_RDSS.asl"; sourceTree = ""; }; EDB7D5AE1FE014E500D6DF39 /* config_Haswell_no_hdmi_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Haswell_no_hdmi_dp.plist; path = config_parts/config_Haswell_no_hdmi_dp.plist; sourceTree = ""; }; EDB9A1031ECCE6FE002297BB /* SSDT-USBX.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USBX.asl"; path = "hotpatch/SSDT-USBX.asl"; sourceTree = ""; }; EDBB1BE71E993AAA00F49BDE /* SSDT-USB-4x0-G4.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x0-G4.asl"; path = "hotpatch/SSDT-USB-4x0-G4.asl"; sourceTree = ""; }; EDBB3F8D1FDAD6AC00CF45FC /* SSDT-USB-1030-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-1030-G1.asl"; path = "hotpatch/SSDT-USB-1030-G1.asl"; sourceTree = ""; }; EDD906B81F8DC3700044EC08 /* makefile.d */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.dtrace; path = makefile.d; sourceTree = ""; }; EDD906B91F8DC3BE0044EC08 /* find_dependencies.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = find_dependencies.sh; sourceTree = ""; }; EDDC92011FD44C040071D2C2 /* SSDT-ALS0.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-ALS0.asl"; path = "hotpatch/SSDT-ALS0.asl"; sourceTree = ""; }; EDE939211D1AF9F0009B5E36 /* SSDT-USB-8x70.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x70.asl"; path = "hotpatch/SSDT-USB-8x70.asl"; sourceTree = ""; }; EDEED57B1D412694005A5AC2 /* SSDT-USB-4x0-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x0-G1.asl"; path = "hotpatch/SSDT-USB-4x0-G1.asl"; sourceTree = ""; }; EDF34038214F173900F427D4 /* SSDT-USWE.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USWE.asl"; path = "hotpatch/SSDT-USWE.asl"; sourceTree = ""; }; EDF5303F1DB5766700CAE028 /* SSDT-USB-1040-G3.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-1040-G3.asl"; path = "hotpatch/SSDT-USB-1040-G3.asl"; sourceTree = ""; }; EDF530401DB578C000CAE028 /* SSDT-1040G3s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-1040G3s.dsl"; path = "hotpatch/SSDT-1040G3s.dsl"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; EDFBFBC91E1555C000200E68 /* SSDT-USB-ZBook-G2.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-ZBook-G2.asl"; path = "hotpatch/SSDT-USB-ZBook-G2.asl"; sourceTree = ""; }; EDFC50DC1D199FBA0053A9FC /* SSDT-8x0G3s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G3s.dsl"; path = "hotpatch/SSDT-8x0G3s.dsl"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXGroup section */ 84596D291E8CBD780005C4DB /* AppleBacklightInjector.kext */ = { isa = PBXGroup; children = ( 84596D2A1E8CBD980005C4DB /* Info.plist */, ); name = AppleBacklightInjector.kext; sourceTree = ""; }; 847F5ED91B508AFC00825CE8 /* kexts */ = { isa = PBXGroup; children = ( ED8D28F3215A53F000F2E66E /* LiluFriend.kext */, ED8D28F2215A53E400F2E66E /* LiluFriendLite.kext */, 84596D291E8CBD780005C4DB /* AppleBacklightInjector.kext */, ); name = kexts; sourceTree = ""; }; 84B9D50E16FFE58F002CD441 = { isa = PBXGroup; children = ( EDA152011CC82A4B0040A5C0 /* README.md */, 84B9D52516FFE684002CD441 /* License.md */, ED97346F1C0A5F260063BCF9 /* download.sh */, ED9755F321588F6200103E5D /* install_tools.sh */, ED9734701C0A5F370063BCF9 /* install_downloads.sh */, 84B9D52616FFE684002CD441 /* makefile */, EDD906B81F8DC3700044EC08 /* makefile.d */, EDD906B91F8DC3BE0044EC08 /* find_dependencies.sh */, ED824E1D1CCFC43500EFDDF2 /* build.sh */, ED824E191CCFC43500EFDDF2 /* install_acpi.sh */, ED824E1E1CCFC43F00EFDDF2 /* generated scripts */, ED1837421C0A4B1200A5A3DA /* merge_plist.sh */, ED18374F1C0A4B5D00A5A3DA /* audio */, EDB940BA1C04D44500480024 /* hotpatch */, 847F5ED91B508AFC00825CE8 /* kexts */, ); sourceTree = ""; }; ED18374F1C0A4B5D00A5A3DA /* audio */ = { isa = PBXGroup; children = ( ED18374E1C0A4B1200A5A3DA /* README.txt */, ); name = audio; sourceTree = ""; }; ED824E1E1CCFC43F00EFDDF2 /* generated scripts */ = { isa = PBXGroup; children = ( ED824E1A1CCFC43500EFDDF2 /* install_acpi_include.sh */, ED824E1B1CCFC43500EFDDF2 /* make_acpi.sh */, ED824E1C1CCFC43500EFDDF2 /* make_config.sh */, ); name = "generated scripts"; sourceTree = ""; }; ED8D28F2215A53E400F2E66E /* LiluFriendLite.kext */ = { isa = PBXGroup; children = ( ED8D28F4215A54C900F2E66E /* Info.plist */, ); name = LiluFriendLite.kext; sourceTree = ""; }; ED8D28F3215A53F000F2E66E /* LiluFriend.kext */ = { isa = PBXGroup; children = ( ED8D28F5215A54E600F2E66E /* Info.plist */, ); name = LiluFriend.kext; sourceTree = ""; }; ED923A291CC9406900BD18E2 /* models */ = { isa = PBXGroup; children = ( ED97E9371CC757D7006C757A /* SSDT-4x30.dsl */, ED341D5F1FA370BC00455E78 /* SSDT-4230.dsl */, ED97E9381CC757D7006C757A /* SSDT-4x40.dsl */, EDA70AD21CEFEE6B009D2AA7 /* SSDT-5x30.dsl */, 8497866A1E9DBFBB0020BEF8 /* SSDT-2x60.dsl */, ED97E9391CC757D7006C757A /* SSDT-6x60.dsl */, ED97E93F1CC757D7006C757A /* SSDT-8x60.dsl */, ED97E92F1CC757D7006C757A /* SSDT-2x70.dsl */, ED97E93A1CC757D7006C757A /* SSDT-6x70.dsl */, ED97E9401CC757D7006C757A /* SSDT-8x70.dsl */, ED97E9411CC757D7006C757A /* SSDT-9x70.dsl */, ED71FE551D53978500EEF9F9 /* SSDT-9x80.dsl */, ED97E9311CC757D7006C757A /* SSDT-4x0G0.dsl */, ED97E9301CC757D7006C757A /* SSDT-3x0G1.dsl */, ED97E9331CC757D7006C757A /* SSDT-4x0G1i.dsl */, ED97E93C1CC757D7006C757A /* SSDT-8x0G1i.dsl */, ED97E9321CC757D7006C757A /* SSDT-4x0G1h.dsl */, 8404DCC01FEFF6D20073E620 /* SSDT-450G1h.dsl */, ED023EB31CFDC75C00C5F3A2 /* SSDT-6x0G1h.dsl */, ED97E93B1CC757D7006C757A /* SSDT-8x0G1h.dsl */, ED97E9421CC757D7006C757A /* SSDT-1040G1h.dsl */, ED97E9351CC757D7006C757A /* SSDT-4x0G2h.dsl */, ED97E93E1CC757D7006C757A /* SSDT-8x0G2h.dsl */, ED97E9341CC757D7006C757A /* SSDT-4x0G2b.dsl */, ED97E93D1CC757D7006C757A /* SSDT-8x0G2b.dsl */, ED4BAC3C2167C68F007D7014 /* SSDT-8x0G3b.dsl */, ED97E9361CC757D7006C757A /* SSDT-4x0G3s.dsl */, EDA9D5501D2D48C600DA4204 /* SSDT-6x0G2s.dsl */, EDFC50DC1D199FBA0053A9FC /* SSDT-8x0G3s.dsl */, ED6E36FA1D0AFCE900610C26 /* SSDT-1020G1b.dsl */, ED45A34D1FD2E9FA001FA163 /* SSDT-1030G1s.dsl */, EDF530401DB578C000CAE028 /* SSDT-1040G3s.dsl */, ED607C7620ED491300846672 /* SSDT-1050G1k.dsl */, ED5F0FDA1CE218160097FADC /* SSDT-zbG1h.dsl */, ED97E9431CC757D7006C757A /* SSDT-zbG2h.dsl */, ED815B7D1F9B7CDF005EBCA9 /* SSDT-zbG2hA.dsl */, ED9E98FB1CC905FA0032E2A3 /* SSDT-zbG2b.dsl */, ED8D01131E185D62009A8C63 /* SSDT-zbG3s.dsl */, 84F681FF1E74D6D80097D85D /* SSDT-4x0G4k.dsl */, EDB4C8A91F69720900DC39F3 /* SSDT-8x0G4k.dsl */, ); name = models; sourceTree = ""; }; ED923A2A1CC9407E00BD18E2 /* usb customization */ = { isa = PBXGroup; children = ( ED2C0E751FE2D81000EFE2D5 /* SSDT-USB-Unknown.asl */, ED97E9541CC757D7006C757A /* SSDT-USB-4x30s.asl */, ED97E9501CC757D7006C757A /* SSDT-USB-4x40s.asl */, ED97E94C1CC757D7006C757A /* SSDT-USB-6x60.asl */, ED97E94D1CC757D7006C757A /* SSDT-USB-8x60.asl */, ED464EDD1F89103C00592EC5 /* SSDT-USB-2x70.asl */, ED97E94F1CC757D7006C757A /* SSDT-USB-6x70.asl */, EDE939211D1AF9F0009B5E36 /* SSDT-USB-8x70.asl */, ED507CCE1CDCDAF400E14F67 /* SSDT-USB-9x70.asl */, ED71FE561D53981100EEF9F9 /* SSDT-USB-9x80.asl */, ED9CD3A61F376730004C5906 /* SSDT-USB-4x0-G0.asl */, EDEED57B1D412694005A5AC2 /* SSDT-USB-4x0-G1.asl */, ED17156E1D070F3C00219AC6 /* SSDT-USB-6x0-G1.asl */, ED97E9461CC757D7006C757A /* SSDT-USB-8x0-G1.asl */, ED97E9451CC757D7006C757A /* SSDT-USB-4x0-G2.asl */, EDAB27061D3953E800FD5D06 /* SSDT-USB-640-G2.asl */, ED97E9471CC757D7006C757A /* SSDT-USB-8x0-G2.asl */, ED97E94A1CC757D7006C757A /* SSDT-USB-4x0-G3.asl */, ED92D2AA1D19A4A8005C6F78 /* SSDT-USB-8x0-G3.asl */, ED7697A81CE1106D00DA0993 /* SSDT-USB-ZBook-G1.asl */, EDFBFBC91E1555C000200E68 /* SSDT-USB-ZBook-G2.asl */, ED8D01121E18596D009A8C63 /* SSDT-USB-ZBook-G3.asl */, 845E536C1D0D34880069A1F9 /* SSDT-USB-1020-G1.asl */, EDBB3F8D1FDAD6AC00CF45FC /* SSDT-USB-1030-G1.asl */, EDF5303F1DB5766700CAE028 /* SSDT-USB-1040-G3.asl */, ED4FCB5A20EE7F5700528938 /* SSDT-USB-1050-G1.asl */, EDBB1BE71E993AAA00F49BDE /* SSDT-USB-4x0-G4.asl */, EDB4C8AB1F6972A500DC39F3 /* SSDT-USB-8x0-G4.asl */, ); name = "usb customization"; sourceTree = ""; }; ED97E91F1CC75441006C757A /* config parts */ = { isa = PBXGroup; children = ( ED97E9201CC755BE006C757A /* config_master.plist */, ED97E92E1CC755BE006C757A /* config_non_Intel_USB3.plist */, ED458FFA214EB9CF003071B1 /* config_HD3000-4000_dp.plist */, ED458FFB214EB9D7003071B1 /* config_HD3000-4000_hdmi.plist */, ED97E9221CC755BE006C757A /* config_Haswell_dp.plist */, ED407DA71CF4FC8B00A03010 /* config_Haswell_hdmi.plist */, EDB7D5AE1FE014E500D6DF39 /* config_Haswell_no_hdmi_dp.plist */, ED97E9211CC755BE006C757A /* config_Broadwell_dp.plist */, ED407DA61CF4FC8B00A03010 /* config_Broadwell_hdmi.plist */, ED97E9251CC755BE006C757A /* config_Skylake_dp.plist */, ED407DA51CF4FC8B00A03010 /* config_Skylake_hdmi.plist */, 84F681FD1E74D52C0097D85D /* config_Kabylake_dp.plist */, ED89CD261F393FDC00D752F9 /* config_Kabylake_hdmi.plist */, ); name = "config parts"; sourceTree = ""; }; EDA987001CC71F8D00D10BEC /* include */ = { isa = PBXGroup; children = ( ED815B7F1F9B7E68005EBCA9 /* disable_EH01-EH02.asl */, ED815B7E1F9B7E68005EBCA9 /* disable_EH01.asl */, ED6354D41D38643B00C77357 /* standard_PS2K.asl */, 8497866B1E9DC69F0020BEF8 /* key86_PS2K.asl */, ED6354D31D38643B00C77357 /* standard_PS2K_data.asl */, ED6354D21D38643B00C77357 /* key86_data.asl */, ED63DC271FDED5310001E2F4 /* enable_mouse.asl */, ED97E91D1CC75350006C757A /* disable_HECI.asl */, ED97E9151CC75350006C757A /* ALC280_HDEF.asl */, ED97E9141CC75350006C757A /* ALC280_HDAU.asl */, ED97E9131CC75350006C757A /* ALC282_HDEF.asl */, ED97E9121CC75350006C757A /* ALC282_HDAU.asl */, ED6E36FC1D0AFD8700610C26 /* ALC286_HDEF.asl */, ED6E36FB1D0AFD8700610C26 /* ALC286_HDAU.asl */, ED97E91B1CC75350006C757A /* IDT_7605_HDEF.asl */, ED97E91C1CC75350006C757A /* IDT_7695_HDEF.asl */, ED97E9171CC75350006C757A /* IDT_76d1_HDEF.asl */, ED97E9181CC75350006C757A /* IDT_76d9_HDEF.asl */, ED97E91A1CC75350006C757A /* IDT_76e0_HDEF.asl */, ED97E9191CC75350006C757A /* IDT_76e0_HDAU.asl */, 84F682001E74DC9F0097D85D /* CX8200_HDEF.asl */, ED97E9161CC75350006C757A /* CX20724_HDEF.asl */, ); name = include; sourceTree = ""; }; EDB940BA1C04D44500480024 /* hotpatch */ = { isa = PBXGroup; children = ( ED923A291CC9406900BD18E2 /* models */, EDA987001CC71F8D00D10BEC /* include */, ED923A2A1CC9407E00BD18E2 /* usb customization */, ED97E9441CC757D7006C757A /* SSDT-HACK.asl */, ED841A021ED637AB00A0B6BB /* SSDT-RMCF.asl */, ED8D4ED41E9C39C700F87978 /* SSDT-IGPU.dsl */, ED5777E92175979D0093A621 /* SSDT-PNLF.asl */, EDDC92011FD44C040071D2C2 /* SSDT-ALS0.asl */, ED334FFC1F8D474E00202D59 /* SSDT-PEGP_DGFX_RDSS.asl */, ED334FFB1F8D3ED100202D59 /* SSDT-PEG0_PEGP_RDSS.asl */, 84D207AE1E64F63F0083EC17 /* SSDT-RP05_DGFX_RDSS.asl */, 84D207AD1E64F63F0083EC17 /* SSDT-RP01_PEGP_RDSS.asl */, 84AB159A1E9AF5AD005206A1 /* SSDT-RP01_PXSX_RDSS.asl */, EDB4C8AC1F69738900DC39F3 /* SSDT-RP05_PXSX_RDSS.asl */, 841F11E31E9FA7B000BE33AF /* SSDT-RP05_PEGP_RDSS.asl */, ED2500561CF67CE6006A5FB7 /* SSDT-EH01.asl */, ED2500571CF67CE6006A5FB7 /* SSDT-EH02.asl */, ED2500551CF67CE6006A5FB7 /* SSDT-XHC.asl */, EDB9A1031ECCE6FE002297BB /* SSDT-USBX.asl */, ED97E9521CC757D7006C757A /* SSDT-BATT.asl */, ED97E9531CC757D7006C757A /* SSDT-BATT-G2.asl */, ED97E94E1CC757D7006C757A /* SSDT-BATT-G3.asl */, 84F681FC1E74CDD30097D85D /* SSDT-BATT-G4.asl */, ED97E9561CC757D7006C757A /* SSDT-FANREAD.dsl */, ED97E9551CC757D7006C757A /* SSDT-FANORIG.dsl */, ED97E9511CC757D7006C757A /* SSDT-FANQ.dsl */, ED97E9571CC757D7006C757A /* SSDT-KEY87.asl */, ED97E9581CC757D7006C757A /* SSDT-KEY102.asl */, EDF34038214F173900F427D4 /* SSDT-USWE.asl */, ED97E91F1CC75441006C757A /* config parts */, ); name = hotpatch; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXLegacyTarget section */ 84B9D51316FFE58F002CD441 /* Patches */ = { isa = PBXLegacyTarget; buildArgumentsString = "$(ACTION)"; buildConfigurationList = 84B9D51616FFE58F002CD441 /* Build configuration list for PBXLegacyTarget "Patches" */; buildPhases = ( ); buildToolPath = /usr/bin/make; dependencies = ( ); name = Patches; passBuildSettingsInEnvironment = 1; productName = Patches; }; /* End PBXLegacyTarget section */ /* Begin PBXProject section */ 84B9D50F16FFE58F002CD441 /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0460; ORGANIZATIONNAME = RehabMan; }; buildConfigurationList = 84B9D51216FFE58F002CD441 /* Build configuration list for PBXProject "Patches" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); mainGroup = 84B9D50E16FFE58F002CD441; projectDirPath = ""; projectRoot = ""; targets = ( 84B9D51316FFE58F002CD441 /* Patches */, ); }; /* End PBXProject section */ /* Begin XCBuildConfiguration section */ 84B9D51516FFE58F002CD441 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.8; SDKROOT = macosx; }; name = Release; }; 84B9D51816FFE58F002CD441 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { OTHER_CFLAGS = ""; OTHER_LDFLAGS = ""; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 84B9D51216FFE58F002CD441 /* Build configuration list for PBXProject "Patches" */ = { isa = XCConfigurationList; buildConfigurations = ( 84B9D51516FFE58F002CD441 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 84B9D51616FFE58F002CD441 /* Build configuration list for PBXLegacyTarget "Patches" */ = { isa = XCConfigurationList; buildConfigurations = ( 84B9D51816FFE58F002CD441 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 84B9D50F16FFE58F002CD441 /* Project object */; } ================================================ FILE: Patches.xcodeproj/project.xcworkspace/contents.xcworkspacedata ================================================ ================================================ FILE: README.md ================================================ ## DSDT patches for HP ProBook/EliteBook/ZBook series laptops This set of patches/makefile can be used to patch your HP ProBook/EliteBook/ZBook DSDTs. There are also post install scripts that can be used to create and install the kexts the are required for this laptop series. A wide range of these HP laptops is supported, including Sandy Bridge, Ivy Bridge, Haswell, Broadwell, and now Skylake. Although older versions of the repo had scripts to automate patching of DSDT/SSDTs, the current version does it all via config.plist hotpatching and SSDT-HACK. Please refer to this guide thread on tonymacx86.com for a step-by-step process, feedback, and questions: http://www.tonymacx86.com/el-capitan-laptop-guides/189416-guide-hp-probook-elitebook-zbook-using-clover-uefi-hotpatch-10-11-a.html ### Original non-hotpatch guide The original patches for the 4x30/4x40 series are still present, and available through MaciASL as a patch source. The guide for using those patches is still in the WiKi here: https://github.com/RehabMan/HP-ProBook-4x30s-DSDT-Patch/wiki/How-to-patch-your-DSDT ### Change Log: 2018-09-01 - completed major changes for Mojave and AppleALC.kext 2016-04-20 - initial creation of this README - current code here is a work-in-progress. ================================================ FILE: Resources_ProBook/README.txt ================================================ LayoutID and PathMapID mappings for AppleHDA_ProBook.kext and applicable AppleALC.kext ALC282: 33 (was 3 prior to 10.14) AppleALC: 3,4,13,27,28,29,76,86,127 ALC280: 4 AppleALC: 3,(4),11,13,15 CX20724: 5(Mirone version) or 7(InsanelyDeepak version) AppleALC: 3(Mirone), 13(InsanelyDeepak) per @y010204025, AppleALC layout-id 3 does not allow headphones to work, so switched to layout-id 13 ALC286: 6 AppleALC: 3 CX8200: 20 (extracted from AppleALC) AppleALC: 3 IDT_76d1 (IDT92HD87B1_3): 122 (was 12 prior to 10.14) AppleALC: 12, 13 IDT_76d9 (IDT92HD87B2_4): 123 (was 13 prior to 10.14) AppleALC: 13 IDT_76e0 (IDT92HD91BXX): 17 AppleALC: 3, 12(envy), 13, 33, 84 per @atomfried AppleALC layout-id 3 does not work with Haswell ZBook G1, so switched to layout-id 13 IDT_7605 (IDT92HD81B1X5): 128 (was 18 prior to 10.14) (has alternate: IDT92HD87B1) AppleALC: 3, 11, (12), 20, 21, 28 IDT_7695 (IDT92HD95): 19 AppleALC: 12 Note: Layout-id 14,15,16 may not be able to be used due to AppleHDA not using them (there may be a whitelist) Note: macOS Mojave removes layout-id that were used: 3, 12, 13, 18. Note: AppleALC removes layout-id restriction with a bit of trickery/patching. -- Model/Audio mapping ALC282: 4x0G2 Haswell, 8x0G2 Haswell, 4x0G2 Broadwell ALC280: Zbook G2 Haswell/Broadwell, HP Folio 9480m Haswell, 8x0G2 Broadwell ALC286: EliteBook Folio 1020 G1/Broadwell CX20724: 4x0sG3 Skylake 76d1: 4x30s, 76d9: 4x40s 76e0: 4x0G0, 4x0G1, 9x70m, 4x0G1, 8x0G1, 1040G1, 7605: 6x60s, 6x70s, 6x70AMD, 6x60wAMD, 6x60wNVIDIA, 8x70p, 2x70 7695: 3x0G1, CX8200: 4x0s G4 Kabylake -- Note regarding ALC280 combo jack and difference between original and for G2. From Mirone: http://www.tonymacx86.com/el-capitan-laptop-support/191207-hp-elitebook-g2-alc280-combo-jack-wip-7.html#post1242688 To the kext to ALC280 of @zirkaiva I had to add in: Headphones/MuteGPIO=4 in Layout-ID, to your Headphone work, to be honest this is an exception for most the ALC codec for Laptops works without it in Layout-ID, and this is your case I should have tried the first time, When you said that ALC280_Original worked, least headphones. We have two slightly different scenarios, the first in which HP Elitebook 9480m Folio need Headphones/MuteGPIO=4 in Layout-ID, for your Headphone works and the second where HP Elitebook G2, not must have these values in its Layout-ID so your headset work correctly, RehabMan keep this in mind when updating your repository. ================================================ FILE: Resources_ProBook/codec_dump_CX20724.txt ================================================ Codec: Conexant CX20724 Address: 0 AFG Function Id: 0x1 (unsol 1) Vendor Id: 0x14f150f4 Subsystem Id: 0x103c8100 Revision Id: 0x100101 No Modem Function Group found Default PCM: rates [0x140]: 48000 96000 bits [0xa]: 16 24 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: N/A State of AFG node 0x01: Power states: D0 D1 D2 D3 D3cold S3D3cold CLKSTOP EPSS Power: setting=D0, actual=D0 GPIO: io=7, o=0, i=0, unsolicited=1, wake=1 IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 Node 0x10 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L Control: name="Headphone Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Device: name="CX20724 Analog", type="Audio", device=0 Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1 Amp-Out vals: [0x80 0x80] Converter: stream=1, channel=0 PCM: rates [0x540]: 48000 96000 192000 bits [0xa]: 16 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x11 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L Control: name="Speaker Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Control: name="Speaker Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1 Amp-Out vals: [0x45 0x45] Converter: stream=1, channel=0 PCM: rates [0x540]: 48000 96000 192000 bits [0xa]: 16 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x12 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out Control: name="Beep Playback Volume", index=0, device=0 ControlAmp: chs=1, dir=Out, idx=0, ofs=0 Control: name="Beep Playback Switch", index=0, device=0 ControlAmp: chs=1, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x07, nsteps=0x07, stepsize=0x0f, mute=0 Amp-Out vals: [0x03] Node 0x13 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L Control: name="Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=1, ofs=0 Control: name="Capture Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=1, ofs=0 Device: name="CX20724 Analog", type="Audio", device=0 Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1 Amp-In vals: [0x80 0x80] [0x50 0x50] [0x50 0x50] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Converter: stream=1, channel=0 SDI-Select: 0 PCM: rates [0x140]: 48000 96000 bits [0xa]: 16 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 7 0x18 0x19 0x1a* 0x15 0x1d 0x1e 0x1f Node 0x14 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1 Amp-In vals: [0x4a 0x4a] [0x4a 0x4a] [0x4a 0x4a] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x140]: 48000 96000 bits [0xa]: 16 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 3 0x1a* 0x15 0x1f Node 0x15 [Vendor Defined Widget] wcaps 0xf0050b: Stereo Amp-In Amp-In caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1 Amp-In vals: [0x4a 0x4a] [0x4a 0x4a] Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x10* 0x11 Node 0x16 [Pin Complex] wcaps 0x400581: Stereo Pincap 0x0001001c: OUT HP EAPD Detect EAPD 0x2: EAPD Pin Default 0x03211040: [Jack] HP Out at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x4, Sequence = 0x0 Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x10* 0x11 Node 0x17 [Pin Complex] wcaps 0x400501: Stereo Pincap 0x00010010: OUT EAPD EAPD 0x2: EAPD Pin Default 0x91170110: [Fixed] Speaker at Int Rear Conn = Analog, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x10 0x11* Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00001324: IN Detect Vref caps: HIZ 50 80 Pin Default 0x40f001f0: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In Control: name="Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00001324: IN Detect Vref caps: HIZ 50 80 Pin Default 0x03a11030: [Jack] Mic at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=02, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1a [Pin Complex] wcaps 0x40040b: Stereo Amp-In Control: name="Internal Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x95a60120: [Fixed] Mic at Int Top Conn = Digital, Color = Unknown DefAssociation = 0x2, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x1d [Pin Complex] wcaps 0x40058b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00011334: IN OUT EAPD Detect Vref caps: HIZ 50 80 EAPD 0x2: EAPD Pin Default 0x40f001f0: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x10* 0x11 Node 0x1e [Pin Complex] wcaps 0x40048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000024: IN Detect Pin Default 0x40f001f0: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1f [Pin Complex] wcaps 0x40040b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x40f001f0: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x20 [Audio Output] wcaps 0x611: Stereo Digital Converter: stream=0, channel=0 Digital: Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x540]: 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x21 [Pin Complex] wcaps 0x400701: Stereo Digital Pincap 0x00000010: OUT Pin Default 0x40f001f0: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x20 Node 0x22 [Pin Complex] wcaps 0x400501: Stereo Pincap 0x00010010: OUT EAPD EAPD 0x2: EAPD Pin Default 0x40f001f0: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x10* 0x11 ================================================ FILE: Resources_ProBook/codec_dump_alc280_elitebook_g2_broadwell.txt ================================================ Codec: Realtek ALC3228 Address: 0 AFG Function Id: 0x1 (unsol 1) Vendor Id: 0x10ec0280 Subsystem Id: 0x103c2277 Revision Id: 0x100003 No Modem Function Group found Default PCM: rates [0x5f0]: 32000 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: N/A State of AFG node 0x01: Power states: D0 D1 D2 D3 CLKSTOP EPSS Power: setting=D0, actual=D0 GPIO: io=5, o=0, i=0, unsolicited=1, wake=0 IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[3]: enable=1, dir=1, wake=0, sticky=0, data=0, unsol=0 IO[4]: enable=1, dir=1, wake=0, sticky=0, data=0, unsol=0 Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out Control: name="Headphone Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Device: name="ALC3228 Analog", type="Audio", device=0 Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0 Amp-Out vals: [0x00 0x00] Converter: stream=5, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out Control: name="Speaker Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0 Amp-Out vals: [0x3d 0x3d] Converter: stream=5, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x06 [Audio Output] wcaps 0x611: Stereo Digital Converter: stream=0, channel=0 Digital: Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x5f0]: 32000 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1 Amp-In vals: [0x97 0x97] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x23 Node 0x09 [Audio Input] wcaps 0x10051b: Stereo Amp-In Control: name="Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Device: name="ALC3228 Analog", type="Audio", device=0 Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1 Amp-In vals: [0x27 0x27] Converter: stream=1, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x22 Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Control: name="Mic Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Control: name="Mic Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Control: name="Beep Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=4, ofs=0 Control: name="Beep Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=4, ofs=0 Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 5 0x18 0x19 0x1a 0x1b 0x1d Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x00 0x00] Connection: 2 0x02 0x0b Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x00 0x00] Connection: 2 0x03 0x0b Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0f [Audio Mixer] wcaps 0x20010a: Mono Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x80] [0x00] Connection: 2 0x02 0x03 Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In Control: name="Internal Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x90a60130: [Fixed] Mic at Int N/A Conn = Digital, Color = Unknown DefAssociation = 0x3, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x13 [Pin Complex] wcaps 0x40040b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x40000000: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0x0, Sequence = 0x0 Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x14 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Control: name="Speaker Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x00010010: OUT EAPD EAPD 0x2: EAPD Pin Default 0x90170110: [Fixed] Speaker at Int N/A Conn = Analog, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c 0x0d* Node 0x15 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0001001c: OUT HP EAPD Detect EAPD 0x2: EAPD Pin Default 0x0421101f: [Jack] HP Out at Ext Right Conn = 1/8, Color = Black DefAssociation = 0x1, Sequence = 0xf Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Connection: 2 0x0c* 0x0d Node 0x16 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x00010014: OUT EAPD Detect EAPD 0x2: EAPD Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x17 [Pin Complex] wcaps 0x40050c: Mono Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80] Pincap 0x00000010: OUT Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x0f Node 0x18 [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x00003734: IN OUT Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000024: IN Detect Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Control: name="Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x04a11020: [Jack] Mic at Ext Right Conn = 1/8, Color = Black DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=02, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Connection: 2 0x0c* 0x0d Node 0x1b [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x00003734: IN OUT Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x1d [Pin Complex] wcaps 0x400400: Mono Pincap 0x00000020: IN Pin Default 0x40748605: [N/A] Modem Hand at Ext N/A Conn = RCA, Color = Purple DefAssociation = 0x0, Sequence = 0x5 Pin-ctls: 0x20: IN Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1e [Pin Complex] wcaps 0x400781: Stereo Digital Pincap 0x00000014: OUT Detect Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x06 Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=107 Node 0x21 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x22 [Audio Selector] wcaps 0x300101: Stereo Connection: 8 0x18 0x19 0x1a 0x1b 0x1d 0x0b 0x12* 0x13 Node 0x23 [Audio Selector] wcaps 0x300101: Stereo Connection: 6 0x18* 0x19 0x1a 0x1b 0x1d 0x0b Node 0x24 [Vendor Defined Widget] wcaps 0xf00000: Mono ================================================ FILE: Resources_ProBook/codec_dump_alc280_folio_9480m.txt ================================================ Codec: Realtek ALC3228 Address: 0 AFG Function Id: 0x1 (unsol 1) Vendor Id: 0x10ec0280 Subsystem Id: 0x103c22db Revision Id: 0x100003 No Modem Function Group found Default PCM: rates [0x5f0]: 32000 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: N/A State of AFG node 0x01: Power states: D0 D1 D2 D3 CLKSTOP EPSS Power: setting=D0, actual=D0 GPIO: io=5, o=0, i=0, unsolicited=1, wake=0 IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[1]: enable=1, dir=1, wake=0, sticky=0, data=1, unsol=0 IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out Control: name="Headphone Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Device: name="ALC3228 Analog", type="Audio", device=0 Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0 Amp-Out vals: [ ask ask ncl[wqe 0x3c] Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out Control: name="Speaker Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0 Amp-Out vals: [0x3c 0x3c] Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x06 [Audio Output] wcaps 0x611: Stereo Digital Converter: stream=0, channel=0 Digital: Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x5f0]: 32000 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1 Amp-In vals: [0x97 0x97] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x23 Node 0x09 [Audio Input] wcaps 0x10051b: Stereo Amp-In Control: name="Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Device: name="ALC3228 Analog", type="Audio", device=0 Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1 Amp-In vals: [0x27 0x27] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x22 Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Control: name="Mic Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Control: name="Mic Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Control: name="Beep Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=4, ofs=0 Control: name="Beep Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=4, ofs=0 Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 5 0x18 0x19 0x1a 0x1b 0x1d Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x00 0x00] Connection: 2 0x02 0x0b Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x00 0x00] Connection: 2 0x03 0x0b Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0f [Audio Mixer] wcaps 0x20010a: Mono Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x80] [0x00] Connection: 2 0x02 0x03 Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In Control: name="Internal Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Internal Mic Phantom Jack", index=0, device=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x90a60130: [Fixed] Mic at Int N/A Conn = Digital, Color = Unknown DefAssociation = 0x3, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x13 [Pin Complex] wcaps 0x40040b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x40000000: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0x0, Sequence = 0x0 Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x14 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Control: name="Speaker Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Control: name="Speaker Phantom Jack", index=0, device=0 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x00010010: OUT EAPD EAPD 0x2: EAPD Pin Default 0x90170110: [Fixed] Speaker at Int N/A Conn = Analog, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c 0x0d* Node 0x15 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Control: name="Headphone Jack", index=0, device=0 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x0001001c: OUT HP EAPD Detect EAPD 0x2: EAPD Pin Default 0x0321101f: [Jack] HP Out at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x1, Sequence = 0xf Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x16 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x00010014: OUT EAPD Detect EAPD 0x2: EAPD Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x17 [Pin Complex] wcaps 0x40050c: Mono Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80] Pincap 0x00000010: OUT Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x0f Node 0x18 [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x00003734: IN OUT Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000024: IN Detect Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Control: name="Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Mic Jack", index=0, device=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x03a11020: [Jack] Mic at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=02, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x1b [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x00003734: IN OUT Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x1d [Pin Complex] wcaps 0x400400: Mono Pincap 0x00000020: IN Pin Default 0x40738105: [N/A] Modem Hand at Ext N/A Conn = ATAPI, Color = Purple DefAssociation = 0x0, Sequence = 0x5 Misc = NO_PRESENCE Pin-ctls: 0x20: IN Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x1e [Pin Complex] wcaps 0x400781: Stereo Digital Pincap 0x00000014: OUT Detect Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x06 Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=107 Node 0x21 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x22 [Audio Selector] wcaps 0x300101: Stereo Connection: 8 0x18 0x19 0x1a 0x1b 0x1d 0x0b 0x12* 0x13 Node 0x23 [Audio Selector] wcaps 0x300101: Stereo Connection: 6 0x18* 0x19 0x1a 0x1b 0x1d 0x0b Node 0x24 [Vendor Defined Widget] wcaps 0xf00000: Mono ================================================ FILE: _get_tools.sh ================================================ #!/bin/bash #set -x # get copy of tools if not present if [[ ! -d ./_tools ]]; then git clone https://github.com/RehabMan/hack-tools.git _tools fi # update tools to latest if [[ -e ./_tools/.git ]]; then cd ./_tools && git pull cd .. fi # remove old tools copy (that was in tools instead of _tools) rm -Rf tools #eof ================================================ FILE: build/readme.txt ================================================ directory for built binaries such as SSDT-HACK.aml ================================================ FILE: build.sh ================================================ #!/bin/bash ./make_config.sh ./make_acpi.sh #EOF ================================================ FILE: config/readme.txt ================================================ config files here built by make ================================================ FILE: config_parts/config_Broadwell_dp.plist ================================================ Devices Properties PciRoot(0)/Pci(0x02,0) ================================================ FILE: config_parts/config_Broadwell_hdmi.plist ================================================ Devices Properties PciRoot(0)/Pci(0x02,0) framebuffer-patch-enable 1 framebuffer-con1-enable 1 framebuffer-con1-alldata AQULAAAIAACCAAAA framebuffer-con2-enable 1 framebuffer-con2-alldata AgQLAAAIAACCAAAA ================================================ FILE: config_parts/config_HD3000-4000_dp.plist ================================================ Devices Properties PciRoot(0)/Pci(0x02,0) framebuffer-patch-enable 1 framebuffer-con1-enable 1 framebuffer-con1-01660004-alldata AgUAAAAEAAAHBAAAAwQAAAAEAACBAAAABAYAAAAEAACBAAAA framebuffer-patch0-enable 1 framebuffer-patch0-framebufferid BABmAQ== framebuffer-patch0-find AQMBAQAAAAI= framebuffer-patch0-replace AQIEAgAAAAQ= ================================================ FILE: config_parts/config_HD3000-4000_hdmi.plist ================================================ Devices Properties PciRoot(0)/Pci(0x02,0) framebuffer-patch-enable 1 framebuffer-con1-enable 1 framebuffer-con1-01660004-alldata AgUAAAAEAAAHBAAAAwQAAAAEAACBAAAABAYAAAAEAACBAAAA framebuffer-con3-enable 1 framebuffer-con3-type AAgAAA== framebuffer-con3-flags CQAAAA== framebuffer-patch0-enable 1 framebuffer-patch0-framebufferid BABmAQ== framebuffer-patch0-find AQMBAQAAAAI= framebuffer-patch0-replace AQIEAgAAAAQ= ================================================ FILE: config_parts/config_Haswell_dp.plist ================================================ Devices Properties PciRoot(0)/Pci(0x02,0) framebuffer-patch-enable 1 framebuffer-cursormem AACQAA== framebuffer-portcount 4 framebuffer-con1-enable 1 framebuffer-con1-0a260006-alldata AQUSAAAEAACHAAAAAgQSAAAEAACHAAAAAwYDAAAEAACHAAAA framebuffer-con3-enable 1 framebuffer-con3-0a260006-alldata AwYDAAAEAAAHAQAA ================================================ FILE: config_parts/config_Haswell_hdmi.plist ================================================ Devices Properties PciRoot(0)/Pci(0x02,0) framebuffer-patch-enable 1 framebuffer-cursormem AACQAA== framebuffer-portcount 4 framebuffer-con1-enable 1 framebuffer-con1-0a260006-alldata AQUSAAAIAACHAAAAAgQSAAAIAACHAAAAAwYDAAAIAACHAAAA framebuffer-con1-0d260007-alldata AQULAAAIAAAHAQAA/wAAAAEAAABAAAAA/wAAAAEAAABAAAAA ================================================ FILE: config_parts/config_Haswell_no_hdmi_dp.plist ================================================ Devices Properties PciRoot(0)/Pci(0x02,0) framebuffer-patch-enable 1 framebuffer-cursormem AACQAA== framebuffer-portcount 1 framebuffer-memorycount 1 framebuffer-con1-enable 1 framebuffer-con1-alldata /wAAAAEAAABAAAAA/wAAAAEAAABAAAAA/wAAAAEAAABAAAAA ================================================ FILE: config_parts/config_Kabylake_dp.plist ================================================ Devices Properties PciRoot(0)/Pci(0x02,0) framebuffer-patch-enable 1 framebuffer-con1-enable 1 framebuffer-con1-alldata AQUKAAAEAACHAQAAAgQKAAAIAACHAQAA ================================================ FILE: config_parts/config_Kabylake_hdmi.plist ================================================ Devices Properties PciRoot(0)/Pci(0x02,0) framebuffer-patch-enable 1 framebuffer-con1-enable 1 framebuffer-con1-alldata AQUKAAAIAACHAQAAAgQKAAAIAACHAQAA ================================================ FILE: config_parts/config_Skylake_dp.plist ================================================ Devices Properties PciRoot(0)/Pci(0x02,0) framebuffer-patch-enable 1 framebuffer-portcount 4 framebuffer-con3-enable 1 framebuffer-con3-alldata AwYKAAAIAACHAQAA ================================================ FILE: config_parts/config_Skylake_hdmi.plist ================================================ Devices Properties PciRoot(0)/Pci(0x02,0) framebuffer-patch-enable 1 framebuffer-portcount 4 framebuffer-con1-enable 1 framebuffer-con1-type AAgAAA== framebuffer-con2-enable 1 framebuffer-con2-type AAgAAA== framebuffer-con3-enable 1 framebuffer-con3-alldata AwYKAAAIAACHAQAA ================================================ FILE: config_parts/config_master.plist ================================================ ACPI DSDT DropOEM_DSM Fixes FixTMR FixRTC FixIPIC FixHPET Patches Comment change _DSM to XDSM Find X0RTTQ== Replace WERTTQ== Comment change _OSI to XOSI Find X09TSQ== Replace WE9TSQ== Comment change EC0 to EC Find RUMwXw== Replace RUNfXw== Comment change EHC1 to EH01 Find RUhDMQ== Replace RUgwMQ== Comment change EHC2 to EH02 Find RUhDMg== Replace RUgwMg== Comment change GFX0 to IGPU Find R0ZYMA== Replace SUdQVQ== Comment Change Device(HECI) _ADR=0x00160000 to _ADR=0 Disabled Find SEVDSQhfQURSDAAAFgA= Replace SEVDSQhfQURSDAAAAAA= Comment change HDAS to HDEF Find SERBUw== Replace SERFRg== Comment change B0D3 to HDAU Find QjBEMw== Replace SERBVQ== Comment change Method(UPRW,2,S) to XPRW Find VVBSVwpwEg== Replace WFBSVwpwEg== Comment change Method(GPRW,2,N) to XPRW Find R1BSVwI= Replace WFBSVwI= Comment change LANC Method(_PRW,0,Serialized) to Method(XPRW,0,..) Find AAAZABQfX1BSVwg= Replace AAAZABQfWFBSVwg= Comment change _PTS to ZPTS Find X1BUUwE= Replace WlBUUwE= Comment change _WAK to ZWAK Find X1dBSwE= Replace WldBSwE= Comment change _WAK to ZWAK (G3) Find X1dBSwk= Replace WldBSwk= Comment change Method(BTIF,1,Serialized) to BTI0 Find QlRJRgl5Cg== Replace QlRJMAl5Cg== Comment change Method(BTIF,1,Serialized) to BTI0 (G3) Find QlRJRgl5AWg= Replace QlRJMAl5AWg= Comment change Method(BTST,2,Serialized) to BTS1 Find QlRTVAp5Cg== Replace QlRTMQp5Cg== Comment change Method(BTST,2,Serialized) to BTS1 (G3) Find QlRTVAp5AWg= Replace QlRTMQp5AWg= Comment change Method(SBTC,3,NotSerialized) to SBT2 Find U0JUQwNwDQ== Replace U0JUMgNwDQ== Comment change Method(GBTI,1,NotSerialized) to GBT3 Find R0JUSQFwDQ== Replace R0JUMwFwDQ== Comment change Method(GBTC,0,NotSerialized) to GBT4 Find R0JUQwBwDQ== Replace R0JUNABwDQ== Comment change Method(ITLB,0,NotSerialized) to ITL1 (for G4) Find SVRMQgA= Replace SVRMMQA= Comment change Method(GACW,0,NotSerialized) to XACW (for G4 latest BIOS) Find R0FDVwA= Replace WEFDVwA= Comment change Method(GBAW,0,NotSerialized) to XBAW (for G4 latest BIOS) Find R0JBVwA= Replace WEJBVwA= Comment change Name(NBTI,..) to NBT5 Find CE5CVEk= Replace CE5CVDU= Comment change Notify(\_SB.BAT0,...) to Notify(_SB.BATC,...) Find hlwuX1NCX0JBVDA= Replace hlwuX1NCX0JBVEM= Comment change Notify(\_SB.BAT1,...) to Notify(_SB.BATC,...) Find hlwuX1NCX0JBVDE= Replace hlwuX1NCX0JBVEM= Comment change Notify(BAT0,...) to Notify(BATC,...) Find hkJBVDA= Replace hkJBVEM= Comment change Notify(BAT1,...) to Notify(BATC,...) Find hkJBVDE= Replace hkJBVEM= Comment change Method(RDSS,1,S) to XDSS Find UkRTUwk= Replace WERTUwk= Comment change EC Method(_REG,2,N) to XREG, 4x40s, 4x30s Find X1JFRwKgKJNoCgM= Replace WFJFRwKgKJNoCgM= Comment change EC Method(_REG,2,N) to XREG, 4x0 G3 Skylake Find X1JFRwKgFJNoCgM= Replace WFJFRwKgFJNoCgM= Comment RTC fix Find RwFwAHAAAQg= Replace RwFwAHAAAQI= DropTables Signature DMAR Signature SSDT TableId PtidDevc #DropTables Signature DMAR Signature SSDT TableId PtidDevc Signature SSDT TableId CpuPm Signature SSDT TableId Cpu0Cst Signature SSDT TableId Cpu0Ist Signature SSDT TableId ApCst Signature SSDT TableId ApIst SSDT Generate CStates PStates APSN APLF PluginType Boot Arguments kext-dev-mode=1 dart=0 -igfxnohdmi NeverHibernate Secure Timeout 5 Devices Audio Inject 0 Properties USB Inject DisableDrivers VBoxHfs Graphics Inject Intel GUI Custom Entries Hidden Type OSXRecovery Type Windows Title Windows Hide Preboot Mouse Enabled Scan Entries Tool Legacy ScreenResolution 1024x768 Theme BGM KernelAndKextPatches AppleRTC AppleIntelCPUPM KernelXCPM KernelLapic KernelPm KextsToPatch Comment Enable TRIM for non-Apple SSDs Disabled Name com.apple.iokit.IOAHCIBlockStorage Find AEFQUExFIFNTRAA= Replace AAAAAAAAAAAAAAA= KernelToPatch Comment MSR 0xE2 _xcpm_idle instant reboot(c) Pike R. Alpha Disabled Find ILniAAAADzA= Replace ILniAAAAkJA= Comment Disable panic kext logging on 10.13 release kernel (credit vit9696) MatchOS 10.13.x Find igKEwHRE Replace igKEwOtE Comment Disable panic kext logging on 10.14 release kernel (credit vit9696) MatchOS 10.14.x Find igKEwHRC Replace igKEwOtC RtVariables CsrActiveConfig 0x67 BooterConfig 0x28 SMBIOS ProductName smbios_productname_placeholder Trust SystemParameters InjectKexts Detect ================================================ FILE: config_parts/config_non_Intel_USB3.plist ================================================ KernelAndKextPatches KextsToPatch Comment USB 3.0 Disable Intel USB3 controller check 10.9 MatchOS 10.9.x Name com.apple.driver.AppleUSBXHCI Find 9oDUAAAAgHU6 Replace 9oDUAAAAgOs6 Comment USB 3.0 Disable Intel USB3 controller check 10.10 MatchOS 10.10.x Name com.apple.driver.AppleUSBXHCI Find 9oDUAAAAgHU0 Replace 9oDUAAAAgOs0 Comment USB 3.0 Disable XHCI 1.0 check 10.9 MatchOS 10.9.x Name com.apple.driver.AppleUSBXHCI Find Zj0AAQ== Replace Zj0AAA== Comment USB 3.0 Disable XHCI 1.0 check 10.10 MatchOS 10.10.x Name com.apple.driver.AppleUSBXHCI Find QbzHAgDgPQABAAA= Replace QbzHAgDgPQAAAAA= Comment USB 3.0 Patch MSI or pin interrupts #1 MatchOS 10.9.x,10.10.x Name com.apple.driver.AppleUSBXHCI Find gUkIAABAAA== Replace gUkIAAAAAA== Comment USB 3.0 Patch MSI or pin interrupts #2 MatchOS 10.9.x,10.10.x Name com.apple.driver.AppleUSBXHCI Find QcdHCAAAQAA= Replace QcdHCAAAAAA= Comment USB 3.0 Enable PCI power management MatchOS 10.9.x,10.10.x Name com.apple.driver.AppleUSBXHCI Find dU1Ii7voAQAA Replace 601Ii7voAQAA ================================================ FILE: download.sh ================================================ #!/bin/bash #set -x # get copy of tools "$(dirname ${BASH_SOURCE[0]})"/_get_tools.sh # include subroutines source "$(dirname ${BASH_SOURCE[0]})"/_tools/_download_subs.sh # remove deprecated downloads directory to avoid confusion if [[ -e ./downloads ]]; then rm -Rf ./downloads; fi # create _downloads directory and clean if [[ ! -d ./_downloads ]]; then mkdir ./_downloads; fi && rm -Rf ./_downloads/* && cd ./_downloads # extract minor version (eg. 10.9 vs. 10.10 vs. 10.11) MINOR_VER=$([[ "$(sw_vers -productVersion)" =~ [0-9]+\.([0-9]+) ]] && echo ${BASH_REMATCH[1]}) # download kexts mkdir ./kexts && cd ./kexts download_rehabman os-x-fakesmc-kozlek RehabMan-FakeSMC download_rehabman os-x-voodoo-ps2-controller RehabMan-Voodoo if [[ $MINOR_VER -le 8 ]]; then # use older version of RealtekRTL8111.kext for 10.8 and older download_rehabman os-x-realtek-network RehabMan-Realtek-Network-2014 else download_rehabman os-x-realtek-network RehabMan-Realtek-Network fi download_rehabman os-x-intel-network RehabMan-IntelMausiEthernet download_rehabman os-x-intel-backlight RehabMan-IntelBacklight download_rehabman os-x-acpi-battery-driver RehabMan-Battery download_rehabman os-x-eapd-codec-commander RehabMan-CodecCommander download_rehabman os-x-fake-pci-id RehabMan-FakePCIID download_rehabman os-x-brcmpatchram RehabMan-BrcmPatchRAM download_rehabman os-x-atheros-3k-firmware RehabMan-Atheros download_rehabman os-x-acpi-poller RehabMan-Poller download_rehabman os-x-usb-inject-all RehabMan-USBInjectAll download_rehabman applebacklightfixup RehabMan-BacklightFixup download_acidanthera Lilu acidanthera-Lilu download_acidanthera WhateverGreen acidanthera-WhateverGreen download_acidanthera AirportBrcmFixup acidanthera-AirportBrcmFixup download_acidanthera BT4LEContiunityFixup acidanthera-BT4LEContiunityFixup download_acidanthera AppleALC acidanthera-AppleALC cd .. # download tools mkdir ./tools && cd ./tools download_rehabman os-x-maciasl-patchmatic RehabMan-patchmatic download_rehabman os-x-maciasl-patchmatic RehabMan-MaciASL download_rehabman acpica iasl iasl.zip cd .. # download Clover related (HPFanReset.efi) mkdir ./efi && cd ./efi download_rehabman hp-probook-4x30s-fan-reset HPFanReset cd .. ================================================ FILE: find_dependencies.sh ================================================ #!/bin/bash # run as: ./find_dependencies.sh >makefile.d function print_dependencies() { local include_list include_list=$(grep '#include' "$1" | sed -n 's/.*#include\ \"\(.*\)\".*/\1/p') if [[ ! -z "$include_list" ]]; then local f for f in $include_list; do if [[ -e "$2$f" ]]; then echo -n "$2$f " print_dependencies $2$f $2 fi done fi } echo "#" generated with: $0 $@ echo for f in $(ls hotpatch/*.dsl); do deps=$(print_dependencies "$f" hotpatch/) if [[ ! -z "$deps" ]]; then build_target=$(basename "$f") build_target=${build_target/.dsl/.aml} echo build/$build_target : $f $deps echo fi done #EOF ================================================ FILE: hotpatch/SSDT-1020G1b.dsl ================================================ // SSDT for EliteBook Folio 1020 G1 (Broadwell) DefinitionBlock("", "SSDT", 2, "hack", "_1020G1b", 0) { #include "SSDT-RMCF.asl" #include "SSDT-RP05_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/ALC286_HDEF.asl" #include "include/ALC286_HDAU.asl" //#include "include/standard_PS2K.asl" External(_SB.PCI0.LPCB.PS2K, DeviceObj) Scope (_SB.PCI0.LPCB.PS2K) { // overrides for VoodooPS2 configuration... Name(RMCF, Package() { #include "include/standard_PS2K_data.asl" #include "include/enable_mouse.asl" }) } #include "SSDT-KEY87.asl" #include "SSDT-USB-1020-G1.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G2.asl" #include "include/disable_EH01.asl" } //EOF ================================================ FILE: hotpatch/SSDT-1030G1s.dsl ================================================ // SSDT for EliteBook 1030 G1 (Skylake) DefinitionBlock("", "SSDT", 2, "hack", "_1030G1s", 0) { #define OVERRIDE_XPEE 1 #include "SSDT-RMCF.asl" #include "SSDT-PEG0_PEGP_RDSS.asl" #include "SSDT-HACK.asl" #include "include/CX20724_HDEF.asl" #include "include/disable_HECI.asl" //#include "include/standard_PS2K.asl" External(_SB.PCI0.LPCB.PS2K, DeviceObj) Scope (_SB.PCI0.LPCB.PS2K) { Name(RMCF, Package() { #include "include/standard_PS2K_data.asl" #include "include/enable_mouse.asl" }) } #include "SSDT-KEY87.asl" #include "SSDT-USB-1030-G1.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G4.asl" //REVIEW: using SSDT-BATT-G4 instead of SSDT-BATT-G3 #include "SSDT-USBX.asl" #include "SSDT-USWE.asl" } //EOF ================================================ FILE: hotpatch/SSDT-1040G1h.dsl ================================================ // SSDT for 1040 G1 (Haswell) DefinitionBlock("", "SSDT", 2, "hack", "_1040G1h", 0) { #include "SSDT-RMCF.asl" #include "SSDT-RP05_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76e0_HDEF.asl" #include "include/IDT_76e0_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY102.asl" //#include "SSDT-USB-1040-G1.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" #include "SSDT-EH01.asl" //REVIEW: placing at end as no USB customization data available //#include "SSDT-EH02.asl" //REVIEW: placing at end as no USB customization data available } //EOF ================================================ FILE: hotpatch/SSDT-1040G3s.dsl ================================================ // SSDT for EliteBook 1040 G3 (Skylake) DefinitionBlock("", "SSDT", 2, "hack", "_1040G3s", 0) { #define OVERRIDE_XPEE 1 #include "SSDT-RMCF.asl" #include "SSDT-RP05_PEGP_RDSS.asl" #include "SSDT-HACK.asl" #include "include/CX20724_HDEF.asl" #include "include/disable_HECI.asl" //#include "include/standard_PS2K.asl" External(_SB.PCI0.LPCB.PS2K, DeviceObj) Scope (_SB.PCI0.LPCB.PS2K) { Name(RMCF, Package() { #include "include/standard_PS2K_data.asl" #include "include/enable_mouse.asl" #include "include/key86_data.asl" }) } #include "SSDT-KEY102.asl" #include "SSDT-USB-1040-G3.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G4.asl" //REVIEW: using SSDT-BATT-G4 instead of SSDT-BATT-G3 #include "SSDT-USBX.asl" #include "SSDT-USWE.asl" } //EOF ================================================ FILE: hotpatch/SSDT-1050G1k.dsl ================================================ // SSDT for EliteBook 1050 G1 (KabyLake-R) DefinitionBlock("", "SSDT", 2, "hack", "_1050G1k", 0) { #define OVERRIDE_XPEE 1 #include "SSDT-RMCF.asl" #include "SSDT-RP05_PEGP_RDSS.asl" #include "SSDT-HACK.asl" #include "include/CX20724_HDEF.asl" #include "include/disable_HECI.asl" //#include "include/standard_PS2K.asl" External(_SB.PCI0.LPCB.PS2K, DeviceObj) Scope (_SB.PCI0.LPCB.PS2K) { Name(RMCF, Package() { #include "include/standard_PS2K_data.asl" #include "include/enable_mouse.asl" #include "include/key86_data.asl" }) } #include "SSDT-KEY102.asl" #include "SSDT-USB-1050-G1.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G4.asl" //REVIEW: using SSDT-BATT-G4 instead of SSDT-BATT-G3 #include "SSDT-USBX.asl" #include "SSDT-USWE.asl" } //EOF ================================================ FILE: hotpatch/SSDT-2x60.dsl ================================================ // SSDT for 2x60 DefinitionBlock("", "SSDT", 2, "hack", "_2x60", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_7605_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY102.asl" #include "SSDT-USB-6x60.asl" // 2x60 uses same USB as 6x60 #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" #include "SSDT-BATT.asl" } //EOF ================================================ FILE: hotpatch/SSDT-2x70.dsl ================================================ // SSDT for 2x70 DefinitionBlock("", "SSDT", 2, "hack", "_2x70", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_7605_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-2x70.asl" #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" } //EOF ================================================ FILE: hotpatch/SSDT-3x0G1.dsl ================================================ // SSDT for 3x0 G1 DefinitionBlock("", "SSDT", 2, "hack", "_3x0G1", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_7695_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" //#include "SSDT-USB-3x0-G1.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" #include "SSDT-EH01.asl" //REVIEW: placing at end as no USB customization data available #include "SSDT-EH02.asl" //REVIEW: placing at end as no USB customization data available } //EOF ================================================ FILE: hotpatch/SSDT-4230.dsl ================================================ // SSDT for 4230s DefinitionBlock("", "SSDT", 2, "hack", "_4230", 0) { #define OVERRIDE_BUID 24 #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76d1_HDEF.asl" #include "include/standard_PS2K.asl" //#include "SSDT-KEY87.asl" //REVIEW: someone needs to do proper keymap for 4230s #include "SSDT-USB-4x30s.asl" #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" #include "SSDT-BATT.asl" } //EOF ================================================ FILE: hotpatch/SSDT-450G1h.dsl ================================================ // SSDT for 450 G1 Haswell DefinitionBlock("", "SSDT", 2, "hack", "_450G1h", 0) { #define OVERRIDE_IGPI 0x0d260007 #define OVERRIDE_LMAX 0x07a1 #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76e0_HDEF.asl" #include "include/IDT_76e0_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-4x0-G1.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" #include "include/disable_EH01-EH02.asl" } //EOF ================================================ FILE: hotpatch/SSDT-4x0G0.dsl ================================================ // SSDT for 4x0 G0 DefinitionBlock("", "SSDT", 2, "hack", "_4x0G0", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76e0_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-4x0-G0.asl" #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" } //EOF ================================================ FILE: hotpatch/SSDT-4x0G1h.dsl ================================================ // SSDT for 4x0 G1 Haswell DefinitionBlock("", "SSDT", 2, "hack", "_4x0G1h", 0) { #define OVERRIDE_IGPI 0x0d260007 #define OVERRIDE_LMAX 0x07a1 #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76e0_HDEF.asl" #include "include/IDT_76e0_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-4x0-G1.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" #include "include/disable_EH01.asl" } //EOF ================================================ FILE: hotpatch/SSDT-4x0G1i.dsl ================================================ // SSDT for 4x0 G1 Ivy DefinitionBlock("", "SSDT", 2, "hack", "_4x0G1i", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76e0_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" //#include "SSDT-USB-4x0-G1-Ivy.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" #include "SSDT-EH01.asl" //REVIEW: placing at end as no USB customization data available #include "SSDT-EH02.asl" //REVIEW: placing at end as no USB customization data available } //EOF ================================================ FILE: hotpatch/SSDT-4x0G2b.dsl ================================================ // SSDT for 4x0 G2 Broadwell DefinitionBlock("", "SSDT", 2, "hack", "_4x0G2b", 0) { #include "SSDT-RMCF.asl" #include "SSDT-RP05_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/ALC282_HDEF.asl" #include "include/ALC282_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-4x0-G2.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G2.asl" #include "include/disable_EH01.asl" } //EOF ================================================ FILE: hotpatch/SSDT-4x0G2h.dsl ================================================ // SSDT for 4x0 G2 Haswell DefinitionBlock("", "SSDT", 2, "hack", "_4x0G2h", 0) { #include "SSDT-RMCF.asl" #include "SSDT-RP05_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/ALC282_HDEF.asl" #include "include/ALC282_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-4x0-G2.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G2.asl" #include "include/disable_EH01.asl" } //EOF ================================================ FILE: hotpatch/SSDT-4x0G3s.dsl ================================================ // SSDT for ProBook 4x0 G3 (Skylake) DefinitionBlock("", "SSDT", 2, "hack", "_4x0G3s", 0) { #define OVERRIDE_XPEE 1 #include "SSDT-RMCF.asl" #include "SSDT-RP01_PEGP_RDSS.asl" #include "SSDT-HACK.asl" #include "include/CX20724_HDEF.asl" #include "include/disable_HECI.asl" #include "include/key86_PS2K.asl" #include "SSDT-KEY102.asl" #include "SSDT-USB-4x0-G3.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G4.asl" //REVIEW: using SSDT-BATT-G4 instead of SSDT-BATT-G3 #include "SSDT-USBX.asl" #include "SSDT-ALS0.asl" #include "SSDT-USWE.asl" } //EOF ================================================ FILE: hotpatch/SSDT-4x0G4k.dsl ================================================ // SSDT for ProBook 4x0 G4 (Kabylake) DefinitionBlock("", "SSDT", 2, "hack", "_4x0G4k", 0) { #define OVERRIDE_XPEE 1 #include "SSDT-RMCF.asl" #include "SSDT-RP01_PXSX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/CX8200_HDEF.asl" #include "include/disable_HECI.asl" #include "include/key86_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-4x0-G4.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G4.asl" #include "SSDT-USBX.asl" #include "SSDT-ALS0.asl" #include "SSDT-USWE.asl" } //EOF ================================================ FILE: hotpatch/SSDT-4x30.dsl ================================================ // SSDT for 4x30s DefinitionBlock("", "SSDT", 2, "hack", "_4x30", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76d1_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY102.asl" #include "SSDT-USB-4x30s.asl" #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" #include "SSDT-BATT.asl" } //EOF ================================================ FILE: hotpatch/SSDT-4x40.dsl ================================================ // SSDT for 4x40s DefinitionBlock("", "SSDT", 2, "hack", "_4x40", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76d9_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY102.asl" #include "SSDT-USB-4x40s.asl" #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" } //EOF ================================================ FILE: hotpatch/SSDT-5x30.dsl ================================================ // SSDT for ProBook 5x30 DefinitionBlock("", "SSDT", 2, "hack", "_5x30", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_7605_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" //#include "SSDT-USB-5x30.asl" #include "SSDT-BATT.asl" #include "SSDT-EH01.asl" //REVIEW: placing at end as no USB customization data available #include "SSDT-EH02.asl" //REVIEW: placing at end as no USB customization data available } //EOF ================================================ FILE: hotpatch/SSDT-6x0G1h.dsl ================================================ // SSDT for 6x0 G1 Haswell DefinitionBlock("", "SSDT", 2, "hack", "_6x0G1h", 0) { #define OVERRIDE_IGPI 0x0d260007 #define OVERRIDE_LMAX 0x07a1 #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76e0_HDEF.asl" #include "include/IDT_76e0_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-6x0-G1.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" #include "include/disable_EH01-EH02.asl" } //EOF ================================================ FILE: hotpatch/SSDT-6x0G2s.dsl ================================================ // SSDT for EliteBook 6x0 G2 (Skylake) DefinitionBlock("", "SSDT", 2, "hack", "_6x0G2s", 0) { #define OVERRIDE_XPEE 1 #include "SSDT-RMCF.asl" #include "SSDT-RP05_PEGP_RDSS.asl" #include "SSDT-HACK.asl" #include "include/CX20724_HDEF.asl" #include "include/disable_HECI.asl" #include "include/key86_PS2K.asl" #include "SSDT-KEY102.asl" #include "SSDT-USB-640-G2.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G2.asl" #include "SSDT-USBX.asl" #include "SSDT-ALS0.asl" #include "SSDT-USWE.asl" } //EOF ================================================ FILE: hotpatch/SSDT-6x60.dsl ================================================ // SSDT for 6x60 DefinitionBlock("", "SSDT", 2, "hack", "_6x60", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_7605_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-6x60.asl" #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" #include "SSDT-BATT.asl" } //EOF ================================================ FILE: hotpatch/SSDT-6x70.dsl ================================================ // SSDT for 6x70 DefinitionBlock("", "SSDT", 2, "hack", "_6x70", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_7605_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-6x70.asl" #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" } //EOF ================================================ FILE: hotpatch/SSDT-8x0G1h.dsl ================================================ // SSDT for 8x0 G1 Haswell DefinitionBlock("", "SSDT", 2, "hack", "_8x0G1h", 0) { #define OVERRIDE_IGPI 0x04260000 #define OVERRIDE_LMAX 0x1499 #include "SSDT-RMCF.asl" #include "SSDT-RP05_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76e0_HDEF.asl" #include "include/IDT_76e0_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-8x0-G1.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" #include "include/disable_EH01.asl" } //EOF ================================================ FILE: hotpatch/SSDT-8x0G1i.dsl ================================================ // SSDT for 8x0 G1 Ivy DefinitionBlock("", "SSDT", 2, "hack", "_8x0G1i", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76e0_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY102.asl" //#include "SSDT-USB-8x0-G1-Ivy.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" } //EOF ================================================ FILE: hotpatch/SSDT-8x0G2b.dsl ================================================ // SSDT for 8x0 G2 Broadwell DefinitionBlock("", "SSDT", 2, "hack", "_8x0G2b", 0) { #define OVERRIDE_XPEE 1 #include "SSDT-RMCF.asl" #include "SSDT-RP05_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/ALC280_HDEF.asl" #include "include/ALC280_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-8x0-G2.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G2.asl" #include "include/disable_EH01.asl" } //EOF ================================================ FILE: hotpatch/SSDT-8x0G2h.dsl ================================================ // SSDT for 8x0 G2 Haswell DefinitionBlock("", "SSDT", 2, "hack", "_8x0G2h", 0) { #include "SSDT-RMCF.asl" #include "SSDT-RP05_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/ALC282_HDEF.asl" #include "include/ALC282_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY102.asl" #include "SSDT-USB-8x0-G2.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G2.asl" #include "include/disable_EH01.asl" } //EOF ================================================ FILE: hotpatch/SSDT-8x0G3b.dsl ================================================ // SSDT for 8x0 G3 Broadwell DefinitionBlock("", "SSDT", 2, "hack", "_8x0G2b", 0) { #define OVERRIDE_XPEE 1 #include "SSDT-RMCF.asl" #include "SSDT-RP05_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/ALC280_HDEF.asl" #include "include/ALC280_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-8x0-G2.asl" //REVIEW: may not be correct USB setup #include "SSDT-XHC.asl" #include "SSDT-BATT-G3.asl" #include "include/disable_EH01.asl" } //EOF ================================================ FILE: hotpatch/SSDT-8x0G3s.dsl ================================================ // SSDT for EliteBook 8x0 G3 (Skylake) DefinitionBlock("", "SSDT", 2, "hack", "_8x0G3s", 0) { #define OVERRIDE_XPEE 1 #include "SSDT-RMCF.asl" #include "SSDT-RP05_PEGP_RDSS.asl" #include "SSDT-HACK.asl" #include "include/CX20724_HDEF.asl" #include "include/disable_HECI.asl" #include "include/key86_PS2K.asl" #include "SSDT-KEY102.asl" #include "SSDT-USB-8x0-G3.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G4.asl" //REVIEW: using SSDT-BATT-G4 instead of SSDT-BATT-G3 #include "SSDT-USBX.asl" #include "SSDT-USWE.asl" } //EOF ================================================ FILE: hotpatch/SSDT-8x0G4k.dsl ================================================ // SSDT for ProBook 8x0 G4 (Kabylake) DefinitionBlock("", "SSDT", 2, "hack", "_8x0G4k", 0) { #define OVERRIDE_XPEE 1 #include "SSDT-RMCF.asl" #include "SSDT-RP05_PXSX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/CX8200_HDEF.asl" #include "include/disable_HECI.asl" #include "include/key86_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-8x0-G4.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G4.asl" #include "SSDT-USBX.asl" #include "SSDT-USWE.asl" } //EOF ================================================ FILE: hotpatch/SSDT-8x60.dsl ================================================ // SSDT for 8x60 DefinitionBlock("", "SSDT", 2, "hack", "_8x60", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_7605_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-8x60.asl" #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" #include "SSDT-BATT.asl" } //EOF ================================================ FILE: hotpatch/SSDT-8x70.dsl ================================================ // SSDT for 8x70 DefinitionBlock("", "SSDT", 2, "hack", "_8x70", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_7605_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-8x70.asl" #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" } //EOF ================================================ FILE: hotpatch/SSDT-9x70.dsl ================================================ // SSDT for 9x70 DefinitionBlock("", "SSDT", 2, "hack", "_9x70", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76e0_HDEF.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-9x70.asl" #include "SSDT-EH01.asl" #include "SSDT-EH02.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" } //EOF ================================================ FILE: hotpatch/SSDT-9x80.dsl ================================================ // SSDT for 9x80m Haswell DefinitionBlock("", "SSDT", 2, "hack", "_9x80", 0) { #include "SSDT-RMCF.asl" #include "SSDT-RP05_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/ALC280_HDEF.asl" #include "include/ALC280_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-9x80.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" #include "include/disable_EH01.asl" } //EOF ================================================ FILE: hotpatch/SSDT-ALS0.asl ================================================ // Fake ambient light sensor device //DefinitionBlock("", "SSDT", 2, "hack", "ALS0", 0) //{ Device(_SB.ALS0) { Name(_HID, "ACPI0008") Name(_CID, "smc-als") Name(_ALI, 300) Name(_ALR, Package() { //Package() { 70, 0 }, //Package() { 73, 10 }, //Package() { 85, 80 }, Package() { 100, 300 }, //Package() { 150, 1000 }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-BATT-G2.asl ================================================ // battery status patched for ProBook G2 laptops //DefinitionBlock("", "SSDT", 2, "hack", "battg2", 0) //{ External(\_SB.PCI0, DeviceObj) External(\_SB.PCI0.LPCB, DeviceObj) External(\_SB.PCI0.LPCB.EC, DeviceObj) Scope(\_SB.PCI0.LPCB.EC) { // This is an override for battery methods that access EC fields // larger than 8-bit. OperationRegion (ECR2, EmbeddedControl, 0x00, 0xFF) Field (ECR2, ByteAcc, NoLock, Preserve) { Offset (0x87), ,8,//LB1, 8, ,8,//LB2, 8, BDC0, 8, BDC1, 8, Offset (0x8D), BFC0, 8, BFC1, 8, RTE0, 8, RTE1, 8, //BTC, 1, Offset (0x92), BME0, 8, BME1, 8, ,8,//BDN, 8, BDV0, 8, BDV1, 8, BCX0, 8, BCX1, 8, //BST, 4, Offset (0x9B), ATE0, 8, ATE1, 8, BPR0, 8, BPR1, 8, BCR0, 8, BCR1, 8, BRC0, 8, BRC1, 8, BCC0, 8, BCC1, 8, BPV0, 8, BPV1, 8, BCA0, 8, BCA1, 8, BCB0, 8, BCB1, 8, BCP0, 8, BCP1, 8, ,16,//BCW, 16, ATF0, 8, ATF1, 8, ,16,//BCL, 16, AXC0, 8, AXC1, 8, ,8,//BCG1, 8, ,1,//BT1I, 1, ,1,//BT2I, 1, ,2,//, 2, ,4,//BATN, 4, BST0, 8, BST1, 8, //... Offset (0xC9), BSN0, 8, BSN1, 8, BDA0, 8, BDA1, 8, //BMF, 8, //Offset (0xCF), //CTLB, 8, //Offset (0xD1), //BTY, 8, //Offset (0xD5), //MFAC, 8,//d5 //CFAN, 8,//d6 //PFAN, 8,//d7 //OCPS, 8,//d8 //OCPR, 8,//d9 //OCPE, 8,//da //TMP1, 8,//db //TMP2, 8,//dc //NABT, 4,//dd //BCM, 4, //CCBQ, 16,//de Offset(0xe0), CBT0, 8, CBT1, 8, //... } External(\_SB.PCI0.LPCB.EC.BTDR, MethodObj) External(\_SB.PCI0.LPCB.EC.BSTA, MethodObj) External(\_SB.PCI0.LPCB.EC.BTMX, MutexObj) External(\_SB.PCI0.LPCB.EC.NGBF, IntObj) External(\_SB.PCI0.LPCB.EC.NGBT, IntObj) External(\_SB.NBST, PkgObj) External(\_SB.NDBS, PkgObj) External(\_SB.PCI0.LPCB.EC.ECMX, MutexObj) External(\_SB.PCI0.LPCB.EC.ECRG, IntObj) External(\_SB.PCI0.LPCB.EC.BSEL, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.NLB1, IntObj) External(\_SB.PCI0.LPCB.EC.NLB2, IntObj) External(\_SB.PCI0.LPCB.EC.CRZN, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.TEMP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GBSS, MethodObj) External(\_SB.PCI0.LPCB.EC.BST, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GACS, MethodObj) External(\_SB.PCI0.LPCB.EC.NDCB, IntObj) External(\_SB.PCI0.LPCB.EC.BATP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.INCH, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.IDIS, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.INAC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.PSSB, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GBMF, MethodObj) External(\_SB.PCI0.LPCB.EC.GCTL, MethodObj) External(\_SB.PCI0.LPCB.EC.GDNM, MethodObj) External(\_SB.PCI0.LPCB.EC.GDCH, MethodObj) External(\_SB.PCI0.LPCB.EC.BRCC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.BRCV, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.BATN, FieldUnitObj) External(\PRDT, FieldUnitObj) // ITLB is renamed to ITL1 for other models... delegation necessary External(\_SB.PCI0.LPCB.EC.ITL1, MethodObj) Method(ITLB, 0) { ITL1() } // BTIF/BTST methods are renamed in native DSDT, so calls land here... Method (BTIF, 1, Serialized) { ShiftLeft (0x01, Arg0, Local7) BTDR (0x01) If (LEqual (BSTA (Local7), 0x0F)) { Return (0xFF) } Acquire (BTMX, 0xFFFF) Store (NGBF, Local0) Release (BTMX) If (LEqual (And (Local0, Local7), 0x00)) { Return (0x00) } Store (NDBS, Index (NBST, Arg0)) Acquire (BTMX, 0xFFFF) Or (NGBT, Local7, NGBT) Release (BTMX) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg0, BSEL) Store (B1B2 (BFC0, BFC1), Local0) Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), 0x01)) Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), 0x02)) Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (NBTI, Arg0)), 0x04)) Store (NLB1, Index (DerefOf (Index (NBTI, Arg0)), 0x05)) Store (NLB2, Index (DerefOf (Index (NBTI, Arg0)), 0x06)) Store (B1B2 (BSN0, BSN1), Local0) Store (B1B2 (BDA0, BDA1), Local1) // battery cycle count Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (NBTI, Arg0)), 0x0D)) // battery temperature Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) Store (5, \_SB.PCI0.LPCB.EC.CRZN) Store (\_SB.PCI0.LPCB.EC.TEMP, Local2) Release (\_SB.PCI0.LPCB.EC.ECMX) Add (Multiply (Local2, 10), 2732, Local2) // Celsius to .1K Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0E)) } Release (ECMX) Store (GBSS (Local0, Local1), Local2) Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0A)) Acquire (BTMX, 0xFFFF) And (NGBF, Not (Local7), NGBF) Release (BTMX) Return (0x00) } Method (BTST, 2, Serialized) { ShiftLeft (0x01, Arg0, Local7) BTDR (0x01) If (LEqual (BSTA (Local7), 0x0F)) { Store (Package (0x04) { 0x00, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }, Index (NBST, Arg0)) Return (0xFF) } Acquire (BTMX, 0xFFFF) If (Arg1) { Store (0xFF, NGBT) } Store (NGBT, Local0) Release (BTMX) If (LEqual (And (Local0, Local7), 0x00)) { Return (0x00) } Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg0, BSEL) Store (BST, Local0) Store (B1B2 (BPR0, BPR1), Local3) Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (NBST, Arg0)), 0x02)) Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (NBST, Arg0)), 0x03)) } Release (ECMX) If (LEqual (GACS (), 0x01)) { And (Not (0x01), Local0, Local0) } Else { And (Not (0x02), Local0, Local0) } If (And (Local0, 0x01)) { Acquire (BTMX, 0xFFFF) Store (Local7, NDCB) Release (BTMX) } Store (Local0, Index (DerefOf (Index (NBST, Arg0)), 0x00)) If (And (Local0, 0x01)) { If (LOr (LLess (Local3, 0x0190), LGreater (Local3, 0x1964))) { Store (DerefOf (Index (DerefOf (Index (NBST, Arg0)), 0x01)), Local5) If (LOr (LLess (Local5, 0x0190), LGreater (Local5, 0x1964))) { Store (Divide (0x1AF4, 0x02, ), Local3) } Else { Store (Local5, Local3) } } } ElseIf (LEqual (And (Local0, 0x02), 0x00)) { Store (0x00, Local3) } Store (Local3, Index (DerefOf (Index (NBST, Arg0)), 0x01)) Acquire (BTMX, 0xFFFF) And (NGBT, Not (Local7), NGBT) Release (BTMX) Return (0x00) } // SBTC is renamed in native DSDT so calls land here Method (SBTC, 3, NotSerialized) { Store ("Enter SetBatteryControl", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg2, Local0) Store (Local0, Debug) Store (Package (0x02) { 0x06, 0x00 }, Local4) Store (0x00, Local1) Store (0x00, Local2) Store (DerefOf (Index (Local0, 0x10)), Local1) If (LEqual (Local1, 0x00)) { Store ("battery 0", Debug) If (And (BATP, 0x01)) { Store (DerefOf (Index (Local0, 0x11)), Local2) If (LEqual (Local2, 0x00)) { Store (0x00, INCH) Store (0x00, IDIS) Store (0x00, INAC) Store (0x00, AXC0) Store (0x00, AXC1) Store (0x01, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x01)) { Store (0x00, INAC) Store (0x02, INCH) Store (0x01, IDIS) Store (0x00, AXC0) Store (0x00, AXC1) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x02)) { Store (0x01, INAC) Store (0x01, INCH) Store (0x02, IDIS) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x03)) { Store (0x02, INCH) Store (0x01, IDIS) Store (0x00, INAC) Store (0xFA, AXC0) Store (Zero, AXC1) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x04)) { Store (0xFA, AXC0) Store (Zero, AXC1) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x05)) { Store (0x00, INAC) Store (0x03, INCH) Store (Package (0x02) { 0x00, 0x00 }, Local4) } } Else { Store (Package (0x02) { 0x34, 0x00 }, Local4) } } If (LEqual (Local1, 0x01)) { If (And (BATP, 0x02)) { Store ("battery 1", Debug) Store (DerefOf (Index (Local0, 0x11)), Local2) If (LEqual (Local2, 0x00)) { Store (0x00, INCH) Store (0x00, IDIS) Store (0x00, INAC) Store (0x00, AXC0) Store (0x00, AXC1) Store (0x01, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x01)) { Store (0x00, INAC) Store (0x01, INCH) Store (0x02, IDIS) Store (0x00, AXC0) Store (0x00, AXC1) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x02)) { Store (0x01, INAC) Store (0x02, INCH) Store (0x01, IDIS) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x03)) { Store (0x01, INCH) Store (0x02, IDIS) Store (0x00, INAC) Store (0xFA, AXC0) Store (Zero, AXC1) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x04)) { Store (0x00, INCH) Store (0x00, IDIS) Store (0x00, INAC) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x05)) { Store (0x00, INAC) Store (0x03, INCH) Store (Package (0x02) { 0x00, 0x00 }, Local4) } } Else { Store (Package (0x02) { 0x34, 0x00 }, Local4) } } } Release (ECMX) Return (Local4) } // GBTI is renamed in native DSDT so calls land here Method (GBTI, 1, NotSerialized) { Store ("Enter getbattinfo", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { If (And (BATP, ShiftLeft (0x01, Arg0))) { Store (Arg0, BSEL) Store (Package (0x03) { 0x00, 0x6B, Buffer (0x6B) {} }, Local0) Store (B1B2 (BDC0, BDC1), Index (DerefOf (Index (Local0, 0x02)), 0x00)) Store (ShiftRight (B1B2 (BDC0, BDC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x01)) Store (B1B2 (BFC0, BFC1), Index (DerefOf (Index (Local0, 0x02)), 0x02)) Store (ShiftRight (B1B2 (BFC0, BFC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x03)) Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (Local0, 0x02)), 0x04)) Store (ShiftRight (B1B2 (BRC0, BRC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x05)) Store (B1B2 (BME0, BME1), Index (DerefOf (Index (Local0, 0x02)), 0x06)) Store (ShiftRight (B1B2 (BME0, BME1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x07)) Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (Local0, 0x02)), 0x08)) Store (ShiftRight (B1B2 (BCC0, BCC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x09)) Store (B1B2 (CBT0, CBT1), Local1) Subtract (Local1, 0x0AAC, Local1) Divide (Local1, 0x0A, Local2, Local3) Store (Local3, Index (DerefOf (Index (Local0, 0x02)), 0x0A)) Store (ShiftRight (Local3, 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0B)) Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (Local0, 0x02)), 0x0C)) Store (ShiftRight (B1B2 (BPV0, BPV1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0D)) Store (B1B2 (BPR0, BPR1), Local1) If (Local1) { If (And (B1B2 (BST0, BST1), 0x40)) { Add (Not (Local1), 0x01, Local1) And (Local1, 0xFFFF, Local1) } } Store (Local1, Index (DerefOf (Index (Local0, 0x02)), 0x0E)) Store (ShiftRight (Local1, 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0F)) Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (Local0, 0x02)), 0x10)) Store (ShiftRight (B1B2 (BDV0, BDV1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x11)) Store (B1B2 (BST0, BST1), Index (DerefOf (Index (Local0, 0x02)), 0x12)) Store (ShiftRight (B1B2 (BST0, BST1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x13)) Store (B1B2 (BCX0, BCX1), Index (DerefOf (Index (Local0, 0x02)), 0x14)) Store (ShiftRight (B1B2 (BCX0, BCX1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x15)) Store (B1B2 (BCA0, BCA1), Index (DerefOf (Index (Local0, 0x02)), 0x16)) Store (ShiftRight (B1B2 (BCA0, BCA1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x17)) Store (B1B2 (BCB0, BCB1), Index (DerefOf (Index (Local0, 0x02)), 0x18)) Store (ShiftRight (B1B2 (BCB0, BCB1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x19)) Store (B1B2 (BCP0, BCP1), Index (DerefOf (Index (Local0, 0x02)), 0x1A)) Store (ShiftRight (B1B2 (BCP0, BCP1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x1B)) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (0x1C, 0x08), Multiply (0x10, 0x08), BTSN) Store (GBSS (B1B2 (BSN0, BSN1), B1B2 (BDA0, BDA1)), BTSN) Store (GBMF (), Local1) Store (SizeOf (Local1), Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (0x2C, 0x08), Multiply (Local2, 0x08), BMAN) Store (Local1, BMAN) Add (Local2, 0x2C, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x10, 0x08), CLBL) Store (GCTL (0x00), CLBL) Add (Local2, 0x11, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x07, 0x08), DNAM) Store (GDNM (0x00), DNAM) Add (Local2, 0x07, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x04, 0x08), DCHE) Store (GDCH (0x00), DCHE) Add (Local2, 0x04, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BMAC) Store (0x00, BMAC) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BMAD) Store (B1B2 (BDA0, BDA1), BMAD) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BCCU) Store (BRCC, BCCU) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BCVO) Store (BRCV, BCVO) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BAVC) Store (B1B2 (BCR0, BCR1), Local1) If (Local1) { If (And (B1B2 (BST0, BST1), 0x40)) { Add (Not (Local1), 0x01, Local1) And (Local1, 0xFFFF, Local1) } } Store (Local1, BAVC) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), RTTE) Store (B1B2 (RTE0, RTE1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), ATTE) Store (B1B2 (ATE0, ATE1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), ATTF) Store (B1B2 (ATF0, ATF1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x01, 0x08), NOBS) If (LOr (LEqual (PRDT, 0x50), LEqual (PRDT, 0x53))) { Store (0x01, NOBS) } Else { Store (0x02, NOBS) } } Else { Store (Package (0x02) { 0x34, 0x00 }, Local0) } } Else { Store (Package (0x02) { 0x0D, 0x00 }, Local0) } Release (ECMX) Return (Local0) } // GBTC is renamed in native DSDT, so calls land here Method (GBTC, 0, NotSerialized) { Store ("Enter GetBatteryControl", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Package (0x03) { 0x00, 0x04, Buffer (0x04) {} }, Local0) If (And (BATP, 0x01)) { Store (0x00, BSEL) Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x00)) If (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x00)), LEqual (IDIS, 0x00))) { Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x02)), LEqual (IDIS, 0x01)), LEqual (B1B2 (AXC0, AXC1), 0x00))) { Store (0x01, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } ElseIf (LAnd (LEqual (INAC, 0x01), LEqual (IDIS, 0x02))) { Store (0x02, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x02)), LEqual (IDIS, 0x01)), LEqual (B1B2 (AXC0, AXC1), 0xFA))) { Store (0x03, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } ElseIf (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x03))) { Store (0x04, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } } Else { Store (0xFF, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } If (And (BATP, 0x02)) { Store (0x01, BSEL) Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x01)) If (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x00)), LEqual (IDIS, 0x00))) { Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x01)), LEqual (IDIS, 0x02)), LEqual (B1B2 (AXC0, AXC1), 0x00))) { Store (0x01, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } ElseIf (LAnd (LEqual (INAC, 0x01), LEqual (IDIS, 0x01))) { Store (0x02, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x01)), LEqual (IDIS, 0x02)), LEqual (B1B2 (AXC0, AXC1), 0xFA))) { Store (0x03, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } ElseIf (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x03))) { Store (0x04, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } } Else { Store (0xFF, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } } Else { Store (Package (0x02) { 0x35, 0x00 }, Local0) } Release (ECMX) Return (Local0) } } Scope (\_SB) { // This is the replacement for native NBTI in DSDT // The NBTI in DSDT is renamed to XBTI Name (NBTI, Package(0x02) { Package(0x0F) { 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0x01, 0xFFFFFFFF, 0x00, 0x00, 0x64, 0x64, "Primary", "100000", "LIon", "Hewlett-Packard", Zero, Zero, }, Package(0x0F) { 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0x01, 0xFFFFFFFF, 0x00, 0x00, 0x64, 0x64, "Travel", "100000", "LIon", "Hewlett-Packard", Zero, Zero, } }) } Method (B1B2, 2, NotSerialized) { ShiftLeft (Arg1, 8, Local0) Or (Arg0, Local0, Local0) Return (Local0) } //} //EOF ================================================ FILE: hotpatch/SSDT-BATT-G3.asl ================================================ // battery status patched for ProBook G3 (Skylake) laptops //REVIEW: currently not used, as BIOS seems to be updated to the SSDT-BATT-G4.asl code // This file can eventually be removed. //DefinitionBlock("", "SSDT", 2, "hack", "battg3", 0) //{ External(\_SB.PCI0, DeviceObj) External(\_SB.PCI0.LPCB, DeviceObj) External(\_SB.PCI0.LPCB.EC, DeviceObj) Scope(\_SB.PCI0.LPCB.EC) { // This is an override for battery methods that access EC fields // larger than 8-bit. OperationRegion (ECR2, EmbeddedControl, 0x00, 0xFF) Field (ECR2, ByteAcc, NoLock, Preserve) { Offset (0x87), ,8,//LB1, 8, ,8,//LB2, 8, BDC0, 8, BDC1, 8, Offset (0x8D), BFC0, 8, BFC1, 8, RTE0, 8, RTE1, 8, //BTC, 1, Offset (0x92), BME0, 8, BME1, 8, ,8,//BDN, 8, BDV0, 8, BDV1, 8, BCX0, 8, BCX1, 8, //BST, 4, Offset (0x9B), ATE0, 8, ATE1, 8, BPR0, 8, BPR1, 8, BCR0, 8, BCR1, 8, BRC0, 8, BRC1, 8, BCC0, 8, BCC1, 8, BPV0, 8, BPV1, 8, BCA0, 8, BCA1, 8, BCB0, 8, BCB1, 8, BCP0, 8, BCP1, 8, ,16,//BCW, 16, ATF0, 8, ATF1, 8, ,16,//BCL, 16, AXC0, 8, AXC1, 8, ,8,//BCG1, 8, ,1,//BT1I, 1, ,1,//BT2I, 1, ,2,//, 2, ,4,//BATN, 4, BST0, 8, BST1, 8, //... Offset (0xC9), BSN0, 8, BSN1, 8, BDA0, 8, BDA1, 8, //BMF, 8, //Offset (0xCF), //CTLB, 8, //Offset (0xD1), //BTY, 8, //Offset (0xD5), //MFAC, 8,//d5 //CFAN, 8,//d6 //PFAN, 8,//d7 //OCPS, 8,//d8 //OCPR, 8,//d9 //OCPE, 8,//da //TMP1, 8,//db //TMP2, 8,//dc //NABT, 4,//dd //BCM, 4, //CCBQ, 16,//de Offset(0xe0), CBT0, 8, CBT1, 8, //... } External(\_SB.PCI0.LPCB.EC.BTDR, MethodObj) External(\_SB.PCI0.LPCB.EC.BSTA, MethodObj) External(\_SB.PCI0.LPCB.EC.BTMX, MutexObj) External(\_SB.PCI0.LPCB.EC.NGBF, IntObj) External(\_SB.PCI0.LPCB.EC.NGBT, IntObj) External(\_SB.NBST, PkgObj) External(\_SB.NDBS, PkgObj) External(\_SB.PCI0.LPCB.EC.ECMX, MutexObj) External(\_SB.PCI0.LPCB.EC.ECRG, IntObj) External(\_SB.PCI0.LPCB.EC.BSEL, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.NLB1, IntObj) External(\_SB.PCI0.LPCB.EC.NLB2, IntObj) External(\_SB.PCI0.LPCB.EC.CRZN, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.TEMP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GBSS, MethodObj) External(\_SB.PCI0.LPCB.EC.BST, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GACS, MethodObj) External(\_SB.PCI0.LPCB.EC.NDCB, IntObj) External(\_SB.PCI0.LPCB.EC.BATP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.INCH, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.IDIS, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.INAC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.PSSB, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GBMF, MethodObj) External(\_SB.PCI0.LPCB.EC.GCTL, MethodObj) External(\_SB.PCI0.LPCB.EC.GDNM, MethodObj) External(\_SB.PCI0.LPCB.EC.GDCH, MethodObj) External(\_SB.PCI0.LPCB.EC.BRCC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.BRCV, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.BATN, FieldUnitObj) // ITLB is renamed to ITL1 for other models... delegation necessary External(\_SB.PCI0.LPCB.EC.ITL1, MethodObj) Method(ITLB, 0) { ITL1() } // BTIF/BTST methods are renamed in native DSDT, so calls land here... Method (BTIF, 1, Serialized) { ShiftLeft (One, Arg0, Local7) BTDR (One) If (LEqual (BSTA (Local7), 0x0F)) { Return (0xFF) } Acquire (BTMX, 0xFFFF) Store (NGBF, Local0) Release (BTMX) If (LEqual (And (Local0, Local7), Zero)) { Return (Zero) } Store (NDBS, Index (NBST, Arg0)) Acquire (BTMX, 0xFFFF) Or (NGBT, Local7, NGBT) Release (BTMX) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg0, BSEL) Store (B1B2 (BFC0, BFC1), Local0) Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), One)) Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), 0x02)) Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (NBTI, Arg0)), 0x04)) Store (NLB1, Index (DerefOf (Index (NBTI, Arg0)), 0x05)) Store (NLB2, Index (DerefOf (Index (NBTI, Arg0)), 0x06)) Store (B1B2 (BSN0, BSN1), Local0) Store (B1B2 (BDA0, BDA1), Local1) // battery cycle count Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (NBTI, Arg0)), 0x0D)) // battery temperature Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) Store (5, \_SB.PCI0.LPCB.EC.CRZN) Store (\_SB.PCI0.LPCB.EC.TEMP, Local2) Release (\_SB.PCI0.LPCB.EC.ECMX) Add (Multiply (Local2, 10), 2732, Local2) // Celsius to .1K Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0E)) } Release (ECMX) Store (GBSS (Local0, Local1), Local2) Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0A)) Acquire (BTMX, 0xFFFF) And (NGBF, Not (Local7), NGBF) Release (BTMX) Return (Zero) } Method (BTST, 2, Serialized) { ShiftLeft (One, Arg0, Local7) BTDR (One) If (LEqual (BSTA (Local7), 0x0F)) { Store (Package (0x04) { Zero, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }, Index (NBST, Arg0)) Return (0xFF) } Acquire (BTMX, 0xFFFF) If (Arg1) { Store (0xFF, NGBT) } Store (NGBT, Local0) Release (BTMX) If (LEqual (And (Local0, Local7), Zero)) { Return (Zero) } Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg0, BSEL) Store (BST, Local0) Store (B1B2 (BPR0, BPR1), Local3) Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (NBST, Arg0)), 0x02)) Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (NBST, Arg0)), 0x03)) } Release (ECMX) If (LEqual (GACS (), One)) { And (0xFFFFFFFFFFFFFFFE, Local0, Local0) } Else { And (0xFFFFFFFFFFFFFFFD, Local0, Local0) } If (And (Local0, One)) { Acquire (BTMX, 0xFFFF) Store (Local7, NDCB) Release (BTMX) } Store (Local0, Index (DerefOf (Index (NBST, Arg0)), Zero)) If (And (Local0, One)) { If (LOr (LLess (Local3, 0x0190), LGreater (Local3, 0x1964))) { Store (DerefOf (Index (DerefOf (Index (NBST, Arg0)), One)), Local5) If (LOr (LLess (Local5, 0x0190), LGreater (Local5, 0x1964))) { Store (0x0D7A, Local3) } Else { Store (Local5, Local3) } } } ElseIf (LEqual (And (Local0, 0x02), Zero)) { Store (Zero, Local3) } Store (Local3, Index (DerefOf (Index (NBST, Arg0)), One)) Acquire (BTMX, 0xFFFF) And (NGBT, Not (Local7), NGBT) Release (BTMX) Return (Zero) } // SBTC is renamed in native DSDT so calls land here Method (SBTC, 3, NotSerialized) { Store ("Enter SetBatteryControl", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg2, Local0) Store (Local0, Debug) Store (Package (0x01) { 0x06 }, Local4) Store (Zero, Local1) Store (Zero, Local2) Store (DerefOf (Index (Local0, Zero)), Local1) If (LEqual (Local1, Zero)) { Store ("battery 0", Debug) If (And (BATP, One)) { Store (DerefOf (Index (Local0, One)), Local2) If (LEqual (Local2, Zero)) { Store (Zero, INCH) Store (Zero, IDIS) Store (Zero, INAC) Store (Zero, AXC0) Store (Zero, AXC1) Store (One, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, One)) { Store (Zero, INAC) Store (0x02, INCH) Store (One, IDIS) Store (Zero, AXC0) Store (Zero, AXC1) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x02)) { Store (One, INAC) Store (One, INCH) Store (0x02, IDIS) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x03)) { Store (0x02, INCH) Store (One, IDIS) Store (Zero, INAC) Store (0xFA, AXC0) Store (Zero, AXC1) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x04)) { Store (0xFA, AXC0) Store (Zero, AXC1) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x05)) { Store (Zero, INAC) Store (0x03, INCH) Store (Package (0x01) { Zero }, Local4) } } Else { Store (Package (0x01) { 0x34 }, Local4) } } If (LEqual (Local1, One)) { If (And (BATP, 0x02)) { Store ("battery 1", Debug) Store (DerefOf (Index (Local0, One)), Local2) If (LEqual (Local2, Zero)) { Store (Zero, INCH) Store (Zero, IDIS) Store (Zero, INAC) Store (Zero, AXC0) Store (Zero, AXC1) Store (One, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, One)) { Store (Zero, INAC) Store (One, INCH) Store (0x02, IDIS) Store (Zero, AXC0) Store (Zero, AXC1) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x02)) { Store (One, INAC) Store (0x02, INCH) Store (One, IDIS) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x03)) { Store (One, INCH) Store (0x02, IDIS) Store (Zero, INAC) Store (0xFA, AXC0) Store (Zero, AXC1) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x04)) { Store (Zero, INCH) Store (Zero, IDIS) Store (Zero, INAC) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x05)) { Store (Zero, INAC) Store (0x03, INCH) Store (Package (0x01) { Zero }, Local4) } } Else { Store (Package (0x01) { 0x34 }, Local4) } } } Release (ECMX) Return (Local4) } // GBTI is renamed in native DSDT so calls land here Method (GBTI, 1, NotSerialized) { Store ("Enter getbattinfo", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { If (And (BATP, ShiftLeft (One, Arg0))) { Store (Arg0, BSEL) Store (Package (0x02) { Zero, Buffer (0x6B) {} }, Local0) Store (B1B2 (BDC0, BDC1), Index (DerefOf (Index (Local0, One)), Zero)) Store (ShiftRight (B1B2 (BDC0, BDC1), 0x08), Index (DerefOf (Index (Local0, One)), One)) Store (B1B2 (BFC0, BFC1), Index (DerefOf (Index (Local0, One)), 0x02)) Store (ShiftRight (B1B2 (BFC0, BFC1), 0x08), Index (DerefOf (Index (Local0, One)), 0x03)) Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (Local0, One)), 0x04)) Store (ShiftRight (B1B2 (BRC0, BRC1), 0x08), Index (DerefOf (Index (Local0, One)), 0x05)) Store (B1B2 (BME0, BME1), Index (DerefOf (Index (Local0, One)), 0x06)) Store (ShiftRight (B1B2 (BME0, BME1), 0x08), Index (DerefOf (Index (Local0, One)), 0x07)) Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (Local0, One)), 0x08)) Store (ShiftRight (B1B2 (BCC0, BCC1), 0x08), Index (DerefOf (Index (Local0, One)), 0x09)) Store (B1B2 (CBT0, CBT1), Local1) Subtract (Local1, 0x0AAC, Local1) Divide (Local1, 0x0A, Local2, Local3) Store (Local3, Index (DerefOf (Index (Local0, One)), 0x0A)) Store (ShiftRight (Local3, 0x08), Index (DerefOf (Index (Local0, One)), 0x0B)) Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (Local0, One)), 0x0C)) Store (ShiftRight (B1B2 (BPV0, BPV1), 0x08), Index (DerefOf (Index (Local0, One)), 0x0D)) Store (B1B2 (BPR0, BPR1), Local1) If (Local1) { If (And (B1B2 (BST0, BST1), 0x40)) { Add (Not (Local1), One, Local1) And (Local1, 0xFFFF, Local1) } } Store (Local1, Index (DerefOf (Index (Local0, One)), 0x0E)) Store (ShiftRight (Local1, 0x08), Index (DerefOf (Index (Local0, One)), 0x0F)) Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (Local0, One)), 0x10)) Store (ShiftRight (B1B2 (BDV0, BDV1), 0x08), Index (DerefOf (Index (Local0, One)), 0x11)) Store (B1B2 (BST0, BST1), Index (DerefOf (Index (Local0, One)), 0x12)) Store (ShiftRight (B1B2 (BST0, BST1), 0x08), Index (DerefOf (Index (Local0, One)), 0x13)) Store (B1B2 (BCX0, BCX1), Index (DerefOf (Index (Local0, One)), 0x14)) Store (ShiftRight (B1B2 (BCX0, BCX1), 0x08), Index (DerefOf (Index (Local0, One)), 0x15)) Store (B1B2 (BCA0, BCA1), Index (DerefOf (Index (Local0, One)), 0x16)) Store (ShiftRight (B1B2 (BCA0, BCA1), 0x08), Index (DerefOf (Index (Local0, One)), 0x17)) Store (B1B2 (BCB0, BCB1), Index (DerefOf (Index (Local0, One)), 0x18)) Store (ShiftRight (B1B2 (BCB0, BCB1), 0x08), Index (DerefOf (Index (Local0, One)), 0x19)) Store (B1B2 (BCP0, BCP1), Index (DerefOf (Index (Local0, One)), 0x1A)) Store (ShiftRight (B1B2 (BCP0, BCP1), 0x08), Index (DerefOf (Index (Local0, One)), 0x1B)) CreateField (DerefOf (Index (Local0, One)), 0xE0, 0x80, BTSN) Store (GBSS (B1B2 (BSN0, BSN1), B1B2 (BDA0, BDA1)), BTSN) Store (GBMF (), Local1) Store (SizeOf (Local1), Local2) CreateField (DerefOf (Index (Local0, One)), 0x0160, Multiply (Local2, 0x08), BMAN) Store (Local1, BMAN) Add (Local2, 0x2C, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x80, CLBL) Store (GCTL (Zero), CLBL) Add (Local2, 0x11, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x38, DNAM) Store (GDNM (Zero), DNAM) Add (Local2, 0x07, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x20, DCHE) Store (GDCH (Zero), DCHE) Add (Local2, 0x04, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, BMAC) Store (Zero, BMAC) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, BMAD) Store (B1B2 (BDA0, BDA1), BMAD) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, BCCU) Store (BRCC, BCCU) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, BCVO) Store (BRCV, BCVO) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, BAVC) Store (B1B2 (BCR0, BCR1), Local1) If (Local1) { If (And (B1B2 (BST0, BST1), 0x40)) { Add (Not (Local1), One, Local1) And (Local1, 0xFFFF, Local1) } } Store (Local1, BAVC) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, RTTE) Store (B1B2 (RTE0, RTE1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, ATTE) Store (B1B2 (ATE0, ATE1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, ATTF) Store (B1B2 (ATF0, ATF1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x08, NOBS) Store (BATN, NOBS) } Else { Store (Package (0x01) { 0x34 }, Local0) } } Else { Store (Package (0x01) { 0x0D }, Local0) } Release (ECMX) Return (Local0) } // GBTC is renamed in native DSDT, so calls land here Method (GBTC, 0, NotSerialized) { Store ("Enter GetBatteryControl", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Package (0x02) { Zero, Buffer (0x04) {} }, Local0) If (And (BATP, One)) { Store (Zero, BSEL) Store (Zero, Index (DerefOf (Index (Local0, One)), Zero)) If (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, Zero)), LEqual (IDIS, Zero))) { Store (Zero, Index (DerefOf (Index (Local0, One)), Zero)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, 0x02)), LEqual (IDIS, One)), LEqual (B1B2 (AXC0, AXC1), Zero))) { Store (One, Index (DerefOf (Index (Local0, One)), Zero)) } ElseIf (LAnd (LEqual (INAC, One), LEqual (IDIS, 0x02))) { Store (0x02, Index (DerefOf (Index (Local0, One)), Zero)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, 0x02)), LEqual (IDIS, One)), LEqual (B1B2 (AXC0, AXC1), 0xFA))) { Store (0x03, Index (DerefOf (Index (Local0, One)), Zero)) } ElseIf (LAnd (LEqual (INAC, Zero), LEqual (INCH, 0x03))) { Store (0x04, Index (DerefOf (Index (Local0, One)), Zero)) } } Else { Store (0xFF, Index (DerefOf (Index (Local0, One)), Zero)) } If (And (BATP, 0x02)) { Store (One, BSEL) Store (Zero, Index (DerefOf (Index (Local0, One)), One)) If (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, Zero)), LEqual (IDIS, Zero))) { Store (Zero, Index (DerefOf (Index (Local0, One)), One)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, One)), LEqual (IDIS, 0x02)), LEqual (B1B2 (AXC0, AXC1), Zero))) { Store (One, Index (DerefOf (Index (Local0, One)), One)) } ElseIf (LAnd (LEqual (INAC, One), LEqual (IDIS, One))) { Store (0x02, Index (DerefOf (Index (Local0, One)), One)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, One)), LEqual (IDIS, 0x02)), LEqual (B1B2 (AXC0, AXC1), 0xFA))) { Store (0x03, Index (DerefOf (Index (Local0, One)), One)) } ElseIf (LAnd (LEqual (INAC, Zero), LEqual (INCH, 0x03))) { Store (0x04, Index (DerefOf (Index (Local0, One)), One)) } } Else { Store (0xFF, Index (DerefOf (Index (Local0, One)), One)) } } Else { Store (Package (0x02) { 0x35, Zero }, Local0) } Release (ECMX) Return (Local0) } } Scope (\_SB) { // This is the replacement for native NBTI in DSDT // The NBTI in DSDT is renamed to XBTI Name (NBTI, Package(0x02) { Package(0x0F) { 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0x01, 0xFFFFFFFF, 0x00, 0x00, 0x64, 0x64, "Primary", "100000", "LIon", "Hewlett-Packard", Zero, Zero, }, Package(0x0F) { 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0x01, 0xFFFFFFFF, 0x00, 0x00, 0x64, 0x64, "Travel", "100000", "LIon", "Hewlett-Packard", Zero, Zero, } }) } Method (B1B2, 2, NotSerialized) { ShiftLeft (Arg1, 8, Local0) Or (Arg0, Local0, Local0) Return (Local0) } //} //EOF ================================================ FILE: hotpatch/SSDT-BATT-G4.asl ================================================ // battery status patched for ProBook G4 (KabyLake) laptops //DefinitionBlock("", "SSDT", 2, "hack", "battg4", 0) //{ External(\_SB.PCI0, DeviceObj) External(\_SB.PCI0.LPCB, DeviceObj) External(\_SB.PCI0.LPCB.EC, DeviceObj) Scope(\_SB.PCI0.LPCB.EC) { // This is an override for battery methods that access EC fields // larger than 8-bit. OperationRegion (ECR2, EmbeddedControl, 0x00, 0xFF) Field (ECR2, ByteAcc, NoLock, Preserve) { Offset (0x87), ,8,//LB1, 8, ,8,//LB2, 8, BDC0, 8, BDC1, 8, Offset (0x8D), BFC0, 8, BFC1, 8, RTE0, 8, RTE1, 8, //BTC, 1, Offset (0x92), BME0, 8, BME1, 8, ,8,//BDN, 8, BDV0, 8, BDV1, 8, BCX0, 8, BCX1, 8, //BST, 4, Offset (0x9B), ATE0, 8, ATE1, 8, BPR0, 8, BPR1, 8, BCR0, 8, BCR1, 8, BRC0, 8, BRC1, 8, BCC0, 8, BCC1, 8, BPV0, 8, BPV1, 8, BCA0, 8, BCA1, 8, BCB0, 8, BCB1, 8, BCP0, 8, BCP1, 8, ,16,//BCW, 16, ATF0, 8, ATF1, 8, ,16,//BCL, 16, AXC0, 8, AXC1, 8, ,8,//BCG1, 8, ,1,//BT1I, 1, ,1,//BT2I, 1, ,2,//, 2, ,4,//BATN, 4, BST0, 8, BST1, 8, //... Offset (0xC9), BSN0, 8, BSN1, 8, BDA0, 8, BDA1, 8, //BMF, 8, //Offset (0xCF), //CTLB, 8, //Offset (0xD1), //BTY, 8, //Offset (0xD5), //MFAC, 8,//d5 //CFAN, 8,//d6 //PFAN, 8,//d7 //OCPS, 8,//d8 //OCPR, 8,//d9 //OCPE, 8,//da //TMP1, 8,//db //TMP2, 8,//dc //NABT, 4,//dd //BCM, 4, //CCBQ, 16,//de Offset(0xe0), CBT0, 8, CBT1, 8, //... Offset (0xF6), ,8,//AAPI, 8, ,8,//ACSE, 8, ,8,//ACIX, 8, ACP0,8,ACP1,8,//ACPR, 16, } External(\_SB.PCI0.LPCB.EC.BTDR, MethodObj) External(\_SB.PCI0.LPCB.EC.BSTA, MethodObj) External(\_SB.PCI0.LPCB.EC.BTMX, MutexObj) External(\_SB.PCI0.LPCB.EC.NGBF, IntObj) External(\_SB.PCI0.LPCB.EC.NGBT, IntObj) External(\_SB.NBST, PkgObj) External(\_SB.NDBS, PkgObj) External(\_SB.PCI0.LPCB.EC.ECMX, MutexObj) External(\_SB.PCI0.LPCB.EC.ECRG, IntObj) External(\_SB.PCI0.LPCB.EC.BSEL, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.NLB1, IntObj) External(\_SB.PCI0.LPCB.EC.NLB2, IntObj) External(\_SB.PCI0.LPCB.EC.CRZN, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.TEMP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GBSS, MethodObj) External(\_SB.PCI0.LPCB.EC.BST, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GACS, MethodObj) External(\_SB.PCI0.LPCB.EC.NDCB, IntObj) External(\_SB.PCI0.LPCB.EC.BATP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.INCH, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.IDIS, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.INAC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.PSSB, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GBMF, MethodObj) External(\_SB.PCI0.LPCB.EC.GCTL, MethodObj) External(\_SB.PCI0.LPCB.EC.GDNM, MethodObj) External(\_SB.PCI0.LPCB.EC.GDCH, MethodObj) External(\_SB.PCI0.LPCB.EC.BRCC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.BRCV, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.BATN, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.NLO2, IntObj) External(\_SB.PCI0.LPCB.EC.LB1, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.LB2, FieldUnitObj) // Methods BTIF, BTST, ITLB, GBTI, GBTC are renamed in native DSDT // calls from DSDT land here in the patched methods... Method (BTIF, 1, Serialized) { ShiftLeft (One, Arg0, Local7) BTDR (One) If (LEqual (BSTA (Local7), 0x0F)) { Return (0xFF) } Acquire (BTMX, 0xFFFF) Store (NGBF, Local0) Release (BTMX) If (LEqual (And (Local0, Local7), Zero)) { Return (Zero) } Store (NDBS, Index (NBST, Arg0)) Acquire (BTMX, 0xFFFF) Or (NGBT, Local7, NGBT) Release (BTMX) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg0, BSEL) Store (B1B2 (BFC0, BFC1), Local0) Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), One)) Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), 0x02)) Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (NBTI, Arg0)), 0x04)) Multiply (B1B2 (BFC0, BFC1), NLB1, Local0) Divide (Local0, 0x64, /*Local3*/, Local4) Store (Local4, Index (DerefOf (Index (NBTI, Arg0)), 0x05)) Multiply (B1B2 (BFC0, BFC1), NLO2, Local0) Divide (Local0, 0x64, /*Local3*/, Local4) Store (Local4, Index (DerefOf (Index (NBTI, Arg0)), 0x06)) Store (B1B2 (BSN0, BSN1), Local0) Store (B1B2 (BDA0, BDA1), Local1) // battery cycle count Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (NBTI, Arg0)), 0x0D)) // battery temperature // battery temperature //Store (\_TZ.GTTP (0x04, 0x05, Zero, Zero, 0x7F), Local2) Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) Store (5, \_SB.PCI0.LPCB.EC.CRZN) Store (\_SB.PCI0.LPCB.EC.TEMP, Local2) Release (\_SB.PCI0.LPCB.EC.ECMX) Add (Multiply (Local2, 10), 2732, Local2) // Celsius to .1K Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0E)) } Release (ECMX) Store (GBSS (Local0, Local1), Local2) Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0A)) Acquire (BTMX, 0xFFFF) And (NGBF, Not (Local7), NGBF) Release (BTMX) Return (Zero) } Method (BTST, 2, Serialized) { ShiftLeft (One, Arg0, Local7) BTDR (One) If (LEqual (BSTA (Local7), 0x0F)) { Store (Package (0x04) { Zero, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }, Index (NBST, Arg0)) Return (0xFF) } Acquire (BTMX, 0xFFFF) If (Arg1) { Store (0xFF, NGBT) } Store (NGBT, Local0) Release (BTMX) If (LEqual (And (Local0, Local7), Zero)) { Return (Zero) } Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg0, BSEL) Store (BST, Local0) Store (B1B2 (BPR0, BPR1), Local3) Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (NBST, Arg0)), 0x02)) Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (NBST, Arg0)), 0x03)) } Release (ECMX) If (LEqual (GACS (), One)) { And (0xFFFFFFFFFFFFFFFE, Local0, Local0) } Else { And (0xFFFFFFFFFFFFFFFD, Local0, Local0) } If (And (Local0, One)) { Acquire (BTMX, 0xFFFF) Store (Local7, NDCB) Release (BTMX) } Store (Local0, Index (DerefOf (Index (NBST, Arg0)), Zero)) If (And (Local0, One)) { If (LOr (LLess (Local3, 0x0190), LGreater (Local3, 0x1964))) { Store (DerefOf (Index (DerefOf (Index (NBST, Arg0)), One)), Local5) If (LOr (LLess (Local5, 0x0190), LGreater (Local5, 0x1964))) { Store (0x0D7A, Local3) } Else { Store (Local5, Local3) } } } ElseIf (LEqual (And (Local0, 0x02), Zero)) { Store (Zero, Local3) } Store (Local3, Index (DerefOf (Index (NBST, Arg0)), One)) Acquire (BTMX, 0xFFFF) And (NGBT, Not (Local7), NGBT) Release (BTMX) Return (Zero) } Method (ITLB, 0, NotSerialized) { Multiply (B1B2 (BFC0, BFC1), NLB1, Local0) Divide (Local0, 0x64, /*Local3*/, Local4) Divide (Add (Local4, 0x09), 0x0A, Local0, Local1) Multiply (B1B2 (BFC0, BFC1), NLB2, Local0) Divide (Local0, 0x64, /*Local3*/, Local4) Divide (Add (Local4, 0x09), 0x0A, Local0, Local2) If (ECRG) { Store (Local1, LB1) Store (Local2, LB2) } } Method (GBTI, 1, NotSerialized) { Store ("Enter getbattinfo", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { If (And (BATP, ShiftLeft (One, Arg0))) { Store (Arg0, BSEL) Store (Package (0x02) { Zero, Buffer (0x6B) {} }, Local0) Store (B1B2 (BDC0, BDC1), Index (DerefOf (Index (Local0, One)), Zero)) Store (ShiftRight (B1B2 (BDC0, BDC1), 0x08), Index (DerefOf (Index (Local0, One)), One)) Store (B1B2 (BFC0, BFC1), Index (DerefOf (Index (Local0, One)), 0x02)) Store (ShiftRight (B1B2 (BFC0, BFC1), 0x08), Index (DerefOf (Index (Local0, One)), 0x03)) Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (Local0, One)), 0x04)) Store (ShiftRight (B1B2 (BRC0, BRC1), 0x08), Index (DerefOf (Index (Local0, One)), 0x05)) Store (B1B2 (BME0, BME1), Index (DerefOf (Index (Local0, One)), 0x06)) Store (ShiftRight (B1B2 (BME0, BME1), 0x08), Index (DerefOf (Index (Local0, One)), 0x07)) Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (Local0, One)), 0x08)) Store (ShiftRight (B1B2 (BCC0, BCC1), 0x08), Index (DerefOf (Index (Local0, One)), 0x09)) Store (B1B2 (CBT0, CBT1), Local1) Subtract (Local1, 0x0AAC, Local1) Divide (Local1, 0x0A, Local2, Local3) Store (Local3, Index (DerefOf (Index (Local0, One)), 0x0A)) Store (ShiftRight (Local3, 0x08), Index (DerefOf (Index (Local0, One)), 0x0B)) Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (Local0, One)), 0x0C)) Store (ShiftRight (B1B2 (BPV0, BPV1), 0x08), Index (DerefOf (Index (Local0, One)), 0x0D)) Store (B1B2 (BPR0, BPR1), Local1) If (Local1) { If (And (B1B2 (BST0, BST1), 0x40)) { Add (Not (Local1), One, Local1) And (Local1, 0xFFFF, Local1) } } Store (Local1, Index (DerefOf (Index (Local0, One)), 0x0E)) Store (ShiftRight (Local1, 0x08), Index (DerefOf (Index (Local0, One)), 0x0F)) Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (Local0, One)), 0x10)) Store (ShiftRight (B1B2 (BDV0, BDV1), 0x08), Index (DerefOf (Index (Local0, One)), 0x11)) Store (B1B2 (BST0, BST1), Index (DerefOf (Index (Local0, One)), 0x12)) Store (ShiftRight (B1B2 (BST0, BST1), 0x08), Index (DerefOf (Index (Local0, One)), 0x13)) Store (B1B2 (BCX0, BCX1), Index (DerefOf (Index (Local0, One)), 0x14)) Store (ShiftRight (B1B2 (BCX0, BCX1), 0x08), Index (DerefOf (Index (Local0, One)), 0x15)) Store (B1B2 (BCA0, BCA1), Index (DerefOf (Index (Local0, One)), 0x16)) Store (ShiftRight (B1B2 (BCA0, BCA1), 0x08), Index (DerefOf (Index (Local0, One)), 0x17)) Store (B1B2 (BCB0, BCB1), Index (DerefOf (Index (Local0, One)), 0x18)) Store (ShiftRight (B1B2 (BCB0, BCB1), 0x08), Index (DerefOf (Index (Local0, One)), 0x19)) Store (B1B2 (BCP0, BCP1), Index (DerefOf (Index (Local0, One)), 0x1A)) Store (ShiftRight (B1B2 (BCP0, BCP1), 0x08), Index (DerefOf (Index (Local0, One)), 0x1B)) CreateField (DerefOf (Index (Local0, One)), 0xE0, 0x80, BTSN) Store (GBSS (B1B2 (BSN0, BSN1), B1B2 (BDA0, BDA1)), BTSN) Store (GBMF (), Local1) Store (SizeOf (Local1), Local2) CreateField (DerefOf (Index (Local0, One)), 0x0160, Multiply (Local2, 0x08), BMAN) Store (Local1, BMAN) Add (Local2, 0x2C, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x80, CLBL) Store (GCTL (Zero), CLBL) Add (Local2, 0x11, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x38, DNAM) Store (GDNM (Zero), DNAM) Add (Local2, 0x07, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x20, DCHE) Store (GDCH (Zero), DCHE) Add (Local2, 0x04, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, BMAC) Store (Zero, BMAC) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, BMAD) Store (B1B2 (BDA0, BDA1), BMAD) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, BCCU) Store (BRCC, BCCU) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, BCVO) Store (BRCV, BCVO) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, BAVC) Store (B1B2 (BCR0, BCR1), Local1) If (Local1) { If (And (B1B2 (BST0, BST1), 0x40)) { Add (Not (Local1), One, Local1) And (Local1, 0xFFFF, Local1) } } Store (Local1, BAVC) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, RTTE) Store (B1B2 (RTE0, RTE1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, ATTE) Store (B1B2 (ATE0, ATE1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x10, ATTF) Store (B1B2 (ATF0, ATF1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, One)), Multiply (Local2, 0x08), 0x08, NOBS) Store (BATN, NOBS) } Else { Store (Package (0x01) { 0x34 }, Local0) } } Else { Store (Package (0x01) { 0x0D }, Local0) } Release (ECMX) Return (Local0) } Method (GBTC, 0, NotSerialized) { Store ("Enter GetBatteryControl", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Package (0x02) { Zero, Buffer (0x04) {} }, Local0) If (And (BATP, One)) { Store (Zero, BSEL) Store (Zero, Index (DerefOf (Index (Local0, One)), Zero)) If (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, Zero)), LEqual (IDIS, Zero))) { Store (Zero, Index (DerefOf (Index (Local0, One)), Zero)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, 0x02)), LEqual (IDIS, One)), LEqual (B1B2 (AXC0, AXC1), Zero))) { Store (One, Index (DerefOf (Index (Local0, One)), Zero)) } ElseIf (LAnd (LEqual (INAC, One), LEqual (IDIS, 0x02))) { Store (0x02, Index (DerefOf (Index (Local0, One)), Zero)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, 0x02)), LEqual (IDIS, One)), LEqual (B1B2 (AXC0, AXC1), 0xFA))) { Store (0x03, Index (DerefOf (Index (Local0, One)), Zero)) } ElseIf (LAnd (LEqual (INAC, Zero), LEqual (INCH, 0x03))) { Store (0x04, Index (DerefOf (Index (Local0, One)), Zero)) } } Else { Store (0xFF, Index (DerefOf (Index (Local0, One)), Zero)) } If (And (BATP, 0x02)) { Store (One, BSEL) Store (Zero, Index (DerefOf (Index (Local0, One)), One)) If (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, Zero)), LEqual (IDIS, Zero))) { Store (Zero, Index (DerefOf (Index (Local0, One)), One)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, One)), LEqual (IDIS, 0x02)), LEqual (B1B2 (AXC0, AXC1), Zero))) { Store (One, Index (DerefOf (Index (Local0, One)), One)) } ElseIf (LAnd (LEqual (INAC, One), LEqual (IDIS, One))) { Store (0x02, Index (DerefOf (Index (Local0, One)), One)) } ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, Zero), LEqual (INCH, One)), LEqual (IDIS, 0x02)), LEqual (B1B2 (AXC0, AXC1), 0xFA))) { Store (0x03, Index (DerefOf (Index (Local0, One)), One)) } ElseIf (LAnd (LEqual (INAC, Zero), LEqual (INCH, 0x03))) { Store (0x04, Index (DerefOf (Index (Local0, One)), One)) } } Else { Store (0xFF, Index (DerefOf (Index (Local0, One)), One)) } } Else { Store (Package (0x02) { 0x35, Zero }, Local0) } Release (ECMX) Return (Local0) } Method (GACW, 0, NotSerialized) { Store (Zero, Local0) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (B1B2(ACP0,ACP1), Local0) } Release (ECMX) Return (Local0) } Method (GBAW, 0, NotSerialized) { Store (Zero, Local0) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (B1B2(BDV0,BDV1), Local1) Store (B1B2(BDC0,BDC1), Local2) Multiply (Local1, Local2, Local0) Divide (Local0, 0x000F4240, Local3, Local0) If (LGreaterEqual (Local3, 0x0007A120)) { Increment (Local0) } } Release (ECMX) Return (Local0) } Method (SBTC, 3, NotSerialized) { Store ("Enter SetBatteryControl", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg2, Local0) Store (Local0, Debug) Store (Package (0x01) { 0x06 }, Local4) Store (Zero, Local1) Store (Zero, Local2) Store (DerefOf (Index (Local0, Zero)), Local1) If (LEqual (Local1, Zero)) { Store ("battery 0", Debug) If (And (BATP, One)) { Store (DerefOf (Index (Local0, One)), Local2) If (LEqual (Local2, Zero)) { Store (Zero, INCH) Store (Zero, IDIS) Store (Zero, INAC) Store (Zero, AXC0) Store (Zero, AXC1) Store (One, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, One)) { Store (Zero, INAC) Store (0x02, INCH) Store (One, IDIS) Store (Zero, AXC0) Store (Zero, AXC1) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x02)) { Store (One, INAC) Store (One, INCH) Store (0x02, IDIS) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x03)) { Store (0x02, INCH) Store (One, IDIS) Store (Zero, INAC) Store (0xFA, AXC0) Store (Zero, AXC1) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x04)) { Store (0xFA, AXC0) Store (Zero, AXC1) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x05)) { Store (Zero, INAC) Store (0x03, INCH) Store (Package (0x01) { Zero }, Local4) } } Else { Store (Package (0x01) { 0x34 }, Local4) } } If (LEqual (Local1, One)) { If (And (BATP, 0x02)) { Store ("battery 1", Debug) Store (DerefOf (Index (Local0, One)), Local2) If (LEqual (Local2, Zero)) { Store (Zero, INCH) Store (Zero, IDIS) Store (Zero, INAC) Store (Zero, AXC0) Store (Zero, AXC1) Store (One, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, One)) { Store (Zero, INAC) Store (One, INCH) Store (0x02, IDIS) Store (Zero, AXC0) Store (Zero, AXC1) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x02)) { Store (One, INAC) Store (0x02, INCH) Store (One, IDIS) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x03)) { Store (One, INCH) Store (0x02, IDIS) Store (Zero, INAC) Store (0xFA, AXC0) Store (Zero, AXC1) Store (Zero, PSSB) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x04)) { Store (Zero, INCH) Store (Zero, IDIS) Store (Zero, INAC) Store (Package (0x01) { Zero }, Local4) } If (LEqual (Local2, 0x05)) { Store (Zero, INAC) Store (0x03, INCH) Store (Package (0x01) { Zero }, Local4) } } Else { Store (Package (0x01) { 0x34 }, Local4) } } } Release (ECMX) Return (Local4) } } Scope (\_SB) { // This is the replacement for native NBTI in DSDT // The NBTI in DSDT is renamed to XBTI Name (NBTI, Package(0x02) { Package(0x0F) { 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0x01, 0xFFFFFFFF, 0x00, 0x00, 0x64, 0x64, "Primary", "100000", "LIon", "Hewlett-Packard", Zero, Zero, }, Package(0x0F) { 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0x01, 0xFFFFFFFF, 0x00, 0x00, 0x64, 0x64, "Travel", "100000", "LIon", "Hewlett-Packard", Zero, Zero, } }) } Method (B1B2, 2, NotSerialized) { ShiftLeft (Arg1, 8, Local0) Or (Arg0, Local0, Local0) Return (Local0) } //} //EOF ================================================ FILE: hotpatch/SSDT-BATT.asl ================================================ // battery status patched for earlier ProBooks //DefinitionBlock("", "SSDT", 2, "hack", "batt", 0) //{ External(\_SB.PCI0, DeviceObj) External(\_SB.PCI0.LPCB, DeviceObj) External(\_SB.PCI0.LPCB.EC, DeviceObj) Scope(\_SB.PCI0.LPCB.EC) { // This is an override for battery methods that access EC fields // larger than 8-bit. OperationRegion (ECR2, EmbeddedControl, 0x00, 0xFF) Field (ECR2, ByteAcc, NoLock, Preserve) { Offset (0x87), ,8,//LB1, 8, ,8,//LB2, 8, BDC0, 8, BDC1, 8, Offset (0x8D), BFC0, 8, BFC1, 8, RTE0, 8, RTE1, 8, //BTC, 1, Offset (0x92), BME0, 8, BME1, 8, ,8,//BDN, 8, BDV0, 8, BDV1, 8, BCX0, 8, BCX1, 8, //BST, 4, Offset (0x9B), ATE0, 8, ATE1, 8, BPR0, 8, BPR1, 8, BCR0, 8, BCR1, 8, BRC0, 8, BRC1, 8, BCC0, 8, BCC1, 8, BPV0, 8, BPV1, 8, BCA0, 8, BCA1, 8, BCB0, 8, BCB1, 8, BCP0, 8, BCP1, 8, ,16,//BCW, 16, ATF0, 8, ATF1, 8, ,16,//BCL, 16, AXC0, 8, AXC1, 8, ,8,//BCG1, 8, ,1,//BT1I, 1, ,1,//BT2I, 1, ,2,//, 2, ,4,//BATN, 4, BST0, 8, BST1, 8, //... Offset (0xC9), BSN0, 8, BSN1, 8, BDA0, 8, BDA1, 8, //BMF, 8, //Offset (0xCF), //CTLB, 8, //Offset (0xD1), //BTY, 8, //Offset (0xD5), //MFAC, 8,//d5 //CFAN, 8,//d6 //PFAN, 8,//d7 //OCPS, 8,//d8 //OCPR, 8,//d9 //OCPE, 8,//da //TMP1, 8,//db //TMP2, 8,//dc //NABT, 4,//dd //BCM, 4, //CCBQ, 16,//de Offset(0xe0), CBT0, 8, CBT1, 8, //... } External(\_SB.PCI0.LPCB.EC.BTDR, MethodObj) External(\_SB.PCI0.LPCB.EC.BSTA, MethodObj) External(\_SB.PCI0.LPCB.EC.BTMX, MutexObj) External(\_SB.PCI0.LPCB.EC.NGBF, IntObj) External(\_SB.PCI0.LPCB.EC.NGBT, IntObj) External(\_SB.NBST, PkgObj) External(\_SB.NDBS, PkgObj) External(\_SB.PCI0.LPCB.EC.ECMX, MutexObj) External(\_SB.PCI0.LPCB.EC.ECRG, IntObj) External(\_SB.PCI0.LPCB.EC.BSEL, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.NLB1, IntObj) External(\_SB.PCI0.LPCB.EC.NLB2, IntObj) External(\_SB.PCI0.LPCB.EC.CRZN, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.TEMP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GBSS, MethodObj) External(\_SB.PCI0.LPCB.EC.BST, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GACS, MethodObj) External(\_SB.PCI0.LPCB.EC.NDCB, IntObj) External(\_SB.PCI0.LPCB.EC.BATP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.INCH, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.IDIS, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.INAC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.PSSB, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.GBMF, MethodObj) External(\_SB.PCI0.LPCB.EC.GCTL, MethodObj) External(\_SB.PCI0.LPCB.EC.GDNM, MethodObj) External(\_SB.PCI0.LPCB.EC.GDCH, MethodObj) External(\_SB.PCI0.LPCB.EC.BRCC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.BRCV, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.BATN, FieldUnitObj) // ITLB is renamed to ITL1 for other models... delegation necessary External(\_SB.PCI0.LPCB.EC.ITL1, MethodObj) Method(ITLB, 0) { ITL1() } // BTIF/BTST methods are renamed in native DSDT, so calls land here... Method (BTIF, 1, Serialized) { ShiftLeft (0x01, Arg0, Local7) BTDR (0x01) If (LEqual (BSTA (Local7), 0x0F)) { Return (0xFF) } Acquire (BTMX, 0xFFFF) Store (NGBF, Local0) Release (BTMX) If (LEqual (And (Local0, Local7), 0x00)) { Return (0x00) } Store (NDBS, Index (NBST, Arg0)) Acquire (BTMX, 0xFFFF) Or (NGBT, Local7, NGBT) Release (BTMX) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg0, BSEL) Store (B1B2 (BFC0, BFC1), Local0) Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), 0x01)) Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), 0x02)) Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (NBTI, Arg0)), 0x04)) Store (NLB1, Index (DerefOf (Index (NBTI, Arg0)), 0x05)) Store (NLB2, Index (DerefOf (Index (NBTI, Arg0)), 0x06)) Store (B1B2 (BSN0, BSN1), Local0) Store (B1B2 (BDA0, BDA1), Local1) // battery cycle count Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (NBTI, Arg0)), 0x0D)) // battery temperature Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) Store (5, \_SB.PCI0.LPCB.EC.CRZN) Store (\_SB.PCI0.LPCB.EC.TEMP, Local2) Release (\_SB.PCI0.LPCB.EC.ECMX) Add (Multiply (Local2, 10), 2732, Local2) // Celsius to .1K Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0E)) } Release (ECMX) Store (GBSS (Local0, Local1), Local2) Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0A)) Acquire (BTMX, 0xFFFF) And (NGBF, Not (Local7), NGBF) Release (BTMX) Return (0x00) } Method (BTST, 2, Serialized) { ShiftLeft (0x01, Arg0, Local7) BTDR (0x01) If (LEqual (BSTA (Local7), 0x0F)) { Store (Package (0x04) { 0x00, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }, Index (NBST, Arg0)) Return (0xFF) } Acquire (BTMX, 0xFFFF) If (Arg1) { Store (0xFF, NGBT) } Store (NGBT, Local0) Release (BTMX) If (LEqual (And (Local0, Local7), 0x00)) { Return (0x00) } Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg0, BSEL) Store (BST, Local0) Store (B1B2 (BPR0, BPR1), Local3) Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (NBST, Arg0)), 0x02)) Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (NBST, Arg0)), 0x03)) } Release (ECMX) If (LEqual (GACS (), 0x01)) { And (Not (0x01), Local0, Local0) } Else { And (Not (0x02), Local0, Local0) } If (And (Local0, 0x01)) { Acquire (BTMX, 0xFFFF) Store (Local7, NDCB) Release (BTMX) } Store (Local0, Index (DerefOf (Index (NBST, Arg0)), 0x00)) If (And (Local0, 0x01)) { If (LOr (LLess (Local3, 0x0190), LGreater (Local3, 0x1964))) { Store (DerefOf (Index (DerefOf (Index (NBST, Arg0)), 0x01)), Local5) If (LOr (LLess (Local5, 0x0190), LGreater (Local5, 0x1964))) { Store (Divide (0x1AF4, 0x02, ), Local3) } Else { Store (Local5, Local3) } } } Else { If (LEqual (And (Local0, 0x02), 0x00)) { Store (0x00, Local3) } } Store (Local3, Index (DerefOf (Index (NBST, Arg0)), 0x01)) Acquire (BTMX, 0xFFFF) And (NGBT, Not (Local7), NGBT) Release (BTMX) Return (0x00) } // SBTC is renamed in native DSDT so calls land here Method (SBTC, 3, NotSerialized) { Store ("Enter SetBatteryControl", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Arg2, Local0) Store (Local0, Debug) Store (Package (0x02) { 0x06, 0x00 }, Local4) Store (0x00, Local1) Store (0x00, Local2) Store (DerefOf (Index (Local0, 0x10)), Local1) If (LEqual (Local1, 0x00)) { Store ("battery 0", Debug) If (And (BATP, 0x01)) { Store (DerefOf (Index (Local0, 0x11)), Local2) If (LEqual (Local2, 0x00)) { Store (0x00, INCH) Store (0x00, IDIS) Store (0x00, INAC) Store (0x00, AXC0) Store (0x00, AXC1) Store (0x01, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x01)) { Store (0x00, INAC) Store (0x02, INCH) Store (0x01, IDIS) Store (0x00, AXC0) Store (0x00, AXC1) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x02)) { Store (0x01, INAC) Store (0x01, INCH) Store (0x02, IDIS) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x03)) { Store (0x02, INCH) Store (0x01, IDIS) Store (0x00, INAC) Store (0xFA, AXC0) Store (Zero, AXC1) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x04)) { Store (0xFA, AXC0) Store (Zero, AXC1) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x05)) { Store (0x00, INAC) Store (0x03, INCH) Store (Package (0x02) { 0x00, 0x00 }, Local4) } } Else { Store (Package (0x02) { 0x34, 0x00 }, Local4) } } If (LEqual (Local1, 0x01)) { If (And (BATP, 0x02)) { Store ("battery 1", Debug) Store (DerefOf (Index (Local0, 0x11)), Local2) If (LEqual (Local2, 0x00)) { Store (0x00, INCH) Store (0x00, IDIS) Store (0x00, INAC) Store (0x00, AXC0) Store (0x00, AXC1) Store (0x01, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x01)) { Store (0x00, INAC) Store (0x01, INCH) Store (0x02, IDIS) Store (0x00, AXC0) Store (0x00, AXC1) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x02)) { Store (0x01, INAC) Store (0x02, INCH) Store (0x01, IDIS) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x03)) { Store (0x01, INCH) Store (0x02, IDIS) Store (0x00, INAC) Store (0xFA, AXC0) Store (Zero, AXC1) Store (0x00, PSSB) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x04)) { Store (0x00, INCH) Store (0x00, IDIS) Store (0x00, INAC) Store (Package (0x02) { 0x00, 0x00 }, Local4) } If (LEqual (Local2, 0x05)) { Store (0x00, INAC) Store (0x03, INCH) Store (Package (0x02) { 0x00, 0x00 }, Local4) } } Else { Store (Package (0x02) { 0x34, 0x00 }, Local4) } } } Release (ECMX) Return (Local4) } // GBTI is renamed in native DSDT so calls land here Method (GBTI, 1, NotSerialized) { Store ("Enter getbattinfo", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { If (And (BATP, ShiftLeft (0x01, Arg0))) { Store (Arg0, BSEL) Store (Package (0x03) { 0x00, 0x6B, Buffer (0x6B) {} }, Local0) Store (B1B2 (BDC0, BDC1), Index (DerefOf (Index (Local0, 0x02)), 0x00)) Store (ShiftRight (B1B2 (BDC0, BDC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x01)) Store (B1B2 (BFC0, BFC1), Index (DerefOf (Index (Local0, 0x02)), 0x02)) Store (ShiftRight (B1B2 (BFC0, BFC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x03)) Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (Local0, 0x02)), 0x04)) Store (ShiftRight (B1B2 (BRC0, BRC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x05)) Store (B1B2 (BME0, BME1), Index (DerefOf (Index (Local0, 0x02)), 0x06)) Store (ShiftRight (B1B2 (BME0, BME1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x07)) Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (Local0, 0x02)), 0x08)) Store (ShiftRight (B1B2 (BCC0, BCC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x09)) Store (B1B2 (CBT0, CBT1), Local1) Subtract (Local1, 0x0AAC, Local1) Divide (Local1, 0x0A, Local2, Local3) Store (Local3, Index (DerefOf (Index (Local0, 0x02)), 0x0A)) Store (ShiftRight (Local3, 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0B)) Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (Local0, 0x02)), 0x0C)) Store (ShiftRight (B1B2 (BPV0, BPV1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0D)) Store (B1B2 (BPR0, BPR1), Local1) If (Local1) { If (And (B1B2 (BST0, BST1), 0x40)) { Add (Not (Local1), 0x01, Local1) And (Local1, 0xFFFF, Local1) } } Store (Local1, Index (DerefOf (Index (Local0, 0x02)), 0x0E)) Store (ShiftRight (Local1, 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0F)) Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (Local0, 0x02)), 0x10)) Store (ShiftRight (B1B2 (BDV0, BDV1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x11)) Store (B1B2 (BST0, BST1), Index (DerefOf (Index (Local0, 0x02)), 0x12)) Store (ShiftRight (B1B2 (BST0, BST1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x13)) Store (B1B2 (BCX0, BCX1), Index (DerefOf (Index (Local0, 0x02)), 0x14)) Store (ShiftRight (B1B2 (BCX0, BCX1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x15)) Store (B1B2 (BCA0, BCA1), Index (DerefOf (Index (Local0, 0x02)), 0x16)) Store (ShiftRight (B1B2 (BCA0, BCA1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x17)) Store (B1B2 (BCB0, BCB1), Index (DerefOf (Index (Local0, 0x02)), 0x18)) Store (ShiftRight (B1B2 (BCB0, BCB1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x19)) Store (B1B2 (BCP0, BCP1), Index (DerefOf (Index (Local0, 0x02)), 0x1A)) Store (ShiftRight (B1B2 (BCP0, BCP1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x1B)) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (0x1C, 0x08), Multiply (0x10, 0x08), BTSN) Store (GBSS (B1B2 (BSN0, BSN1), B1B2 (BDA0, BDA1)), BTSN) Store (GBMF (), Local1) Store (SizeOf (Local1), Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (0x2C, 0x08), Multiply (Local2, 0x08), BMAN) Store (Local1, BMAN) Add (Local2, 0x2C, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x10, 0x08), CLBL) Store (GCTL (0x00), CLBL) Add (Local2, 0x11, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x07, 0x08), DNAM) Store (GDNM (0x00), DNAM) Add (Local2, 0x07, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x04, 0x08), DCHE) Store (GDCH (0x00), DCHE) Add (Local2, 0x04, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BMAC) Store (0x00, BMAC) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BMAD) Store (B1B2 (BDA0, BDA1), BMAD) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BCCU) Store (BRCC, BCCU) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BCVO) Store (BRCV, BCVO) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BAVC) Store (B1B2 (BCR0, BCR1), Local1) If (Local1) { If (And (B1B2 (BST0, BST1), 0x40)) { Add (Not (Local1), 0x01, Local1) And (Local1, 0xFFFF, Local1) } } Store (Local1, BAVC) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), RTTE) Store (B1B2 (RTE0, RTE1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), ATTE) Store (B1B2 (ATE0, ATE1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), ATTF) Store (B1B2 (ATF0, ATF1), RTTE) Add (Local2, 0x02, Local2) CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x01, 0x08), NOBS) Store (BATN, NOBS) } Else { Store (Package (0x02) { 0x34, 0x00 }, Local0) } } Else { Store (Package (0x02) { 0x0D, 0x00 }, Local0) } Release (ECMX) Return (Local0) } // GBTC is renamed in native DSDT, so calls land here Method (GBTC, 0, NotSerialized) { Store ("Enter GetBatteryControl", Debug) Acquire (ECMX, 0xFFFF) If (ECRG) { Store (Package (0x03) { 0x00, 0x04, Buffer (0x04) {} }, Local0) If (And (BATP, 0x01)) { Store (0x00, BSEL) Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x00)) If (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x00)), LEqual (IDIS, 0x00))) { Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } Else { If (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x02)), LEqual (IDIS, 0x01)), LEqual (B1B2 (AXC0, AXC1), 0x00))) { Store (0x01, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } Else { If (LAnd (LEqual (INAC, 0x01), LEqual (IDIS, 0x02))) { Store (0x02, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } Else { If (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x02)), LEqual (IDIS, 0x01)), LEqual (B1B2 (AXC0, AXC1), 0xFA))) { Store (0x03, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } Else { If (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x03))) { Store (0x04, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } } } } } } Else { Store (0xFF, Index (DerefOf (Index (Local0, 0x02)), 0x00)) } If (And (BATP, 0x02)) { Store (0x01, BSEL) Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x01)) If (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x00)), LEqual (IDIS, 0x00))) { Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } Else { If (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x01)), LEqual (IDIS, 0x02)), LEqual (B1B2 (AXC0, AXC1), 0x00))) { Store (0x01, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } Else { If (LAnd (LEqual (INAC, 0x01), LEqual (IDIS, 0x01))) { Store (0x02, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } Else { If (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x01)), LEqual (IDIS, 0x02)), LEqual (B1B2 (AXC0, AXC1), 0xFA))) { Store (0x03, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } Else { If (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x03))) { Store (0x04, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } } } } } } Else { Store (0xFF, Index (DerefOf (Index (Local0, 0x02)), 0x01)) } } Else { Store (Package (0x02) { 0x35, 0x00 }, Local0) } Release (ECMX) Return (Local0) } } Scope (\_SB) { // This is the replacement for native NBTI in DSDT // The NBTI in DSDT is renamed to XBTI Name (NBTI, Package(0x02) { Package(0x0F) { 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0x01, 0xFFFFFFFF, 0x00, 0x00, 0x64, 0x64, "Primary", "100000", "LIon", "Hewlett-Packard", Zero, Zero, }, Package(0x0F) { 0x01, 0xFFFFFFFF, 0xFFFFFFFF, 0x01, 0xFFFFFFFF, 0x00, 0x00, 0x64, 0x64, "Travel", "100000", "LIon", "Hewlett-Packard", Zero, Zero, } }) } Method (B1B2, 2, NotSerialized) { ShiftLeft (Arg1, 8, Local0) Or (Arg0, Local0, Local0) Return (Local0) } //} //EOF ================================================ FILE: hotpatch/SSDT-EH01.asl ================================================ // Automatic injection of EH01 properties //DefinitionBlock("", "SSDT", 2, "hack", "EH01", 0) //{ External(_SB.PCI0.EH01, DeviceObj) // inject properties for ECHI#1 Method(_SB.PCI0.EH01._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return (Package() { "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 }, "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 }, "AAPL,current-available", Buffer() { 0x34, 0x08, 0, 0 }, "AAPL,current-extra", Buffer() { 0x98, 0x08, 0, 0, }, "AAPL,current-extra-in-sleep", Buffer() { 0x40, 0x06, 0, 0, }, "AAPL,max-port-current-in-sleep", Buffer() { 0x34, 0x08, 0, 0 }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-EH02.asl ================================================ // Automatic injection of EH02 properties //DefinitionBlock("", "SSDT", 2, "hack", "EH02", 0) //{ External(_SB.PCI0.EH02, DeviceObj) // inject properties for EHCI#2 Method(_SB.PCI0.EH02._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return (Package() { "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 }, "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 }, "AAPL,current-available", Buffer() { 0x34, 0x08, 0, 0 }, "AAPL,current-extra", Buffer() { 0x98, 0x08, 0, 0, }, "AAPL,current-extra-in-sleep", Buffer() { 0x40, 0x06, 0, 0, }, "AAPL,max-port-current-in-sleep", Buffer() { 0x34, 0x08, 0, 0 }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-FANORIG.dsl ================================================ // "original" fan patch DefinitionBlock("", "SSDT", 2, "hack", "_FANORIG", 0) { External(\_SB.PCI0, DeviceObj) External(\_SB.PCI0.LPCB, DeviceObj) External(\_SB.PCI0.LPCB.EC, DeviceObj) External(\_SB.PCI0.LPCB.EC.ECMX, MutexObj) External(\_SB.PCI0.LPCB.EC.CRZN, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.TEMP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.FRDC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.DTMP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.FTGC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.ECRG, IntObj) // This is created by 04a_FanPatch.txt Device (SMCD) { Name (_HID, "FAN00000") // _HID: Hardware ID // ACPISensors.kext configuration Name (TACH, Package() { "System Fan", "FAN0", }) Name (TEMP, Package() { "CPU Heatsink", "TCPU", "Ambient", "TAMB", //"Mainboard", "TSYS", //"CPU Proximity", "TCPP", }) // Actual methods to implement fan/temp readings/control Method (FAN0, 0, Serialized) { If (!\_SB.PCI0.LPCB.EC.ECRG) { Return(0) } Local0 = \_SB.PCI0.LPCB.EC.FRDC If (Local0) { Local0 = (0x3C000 + (Local0 >> 1)) / Local0 } If (0x03C4 == Local0) { Return (0) } Return (Local0) } Method (TCPU, 0, Serialized) { If (!\_SB.PCI0.LPCB.EC.ECRG) { Return(0) } Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) \_SB.PCI0.LPCB.EC.CRZN = 1 Local0 = \_SB.PCI0.LPCB.EC.DTMP Release (\_SB.PCI0.LPCB.EC.ECMX) Return (Local0) } Method (TAMB, 0, Serialized) { If (!\_SB.PCI0.LPCB.EC.ECRG) { Return(0) } Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) \_SB.PCI0.LPCB.EC.CRZN = 4 Local0 = \_SB.PCI0.LPCB.EC.TEMP Release (\_SB.PCI0.LPCB.EC.ECMX) Return (Local0) } Method (FCPU, 0, Serialized) { If (!\_SB.PCI0.LPCB.EC.ECRG) { Return(0) } Local0 = TCPU() // Temp between 35 and 52: hold fan at lowest speed If (Local0 >= 35 && Local0 <= 52) { Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) \_SB.PCI0.LPCB.EC.FTGC = 0x80 Release (\_SB.PCI0.LPCB.EC.ECMX) } Else { // Temp 31 or lower, or above 54: put fan into "automatic mode" // Note: for temps 32, 33, 34 fan stays in whatever mode it was // in previously. // Note: for temps 53, 54 fan stays in whatever mode it was in // previously. If (Local0 < 32 || Local0 >= 55) { Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) \_SB.PCI0.LPCB.EC.FTGC = 0xFF Release (\_SB.PCI0.LPCB.EC.ECMX) } } Return (Local0) } } } //EOF ================================================ FILE: hotpatch/SSDT-FANQ.dsl ================================================ // "quiet" fan patch #ifdef QUIET DefinitionBlock("", "SSDT", 2, "hack", "_FANQ", 0) #endif #ifdef REHABMAN DefinitionBlock("", "SSDT", 2, "hack", "_FANRM", 0) #endif #ifdef GRAPPLER DefinitionBlock("", "SSDT", 2, "hack", "_FANGRAP", 0) #endif { External(\_SB.PCI0, DeviceObj) External(\_SB.PCI0.LPCB, DeviceObj) External(\_SB.PCI0.LPCB.EC, DeviceObj) External(\_SB.PCI0.LPCB.EC.ECMX, MutexObj) External(\_SB.PCI0.LPCB.EC.CRZN, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.TEMP, FieldUnitObj) // This is created by 04b_FanQuietMod.txt // It is my preferred Fan patch Device (SMCD) { External(\_SB.PCI0.LPCB.EC.FRDC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.DTMP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.FTGC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.ECRG, IntObj) Name (_HID, "FAN00000") // _HID: Hardware ID // ACPISensors.kext configuration Name (TACH, Package() { "System Fan", "FAN0", }) Name (TEMP, Package() { "CPU Heatsink", "TCPU", "Ambient", "TAMB", #ifdef DEBUG "Mainboard", "TSYS", "CPU Proximity", "TCPP", #endif }) // Actual methods to implement fan/temp readings/control Method (FAN0, 0, Serialized) { If (!\_SB.PCI0.LPCB.EC.ECRG) { Return(0) } Local0 = \_SB.PCI0.LPCB.EC.FRDC If (Local0) { Divide (Add(0x3C000, ShiftRight(Local0,1)), Local0,, Local0) } If (0x03C4 == Local0) { Return (Zero) } Return (Local0) } Method (TCPU, 0, Serialized) { If (!\_SB.PCI0.LPCB.EC.ECRG) { Return(0) } Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) \_SB.PCI0.LPCB.EC.CRZN = 1 Local0 = \_SB.PCI0.LPCB.EC.DTMP Release (\_SB.PCI0.LPCB.EC.ECMX) Return (Local0) } Method (TAMB, 0, Serialized) { If (!\_SB.PCI0.LPCB.EC.ECRG) { Return(0) } Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) \_SB.PCI0.LPCB.EC.CRZN = 4 Local0 = \_SB.PCI0.LPCB.EC.TEMP Release (\_SB.PCI0.LPCB.EC.ECMX) Return (Local0) } #ifdef DEBUG // for debugging fan control\n Method (TCPP, 0, Serialized) // Average temp\n { Local0 = FNUM if (Local0) { Local0 = FSUM / Local0 } Return (Local0) } Method (TSYS, 0, Serialized) // fan counter\n { Return (FCNT) } #endif #ifdef QUIET // original quiet table by RehabMan Name(FTA1, Package() { 50, 57, 63, 68, 72, 75, 0xFF }) Name(FTA2, Package() { 255, 128, 82, 74, 59, 49, 0, }) Name (FCTU, 20) // timeout for changes (fan rpm going up) Name (FCTD, 40) // timeout for changes (fan rpm going down) #endif #ifdef REHABMAN // another alternate by RehabMan Name(FTA1, Package() { /*35,*/ 57, 58, 59, 57, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 0xFF }) Name(FTA2, Package() { /*255,*/ 128, 122, 115, 110, 109, 103, 96, 90, 87, 85, 82, 80, 77, 73, 68, 64, 59, 56, 52, 49, 0 }) Name (FCTU, 20) // timeout for changes (fan rpm going up) Name (FCTD, 40) // timeout for changes (fan rpm going down) #endif #ifdef GRAPPLER // Smooth fan table by Don_Grappler Name(FTA1, Package() { 35, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0xFF, }) Name(FTA2, Package() { 255, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 113, 111, 109, 107, 102, 99, 96, 93, 90, 86, 82, 78, 74, 70, 65, 60, 55, 0, }) Name (FCTU, 2) // timeout for changes (fan rpm going up) -- modified by Don_Grappler Name (FCTD, 5) // timeout for changes (fan rpm going down) -- modified by Don_Grappler #endif // Table to keep track of past temperatures (to track average) Name (FHST, Buffer(16) { 0x0, 0, 0, 0, 0x0, 0, 0, 0, 0x0, 0, 0, 0, 0x0, 0, 0, 0 }) Name (FIDX, 0) // current index in buffer above Name (FNUM, 0) // number of entries in above buffer to count in avg Name (FSUM, 0) // current sum of entries in buffer // Keeps track of last fan speed set, and counter to set new one Name (FLST, 0xFF) // last index for fan control Name (FCNT, 0) // count of times it has been "wrong", 0 means no counter // Fan control for CPU -- expects to be evaluated 1-per second Method(FCPU, 0) { If (!\_SB.PCI0.LPCB.EC.ECRG) { Return(0) } Acquire(\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) // setup fake temperature (this is the key to controlling the fan!) \_SB.PCI0.LPCB.EC.CRZN = 1 // select CPU temp \_SB.PCI0.LPCB.EC.TEMP = 31 // write fake value there (31C) // get current temp into Local0 for eventual return // Note: reading from DTMP here instead of TEMP because we wrote // a fake temp to TEMP to trick the system into running the fan // at a lower speed than it otherwise would. \_SB.PCI0.LPCB.EC.CRZN = 1 // select CPU temp Local0 = \_SB.PCI0.LPCB.EC.DTMP // Local0 is current temp Release(\_SB.PCI0.LPCB.EC.ECMX) // calculate average temperature Local1 = Local0 + FSUM Local2 = FIDX Local1 -= DerefOf(FHST[Local2]) FHST[Local2] = Local0 FSUM = Local1 // Local1 is new sum // adjust current index into temperature history table Local2++ if (Local2 >= SizeOf(FHST)) { Local2 = 0 } FIDX = Local2 // adjust total items collected in temp table Local2 = FNUM if (Local2 != SizeOf(FHST)) { Local2++ FNUM = Local2 } // Local1 is new sum, Local2 is number of entries in sum Local0 = Local1 / Local2 // Local0 is now average temp // table based search (use avg temperature to search) if (Local0 > 255) { Local0 = 255 } Local2 = Match(FTA1, MGE, Local0, MTR, 0, 0) // calculate difference between current and found index if (Local2 > FLST) { Local1 = Local2 - FLST Local4 = FCTU } else { Local1 = FLST - Local2 Local4 = FCTD } // set new fan speed, if necessary if (!Local1) { // no difference, so leave current fan speed and reset count FCNT = 0 } else { // there is a difference, start/continue process of changing fan Local3 = FCNT FCNT++ // how long to wait depends on how big the difference // 20 secs if diff is 2, 5 secs if diff is 4, etc. Local1 = Local4 / Local1 if (Local3 >= Local1) { // timeout expired, so set new fan speed FLST = Local2 \_SB.PCI0.LPCB.EC.FTGC = DerefOf(FTA2[Local2]) FCNT = 0 } } Return (Local0) // returns average temp } } } //EOF ================================================ FILE: hotpatch/SSDT-FANREAD.dsl ================================================ // fan/temperature readings only (fan behavior is BIOS) DefinitionBlock("", "SSDT", 2, "hack", "_FANREAD", 0) { External(\_SB.PCI0, DeviceObj) External(\_SB.PCI0.LPCB, DeviceObj) External(\_SB.PCI0.LPCB.EC, DeviceObj) External(\_SB.PCI0.LPCB.EC.ECMX, MutexObj) External(\_SB.PCI0.LPCB.EC.CRZN, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.TEMP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.FRDC, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.DTMP, FieldUnitObj) External(\_SB.PCI0.LPCB.EC.ECRG, IntObj) // This is created by 04c_FanSpeed.txt Device (SMCD) { Name (_HID, "FAN00000") // _HID: Hardware ID // ACPISensors.kext configuration Name (TACH, Package() { "System Fan", "FAN0", }) Name (TEMP, Package() { "CPU Heatsink", "TCPU", "Ambient", "TAMB", //"Mainboard", "TSYS", //"CPU Proximity", "TCPP", }) // Actual methods to implement fan/temp readings/control Method (FAN0, 0, Serialized) { If (!\_SB.PCI0.LPCB.EC.ECRG) { Return(0) } Local0 = \_SB.PCI0.LPCB.EC.FRDC If (Local0) { Local0 = (0x3C000 + (Local0 >> 1)) / Local0 } If (0x03C4 == Local0) { Return (0) } Return (Local0) } Method (TCPU, 0, Serialized) { If (!\_SB.PCI0.LPCB.EC.ECRG) { Return(0) } Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) \_SB.PCI0.LPCB.EC.CRZN = 1 Local0 = \_SB.PCI0.LPCB.EC.DTMP Release (\_SB.PCI0.LPCB.EC.ECMX) Return (Local0) } Method (TAMB, 0, Serialized) { If (!\_SB.PCI0.LPCB.EC.ECRG) { Return(0) } Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF) \_SB.PCI0.LPCB.EC.CRZN = 4 Local0 = \_SB.PCI0.LPCB.EC.TEMP Release (\_SB.PCI0.LPCB.EC.ECMX) Return (Local0) } } } //EOF ================================================ FILE: hotpatch/SSDT-HACK.asl ================================================ // Instead of providing patched DSDT/SSDT, just include a add-on // SSDTs and the rest of the work done in config.plist. // A bit experimental, and a bit more difficult with laptops, but // still possible. //DefinitionBlock("", "SSDT", 2, "hack", "hack", 0) //{ External(\_SB.PCI0, DeviceObj) // // Simulate Windows for _OSI calls // // All _OSI calls in DSDT are routed to XOSI... // XOSI simulates "Windows 2009" (which is Windows 7) // Note: According to ACPI spec, _OSI("Windows") must also return true // Also, it should return true for all previous versions of Windows. Method(XOSI, 1) { // simulation targets // source: (google 'Microsoft Windows _OSI') // http://download.microsoft.com/download/7/E/7/7E7662CF-CBEA-470B-A97E-CE7CE0D98DC2/WinACPI_OSI.docx Local0 = Package() { "Windows", // generic Windows query "Windows 2001", // Windows XP "Windows 2001 SP2", // Windows XP SP2 //"Windows 2001.1", // Windows Server 2003 //"Windows 2001.1 SP1", // Windows Server 2003 SP1 "Windows 2006", // Windows Vista "Windows 2006 SP1", // Windows Vista SP1 "Windows 2006.1", // Windows Server 2008 "Windows 2009", // Windows 7/Windows Server 2008 R2 //"Windows 2012", // Windows 8/Windows Server 2012 //"Windows 2013", // Windows 8.1/Windows Server 2012 R2 //"Windows 2015", // Windows 10/Windows Server TP } Return (Ones != Match(Local0, MEQ, Arg0, MTR, 0, 0)) } // // DGPU disable (and related shutdown fix) // // In DSDT, native _PTS and _WAK are renamed ZPTS/ZWAK // As a result, calls to these methods land here. Method(_PTS, 1) { // Disable XHC PMEE if XPEE is specified 1 // This fixes "auto restart after shutdown" with USB devices connected If (1 == \RMCF.XPEE && 5 == Arg0) { External(\_SB.PCI0.XHC.PMEE, FieldUnitObj) If (CondRefOf(\_SB.PCI0.XHC.PMEE)) { \_SB.PCI0.XHC.PMEE = 0 } } If (\RMCF.SHUT && 5 == Arg0) { Return } If (\RMCF.DGPU & 2) { \RMCF.RMON() } External(\ZPTS, MethodObj) ZPTS(Arg0) } Method(_WAK, 1) { If (Arg0 < 1 || Arg0 > 5) { Arg0 = 3 } External(\ZWAK, MethodObj) Local0 = ZWAK(Arg0) If (\RMCF.DGPU & 2) { \RMCF.RMOF() } Return(Local0) } Device(RMD1) { Name(_HID, "RMD10000") Method(_INI) { If (\RMCF.DGPU & 1) { \RMCF.RMOF() } } } External(_SB.PCI0.LPCB.EC, DeviceObj) External(_SB.PCI0.LPCB.EC.XREG, MethodObj) // original _REG is renamed to XREG Scope(_SB.PCI0.LPCB.EC) { OperationRegion(ECR3, EmbeddedControl, 0x00, 0xFF) Method(_REG, 2) { // call original _REG (now renamed XREG) XREG(Arg0, Arg1) // call RDSS(0) for _OFF/HGOF If (3 == Arg0 && 1 == Arg1 && \RMCF.DGPU & 1) { \RMCF.RDSS(0) } } } // // Add SMBUS device // From SSDT-SMBUS.dsl // Device(_SB.PCI0.SBUS.BUS0) { Name(_CID, "smbus") Name(_ADR, Zero) Device(DVL0) { Name(_ADR, 0x57) Name(_CID, "diagsvault") Method(_DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return (Package() { "address", 0x57 }) } } } // // Unsupported LPC devices // From SSDT-LPC.dsl // External(_SB.PCI0.LPCB, DeviceObj) Scope(_SB.PCI0.LPCB) { OperationRegion(RMP2, PCI_Config, 2, 2) Field(RMP2, AnyAcc, NoLock, Preserve) { LDID,16 } Name(LPDL, Package() { // list of 8-series LPC device-ids not natively supported // inject 0x8c4b for unsupported LPC device-id 0x8c46, 0x8c49, 0x8c4a, 0x8c4c, 0x8c4e, 0x8c4f, 0x8c50, 0x8c52, 0x8c54, 0x8c56, 0x8c5c, 0, Package() { "device-id", Buffer() { 0x4b, 0x8c, 0, 0 }, "compatible", Buffer() { "pci8086,8c4b" }, }, #if 0 //REVIEW: 100-series and later may not need AppleLPC // list of 100-series LPC device-ids not natively supported (partial list) 0x9d48, 0xa14e, 0xa150, 0, Package() { "device-id", Buffer() { 0xc1, 0x9c, 0, 0 }, "compatible", Buffer() { "pci8086,9cc1" }, }, #endif }) Method(_DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } // search for matching device-id in device-id list, LPDL Local0 = Match(LPDL, MEQ, LDID, MTR, 0, 0) If (Ones != Local0) { // start search for zero-terminator (prefix to injection package) Local0 = Match(LPDL, MEQ, 0, MTR, 0, Local0+1) Return (DerefOf(LPDL[Local0+1])) } // if no match, assume it is supported natively... no inject Return (Package() { }) } } // // Deal with "instant wake" via _PRW override // From SSDT-PRW.dsl, SSDT-LANC_PRW.dsl // // In DSDT, native GPRW is renamed to XPRW with Clover binpatch. // (or UPRW to XPRW) // As a result, calls to GPRW (or UPRW) land here. // The purpose of this implementation is to avoid "instant wake" // by returning 0 in the second position (sleep state supported) // of the return package. External(XPRW, MethodObj) Method(GPRW, 2) { If (0x6d == Arg0) { Return (Package() { 0x6d, 0, }) } If (0x0d == Arg0) { Return (Package() { 0x0d, 0, }) } Return (XPRW(Arg0, Arg1)) } Method(UPRW, 2) { If (0x6d == Arg0) { Return (Package() { 0x6d, 0, }) } If (0x0d == Arg0) { Return (Package() { 0x0d, 0, }) } Return (XPRW(Arg0, Arg1)) } // In DSDT, native LANC._PRW is renamed XPRW with Clover binpatch. // As a result, calls to LANC._PRW land here. // The purpose of this implementation is to avoid "instant wake" // by returning 0 in the second position (sleep state supported) // of the return package. // LANC._PRW is renamed to XPRW so we can replace it here External(_SB.PCI0.LANC, DeviceObj) External(_SB.PCI0.LANC.XPRW, MethodObj) Method(_SB.PCI0.LANC._PRW) { Local0 = \_SB.PCI0.LANC.XPRW() Local0[1] = 0 Return(Local0) } // // Battery combiner (combines two batteries into one) // From SSDT-BATC.dsl // Scope(_SB) { External(BAT0, DeviceObj) External(BAT0._HID, IntObj) External(BAT0._STA, MethodObj) External(BAT0._BIF, MethodObj) External(BAT0._BST, MethodObj) External(BAT1, DeviceObj) External(BAT1._HID, IntObj) External(BAT1._STA, MethodObj) External(BAT1._BIF, MethodObj) External(BAT1._BST, MethodObj) Device(BATC) { Name(_HID, EisaId ("PNP0C0A")) Name(_UID, 0x02) Method(_INI) { // disable original battery objects by setting invalid _HID ^^BAT0._HID = 0 ^^BAT1._HID = 0 } Method(CVWA, 3) // Convert mW to mA (or mWh to mAh) // Arg0 is mW or mWh (or mA/mAh in the case Arg2==0) // Arg1 is mV (usually design voltage) // Arg2 is whether conversion is needed (non-zero for convert) // return is mA or mAh { If (Arg2) { Arg0 = (Arg0 * 1000) / Arg1 } Return(Arg0) } Method(_STA) { // call original _STA for BAT0 and BAT1 // result is bitwise OR between them Return(^^BAT0._STA() | ^^BAT1._STA()) } Name(B0CO, 0x00) // BAT0 0/1 needs conversion to mAh Name(B1CO, 0x00) // BAT1 0/1 needs conversion to mAh Name(B0DV, 0x00) // BAT0 design voltage Name(B1DV, 0x00) // BAT1 design voltage Method(_BST) { // Local0 BAT0._BST // Local1 BAT1._BST // Local2 BAT0._STA // Local3 BAT1._STA // Local4/Local5 scratch // gather battery data from BAT0 Local0 = ^^BAT0._BST() Local2 = ^^BAT0._STA() If (0x1f == Local2) { // check for invalid remaining capacity Local4 = DerefOf(Local0[2]) If (!Local4 || Ones == Local4) { Local2 = 0; } } // gather battery data from BAT1 Local1 = ^^BAT1._BST() Local3 = ^^BAT1._STA() If (0x1f == Local3) { // check for invalid remaining capacity Local4 = DerefOf(Local1[2]) If (!Local4 || Ones == Local4) { Local3 = 0; } } // find primary and secondary battery If (0x1f != Local2 && 0x1f == Local3) { // make primary use BAT1 data Local0 = Local1 // BAT1._BST result Local2 = Local3 // BAT1._STA result Local3 = 0 // no secondary battery } // combine batteries into Local0 result if possible If (0x1f == Local2 && 0x1f == Local3) { // _BST 0 - Battery State - if one battery is charging, then charging, else discharging Local4 = DerefOf(Local0[0]) Local5 = DerefOf(Local1[0]) If (Local4 == 2 || Local5 == 2) { // 2 = charging Local0[0] = 2 } ElseIf (Local4 == 1 || Local5 == 1) { // 1 = discharging Local0[0] = 1 } ElseIf (Local4 == 5 || Local5 == 5) { // critical and discharging Local0[0] = 5 } ElseIf (Local4 == 4 || Local5 == 4) { // critical Local0[0] = 4 } // if none of the above, just leave as BAT0 is // Note: Depends on _BIF being called before _BST to set B0CO and B1CO // _BST 1 - Battery Present Rate - Add BAT0 and BAT1 values Local0[1] = CVWA(DerefOf(Local0[1]), B0DV, B0CO) + CVWA(DerefOf(Local1[1]), B1DV, B1CO) // _BST 2 - Battery Remaining Capacity - Add BAT0 and BAT1 values Local0[2] = CVWA(DerefOf(Local0[2]), B0DV, B0CO) + CVWA(DerefOf(Local1[2]), B1DV, B1CO) // _BST 3 - Battery Present Voltage - Average BAT0 and BAT1 values Local0[3] = (DerefOf(Local0[3]) + DerefOf(Local1[3])) / 2 } Return(Local0) } // _BST Method(_BIF) { // Local0 BAT0._BIF // Local1 BAT1._BIF // Local2 BAT0._STA // Local3 BAT1._STA // Local4/Local5 scratch // gather and validate data from BAT0 Local0 = ^^BAT0._BIF() Local2 = ^^BAT0._STA() If (0x1f == Local2) { // check for invalid design capacity Local4 = DerefOf(Local0[1]) If (!Local4 || Ones == Local4) { Local2 = 0; } // check for invalid max capacity Local4 = DerefOf(Local0[2]) If (!Local4 || Ones == Local4) { Local2 = 0; } // check for invalid design voltage Local4 = DerefOf(Local0[4]) If (!Local4 || Ones == Local4) { Local2 = 0; } } // gather and validate data from BAT1 Local1 = ^^BAT1._BIF() Local3 = ^^BAT1._STA() If (0x1f == Local3) { // check for invalid design capacity Local4 = DerefOf(Local1[1]) If (!Local4 || Ones == Local4) { Local3 = 0; } // check for invalid max capacity Local4 = DerefOf(Local1[2]) If (!Local4 || Ones == Local4) { Local3 = 0; } // check for invalid design voltage Local4 = DerefOf(Local1[4]) If (!Local4 || Ones == Local4) { Local3 = 0; } } // find primary and secondary battery If (0x1f != Local2 && 0x1f == Local3) { // make primary use BAT1 data Local0 = Local1 // BAT1._BIF result Local2 = Local3 // BAT1._STA result Local3 = 0 // no secondary battery } // combine batteries into Local0 result if possible If (0x1f == Local2 && 0x1f == Local3) { // _BIF 0 - Power Unit - 0 = mWh | 1 = mAh // set B0CO/B1CO if convertion to amps needed B0CO = !DerefOf(Local0[0]) B1CO = !DerefOf(Local1[0]) // set _BIF[0] = 1 => mAh Local0[0] = 1 // _BIF 4 - Design Voltage - store value for each Battery in mV B0DV = DerefOf(Local0[4]) // cache BAT0 voltage B1DV = DerefOf(Local1[4]) // cache BAT1 voltage // _BIF 1 - Design Capacity - add BAT0 and BAT1 values Local0[1] = CVWA(DerefOf(Local0[1]), B0DV, B0CO) + CVWA(DerefOf(Local1[1]), B1DV, B1CO) // _BIF 2 - Last Full Charge Capacity - add BAT0 and BAT1 values Local0[2] = CVWA(DerefOf(Local0[2]), B0DV, B0CO) + CVWA(DerefOf(Local1[2]), B1DV, B1CO) // _BIF 3 - Battery Technology - leave BAT0 value // _BIF 4 - Design Voltage - average BAT0 and BAT1 values Local0[4] = (B0DV + B1DV) / 2 // _BIF 5 - Design Capacity Warning - add BAT0 and BAT1 values Local0[5] = CVWA(DerefOf(Local0[5]), B0DV, B0CO) + CVWA(DerefOf(Local1[5]), B1DV, B1CO) // _BIF 6 - Design Capacity of Low - add BAT0 and BAT1 values Local0[6] = CVWA(DerefOf(Local0[6]), B0DV, B0CO) + CVWA(DerefOf(Local1[6]), B1DV, B1CO) // _BIF 7+ - Leave BAT0 values for now } Return(Local0) } // _BIF } // BATC } // Scope(...) //} //EOF ================================================ FILE: hotpatch/SSDT-IGPU.dsl ================================================ // IGPU injections for Intel graphics #ifndef HIRES DefinitionBlock("", "SSDT", 2, "hack", "_IGPU", 0) #else DefinitionBlock("", "SSDT", 2, "hack", "_IGPUH", 0) #endif { // // IGPU injection // From SSDT-IGPU.dsl // External(_SB.PCI0.IGPU, DeviceObj) External(RMCF.IGPI, IntObj) Scope(_SB.PCI0.IGPU) { // need the device-id from PCI_config to inject correct properties OperationRegion(IGD4, PCI_Config, 0, 0x14) Field(IGD4, AnyAcc, NoLock, Preserve) { Offset(0x02), GDID,16, Offset(0x10), BAR1,32, } Name(GIDL, Package() { // Sandy Bridge/HD3000 0x0116, 0x0126, 0, Package() { "AAPL,snb-platform-id", Buffer() { 0x00, 0x00, 0x01, 0x00 }, "model", Buffer() { "Intel HD Graphics 3000" }, "hda-gfx", Buffer() { "onboard-1" }, "AAPL,os-info", Buffer() { 0x30, 0x49, 0x01, 0x11, 0x11, 0x11, 0x08, 0x00, 0x00, 0x01, 0xf0, 0x1f, 0x01, 0x00, 0x00, 0x00, 0x10, 0x07, 0x00, 0x00 }, #ifdef HIRES "AAPL00,DualLink", Buffer() { 0x01, 0x00, 0x00, 0x00 }, //900p/1080p #else "AAPL00,DualLink", Buffer() { 0x00, 0x00, 0x00, 0x00 }, //768p #endif }, // Ivy Bridge/HD4000 0x0166, 0, Package() { #ifndef HIRES "AAPL,ig-platform-id", Buffer() { 0x03, 0x00, 0x66, 0x01 }, //768p #else "AAPL,ig-platform-id", Buffer() { 0x04, 0x00, 0x66, 0x01 }, //900p/1080p #endif "model", Buffer() { "Intel HD Graphics 4000" }, "hda-gfx", Buffer() { "onboard-1" }, }, // Haswell/HD4200 0x0a1e, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x0a }, "model", Buffer() { "Intel HD Graphics 4200" }, "device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 }, "hda-gfx", Buffer() { "onboard-1" }, }, // Haswell/HD4400 0x0a16, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x0a }, "model", Buffer() { "Intel HD Graphics 4400" }, "device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 }, "hda-gfx", Buffer() { "onboard-1" }, }, // Haswell/HD4600 0x0416, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x0a }, "model", Buffer() { "Intel HD Graphics 4600" }, "device-id", Buffer() { 0x12, 0x04, 0x00, 0x00 }, "hda-gfx", Buffer() { "onboard-1" }, }, // Haswell/HD5000/HD5100/HD5200 0x0a26, 0x0a2e, 0x0d26, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x0a }, "hda-gfx", Buffer() { "onboard-1" }, }, // Broadwell/HD5300 0x161e, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x16 }, "model", Buffer() { "Intel HD Graphics 5300" }, "hda-gfx", Buffer() { "onboard-1" }, }, // Broadwell/HD5500 0x1616, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x16 }, "model", Buffer() { "Intel HD Graphics 5500" }, "hda-gfx", Buffer() { "onboard-1" }, }, // Broadwell/HD5600 0x1612, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x16 }, "model", Buffer() { "Intel HD Graphics 5600" }, "hda-gfx", Buffer() { "onboard-1" }, }, // Broadwell/HD6000/HD6100/HD6200 0x1626, 0x162b, 0x1622, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x06, 0x00, 0x26, 0x16 }, "hda-gfx", Buffer() { "onboard-1" }, }, // Skylake/HD515 0x191e, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1e, 0x19 }, "model", Buffer() { "Intel HD Graphics 515" }, "hda-gfx", Buffer() { "onboard-1" }, "AAPL,GfxYTile", Buffer() { 1, 0, 0, 0 }, //"RM,device-id", Buffer() { 0x1e, 0x19, 0x00, 0x00 }, }, // Skylake/HD520 0x1916, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x19 }, "model", Buffer() { "Intel HD Graphics 520" }, "hda-gfx", Buffer() { "onboard-1" }, "AAPL,GfxYTile", Buffer() { 1, 0, 0, 0 }, //"RM,device-id", Buffer() { 0x16, 0x19, 0x00, 0x00 }, }, // Skylake/HD530 0x191b, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x19 }, "model", Buffer() { "Intel HD Graphics 530" }, "hda-gfx", Buffer() { "onboard-1" }, "AAPL,GfxYTile", Buffer() { 1, 0, 0, 0 }, //"RM,device-id", Buffer() { 0x1b, 0x19, 0x00, 0x00 }, }, // Skylake/P530 0x191d, 0, Package() { "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x19 }, "model", Buffer() { "Intel HD Graphics P530" }, "device-id", Buffer() { 0x1b, 0x19, 0x00, 0x00 }, "hda-gfx", Buffer() { "onboard-1" }, "AAPL,GfxYTile", Buffer() { 1, 0, 0, 0 }, //"RM,device-id", Buffer() { 0x1d, 0x19, 0x00, 0x00 }, }, // Kaby Lake/HD620 0x5916, 0, Package() { //SKL spoof: "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x19 }, "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x59 }, "model", Buffer() { "Intel HD Graphics 620" }, //SKL spoof: "device-id", Buffer() { 0x1b, 0x19, 0x00, 0x00 }, //"device-id", Buffer() { 0x1b, 0x59, 0x00, 0x00 }, "hda-gfx", Buffer() { "onboard-1" }, //SKL spoof: "AAPL,GfxYTile", Buffer() { 1, 0, 0, 0 }, }, // Kaby Lake-R/UHD620 0x5917, 0, Package() { //SKL spoof: "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x19 }, "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x16, 0x59 }, "model", Buffer() { "Intel UHD Graphics 620" }, "hda-gfx", Buffer() { "onboard-1" }, //SKL spoof: "device-id", Buffer() { 0x1b, 0x19, 0x00, 0x00 }, "device-id", Buffer() { 0x16, 0x59, 0x00, 0x00 }, //SKL spoof: "AAPL,GfxYTile", Buffer() { 1, 0, 0, 0 }, }, // Kaby Lake/HD630 0x5912, 0x591b, 0, Package() { //SKL spoof: "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x19 }, "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x59 }, "model", Buffer() { "Intel HD Graphics 630" }, //SKL spoof: "device-id", Buffer() { 0x1b, 0x19, 0x00, 0x00 }, //"device-id", Buffer() { 0x1b, 0x59, 0x00, 0x00 }, "hda-gfx", Buffer() { "onboard-1" }, //SKL spoof: "AAPL,GfxYTile", Buffer() { 1, 0, 0, 0 }, }, // Kaby Lake-R/UHD630 0x3e9b, 0, Package() { //SKL spoof: "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x19 }, "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x59 }, "model", Buffer() { "Intel UHD Graphics 630" }, "hda-gfx", Buffer() { "onboard-1" }, //SKL spoof: "device-id", Buffer() { 0x1b, 0x19, 0x00, 0x00 }, "device-id", Buffer() { 0x1b, 0x59, 0x00, 0x00 }, //SKL spoof: "AAPL,GfxYTile", Buffer() { 1, 0, 0, 0 }, }, }) // inject properties for integrated graphics on IGPU Method(_DSM, 4) { // IGPI can be set to Ones to disable IGPU property injection (same as removing SSDT-IGPU.aml) If (CondRefOf(\RMCF.IGPI)) { If (Ones == \RMCF.IGPI) { Return(0) } } // otherwise, normal IGPU injection... If (!Arg2) { Return (Buffer() { 0x03 } ) } // search for matching device-id in device-id list Local0 = Match(GIDL, MEQ, GDID, MTR, 0, 0) // unrecognized device... inject nothing in this case If (Ones == Local0) { Return (Package() { }) } // start search for zero-terminator (prefix to injection package) Local0 = DerefOf(GIDL[Match(GIDL, MEQ, 0, MTR, 0, Local0+1)+1]) // the user can provide an override of ig-platform-id (or snb-platform-id) in RMCF.IGPI If (CondRefOf(\RMCF.IGPI)) { if (0 != \RMCF.IGPI) { CreateDWordField(DerefOf(Local0[1]), 0, IGPI) IGPI = \RMCF.IGPI } } Return (Local0) } } Device(_SB.PCI0.IMEI) { Name(_ADR, 0x00160000) // deal with mixed system, HD3000/7-series, HD4000/6-series OperationRegion(MMD4, PCI_Config, 2, 2) Field(MMD4, AnyAcc, NoLock, Preserve) { MDID,16 } Method(_DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Local1 = ^^IGPU.GDID Local2 = MDID If (0x0166 == Local1 && 0x1c3a == Local2) { // HD4000 on 6-series, inject 7-series IMEI device-id Return (Package() { "device-id", Buffer() { 0x3a, 0x1e, 0, 0 } }) } ElseIf ((0x0116 == Local1 || 0x0126 == Local1) && 0x1e3a == Local2) { // HD3000 on 7-series, inject 6-series IMEI device-id Return (Package() { "device-id", Buffer() { 0x3a, 0x1c, 0, 0 } }) } Return (Package(){}) } } #define NO_DEFINITIONBLOCK #include "SSDT-PNLF.asl" } //EOF ================================================ FILE: hotpatch/SSDT-KEY102.asl ================================================ // for laptops that need 102-key layout //DefinitionBlock("", "SSDT", 2, "hack", "key102", 0) //{ External(\_SB.PCI0, DeviceObj) External(\_SB.PCI0.LPCB, DeviceObj) External(\_SB.PCI0.LPCB.PS2K, DeviceObj) Scope (\_SB.PCI0.LPCB.PS2K) { // Select specific keyboard map in VoodooPS2Keyboard.kext Method(_DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return (Package() { "RM,oem-id", "HPQOEM", "RM,oem-table-id", "ProBook-102", }) } } //} //EOF ================================================ FILE: hotpatch/SSDT-KEY87.asl ================================================ // for laptops that need 87-key layout //DefinitionBlock("", "SSDT", 2, "hack", "key87", 0) //{ External(\_SB.PCI0, DeviceObj) External(\_SB.PCI0.LPCB, DeviceObj) External(\_SB.PCI0.LPCB.PS2K, DeviceObj) Scope (\_SB.PCI0.LPCB.PS2K) { // Select specific keyboard map in VoodooPS2Keyboard.kext Method(_DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return (Package() { "RM,oem-id", "HPQOEM", "RM,oem-table-id", "ProBook-87", }) } } //} //EOF ================================================ FILE: hotpatch/SSDT-PEG0_PEGP_RDSS.asl ================================================ //DefinitionBlock("", "SSDT", 2, "hack", "PEG0PEGP", 0) //{ External(_SB.PCI0.PEG0.PEGP, DeviceObj) External(_SB.PCI0.PEG0.PEGP.XDSS, MethodObj) External(_SB.PCI0.PEG0.PEGP._OFF, MethodObj) External(_SB.PCI0.PEG0.PEGP._ON, MethodObj) External(_SB.PCI0.LPCB.EC.ECRG, IntObj) Scope(_SB.PCI0.PEG0.PEGP) { // original RDSS is renamed to XDSS // the original RDSS does not check for EC "ready" state Method(RDSS, 1) { // check if EC is ready and XDSS exists If (\_SB.PCI0.LPCB.EC.ECRG && CondRefOf(^XDSS)) { // call original RDSS (now renamed XDSS) XDSS(Arg0) } } } Scope(RMCF) { Method(RMOF) { If (CondRefOf(\_SB.PCI0.PEG0.PEGP._OFF)) { \_SB.PCI0.PEG0.PEGP._OFF() } } Method(RMON) { If (CondRefOf(\_SB.PCI0.PEG0.PEGP._ON)) { \_SB.PCI0.PEG0.PEGP._ON() } } Method(RDSS, 1) { If (CondRefOf(\_SB.PCI0.PEG0.PEGP.RDSS)) { \_SB.PCI0.PEG0.PEGP.RDSS(Arg0) } } } //} //EOF ================================================ FILE: hotpatch/SSDT-PEGP_DGFX_RDSS.asl ================================================ //DefinitionBlock("", "SSDT", 2, "hack", "PEGPDGFX", 0) //{ External(_SB.PCI0.PEGP.DGFX, DeviceObj) External(_SB.PCI0.PEGP.DGFX.XDSS, MethodObj) External(_SB.PCI0.PEGP.DGFX._OFF, MethodObj) External(_SB.PCI0.PEGP.DGFX._ON, MethodObj) External(_SB.PCI0.LPCB.EC.ECRG, IntObj) Scope(_SB.PCI0.PEGP.DGFX) { // original RDSS is renamed to XDSS // the original RDSS does not check for EC "ready" state Method(RDSS, 1) { // check if EC is ready and XDSS exists If (\_SB.PCI0.LPCB.EC.ECRG && CondRefOf(^XDSS)) { // call original RDSS (now renamed XDSS) XDSS(Arg0) } } } Scope(RMCF) { Method(RMOF) { If (CondRefOf(\_SB.PCI0.PEGP.DGFX._OFF)) { \_SB.PCI0.PEGP.DGFX._OFF() } } Method(RMON) { If (CondRefOf(\_SB.PCI0.PEGP.DGFX._ON)) { \_SB.PCI0.PEGP.DGFX._ON() } } Method(RDSS, 1) { If (CondRefOf(\_SB.PCI0.PEGP.DGFX.RDSS)) { \_SB.PCI0.PEGP.DGFX.RDSS(Arg0) } } } //} //EOF ================================================ FILE: hotpatch/SSDT-PNLF.asl ================================================ // Adding PNLF device for IntelBacklight.kext or AppleBacklight.kext+AppleBacklightFixup.kext #define FBTYPE_SANDYIVY 1 #define FBTYPE_HSWPLUS 2 #define FBTYPE_CFL 3 #define SANDYIVY_PWMMAX 0x710 #define HASWELL_PWMMAX 0xad9 #define SKYLAKE_PWMMAX 0x56c #define CUSTOM_PWMMAX_07a1 0x07a1 #define CUSTOM_PWMMAX_1499 0x1499 #define COFFEELAKE_PWMMAX 0xffff #ifndef NO_DEFINITIONBLOCK DefinitionBlock("", "SSDT", 2, "hack", "_PNLF", 0) { #endif External(RMCF.BKLT, IntObj) External(RMCF.LMAX, IntObj) External(RMCF.LEVW, IntObj) External(RMCF.GRAN, IntObj) External(RMCF.FBTP, IntObj) External(_SB.PCI0.IGPU, DeviceObj) Scope(_SB.PCI0.IGPU) { OperationRegion(RMP3, PCI_Config, 0, 0x14) } // For backlight control Device(_SB.PCI0.IGPU.PNLF) { Name(_ADR, Zero) Name(_HID, EisaId ("APP0002")) Name(_CID, "backlight") // _UID is set depending on PWMMax to match profiles in AppleBacklightFixup.kext Info.plist // 14: Sandy/Ivy 0x710 // 15: Haswell/Broadwell 0xad9 // 16: Skylake/KabyLake 0x56c (and some Haswell, example 0xa2e0008) // 17: custom LMAX=0x7a1 // 18: custom LMAX=0x1499 // 19: CoffeeLake 0xffff // 99: Other (requires custom AppleBacklightInjector.kext/AppleBackightFixup.kext) Name(_UID, 0) Name(_STA, 0x0B) Field(^RMP3, AnyAcc, NoLock, Preserve) { Offset(0x02), GDID,16, Offset(0x10), BAR1,32, } // IGPU PWM backlight register descriptions: // LEV2 not currently used // LEVL level of backlight in Sandy/Ivy // P0BL counter, when zero is vertical blank // GRAN see description below in INI1 method // LEVW should be initialized to 0xC0000000 // LEVX PWMMax except FBTYPE_HSWPLUS combo of max/level (Sandy/Ivy stored in MSW) // LEVD level of backlight for Coffeelake // PCHL not currently used OperationRegion(RMB1, SystemMemory, BAR1 & ~0xF, 0xe1184) Field(RMB1, AnyAcc, Lock, Preserve) { Offset(0x48250), LEV2, 32, LEVL, 32, Offset(0x70040), P0BL, 32, Offset(0xc2000), GRAN, 32, Offset(0xc8250), LEVW, 32, LEVX, 32, LEVD, 32, Offset(0xe1180), PCHL, 32, } // INI1 is common code used by FBTYPE_HSWPLUS and FBTYPE_CFL Method(INI1, 1) { // INTEL OPEN SOURCE HD GRAPHICS, INTEL IRIS GRAPHICS, AND INTEL IRIS PRO GRAPHICS PROGRAMMER'S REFERENCE MANUAL (PRM) // FOR THE 2015-2016 INTEL CORE PROCESSORS, CELERON PROCESSORS AND PENTIUM PROCESSORS BASED ON THE "SKYLAKE" PLATFORM // Volume 12: Display (https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol12-display.pdf) // page 189 // Backlight Enabling Sequence // Description // 1. Set frequency and duty cycle in SBLC_PWM_CTL2 Backlight Modulation Frequency and Backlight Duty Cycle. // 2. Set granularity in 0xC2000 bit 0 (0 = 16, 1 = 128). // 3. Enable PWM output and set polarity in SBLC_PWM_CTL1 PWM PCH Enable and Backlight Polarity. // 4. Change duty cycle as needed in SBLC_PWM_CTL2 Backlight Duty Cycle. // This 0xC value comes from looking what OS X initializes this // register to after display sleep (using ACPIDebug/ACPIPoller) If (0 == (2 & Arg0)) { Local5 = 0xC0000000 If (CondRefOf(\RMCF.LEVW)) { If (Ones != \RMCF.LEVW) { Local5 = \RMCF.LEVW } } ^LEVW = Local5 } // from step 2 above (you may need 1 instead) If (4 & Arg0) { If (CondRefOf(\RMCF.GRAN)) { ^GRAN = \RMCF.GRAN } Else { ^GRAN = 0 } } } Method(_INI) { // IntelBacklight.kext takes care of this at load time... // If RMCF.BKLT does not exist, it is assumed you want to use AppleBacklight.kext... Local4 = 1 If (CondRefOf(\RMCF.BKLT)) { Local4 = \RMCF.BKLT } If (!(1 & Local4)) { Return } // Adjustment required when using AppleBacklight.kext Local0 = ^GDID Local2 = Ones If (CondRefOf(\RMCF.LMAX)) { Local2 = \RMCF.LMAX } // Determine framebuffer type (for PWM register layout) Local3 = 0 If (CondRefOf(\RMCF.FBTP)) { Local3 = \RMCF.FBTP } // Now fixup the backlight PWM depending on the framebuffer type // At this point: // Local4 is RMCF.BLKT value, if specified (default is 1) // Local0 is device-id for IGPU // Local2 is LMAX, if specified (Ones means based on device-id) // Local3 is framebuffer type // check Sandy/Ivy If (FBTYPE_SANDYIVY == Local3 || Ones != Match(Package() { // Sandy HD3000 0x010b, 0x0102, 0x0106, 0x1106, 0x1601, 0x0116, 0x0126, 0x0112, 0x0122, // Ivy 0x0152, 0x0156, 0x0162, 0x0166, 0x016a, // Arrandale 0x0046, 0x0042, }, MEQ, Local0, MTR, 0, 0)) { if (Ones == Local2) { Local2 = SANDYIVY_PWMMAX } // change/scale only if different than current... Local1 = ^LEVX >> 16 If (!Local1) { Local1 = Local2 } If (Local2 != Local1) { // set new backlight PWMMax but retain current backlight level by scaling Local0 = (^LEVL * Local2) / Local1 //REVIEW: wait for vblank before setting new PWM config //For (Local7 = ^P0BL, ^P0BL == Local7, ) { } Local3 = Local2 << 16 If (Local2 > Local1) { // PWMMax is getting larger... store new PWMMax first ^LEVX = Local3 ^LEVL = Local0 } Else { // otherwise, store new brightness level, followed by new PWMMax ^LEVL = Local0 ^LEVX = Local3 } } } // check CoffeeLake ElseIf (FBTYPE_CFL == Local3 || Ones != Match(Package() { // CoffeeLake identifiers from AppleIntelCFLGraphicsFramebuffer.kext 0x3e9b, 0x3ea5, 0x3e92, 0x3e91, }, MEQ, Local0, MTR, 0, 0)) { if (Ones == Local2) { Local2 = COFFEELAKE_PWMMAX } INI1(Local4) // change/scale only if different than current... Local1 = ^LEVX If (!Local1) { Local1 = Local2 } If (Local2 != Local1) { // set new backlight PWMMax but retain current backlight level by scaling Local0 = (^LEVD * Local2) / Local1 //REVIEW: wait for vblank before setting new PWM config //For (Local7 = ^P0BL, ^P0BL == Local7, ) { } If (Local2 > Local1) { // PWMMax is getting larger... store new PWMMax first ^LEVX = Local2 ^LEVD = Local0 } Else { // otherwise, store new brightness level, followed by new PWMMax ^LEVD = Local0 ^LEVX = Local2 } } } // otherwise must be Haswell/Broadwell/Skylake/KabyLake/KabyLake-R (FBTYPE_HSWPLUS) Else { if (Ones == Local2) { // check Haswell and Broadwell, as they are both 0xad9 (for most common ig-platform-id values) If (Ones != Match(Package() { // Haswell 0x0d26, 0x0a26, 0x0d22, 0x0412, 0x0416, 0x0a16, 0x0a1e, 0x0a1e, 0x0a2e, 0x041e, 0x041a, // Broadwell 0x0bd1, 0x0bd2, 0x0BD3, 0x1606, 0x160e, 0x1616, 0x161e, 0x1626, 0x1622, 0x1612, 0x162b, }, MEQ, Local0, MTR, 0, 0)) { Local2 = HASWELL_PWMMAX } Else { // assume Skylake/KabyLake/KabyLake-R, both 0x56c // 0x1916, 0x191E, 0x1926, 0x1927, 0x1912, 0x1932, 0x1902, 0x1917, 0x191b, // 0x5916, 0x5912, 0x591b, others... Local2 = SKYLAKE_PWMMAX } } INI1(Local4) // change/scale only if different than current... Local1 = ^LEVX >> 16 If (!Local1) { Local1 = Local2 } If (Local2 != Local1) { // set new backlight PWMAX but retain current backlight level by scaling Local0 = (((^LEVX & 0xFFFF) * Local2) / Local1) | (Local2 << 16) //REVIEW: wait for vblank before setting new PWM config //For (Local7 = ^P0BL, ^P0BL == Local7, ) { } ^LEVX = Local0 } } // Now Local2 is the new PWMMax, set _UID accordingly // The _UID selects the correct entry in AppleBacklightFixup.kext If (Local2 == SANDYIVY_PWMMAX) { _UID = 14 } ElseIf (Local2 == HASWELL_PWMMAX) { _UID = 15 } ElseIf (Local2 == SKYLAKE_PWMMAX) { _UID = 16 } ElseIf (Local2 == CUSTOM_PWMMAX_07a1) { _UID = 17 } ElseIf (Local2 == CUSTOM_PWMMAX_1499) { _UID = 18 } ElseIf (Local2 == COFFEELAKE_PWMMAX) { _UID = 19 } Else { _UID = 99 } } } #ifndef NO_DEFINITIONBLOCK } #endif //EOF ================================================ FILE: hotpatch/SSDT-RMCF.asl ================================================ //DefinitionBlock("", "SSDT", 2, "hack", "hack", 0) //{ // // Configuration data // Device(RMCF) { Name(_ADR, 0) // do not remove Method(HELP) { Store("IGPI overrides ig-platform-id or snb-platform-id", Debug) Store("DGPU indicates whether discrete GPU should be disabled. bit0: startup, bit1: _PTS/_WAK", Debug) Store("BKLT indicates the type of backlight control. 0: IntelBacklight, 1: AppleBacklight", Debug) Store("LMAX indicates max for IGPU PWM backlight. Ones: Use default, other values must match framebuffer", Debug) Store("SHUT enables shutdown fix. 1: disables _PTS code when Arg0==5", Debug) Store("XPEE enables xHCI PMEE fix. 1: disable xHCI PMEE on _PTS when Arg0==5, 0: do not mess with XHC.PMEE", Debug) } // IGPI: Override for ig-platform-id (or snb-platform-id). Will be used if non-zero. // For example, if you wanted to inject a bogus id, 0x12345678 // Name(IGPI, 0x12345678) // You can also set it to Ones to disable IGPU injection // Name(IGPI, Ones) #ifndef OVERRIDE_IGPI Name(IGPI, 0) #else Name(IGPI, OVERRIDE_IGPI) #endif // LMAX: Backlight PWM MAX. Must match framebuffer in use. // // Ones: Default will be used (0x710 for Ivy/Sandy, 0xad9 for Haswell/Broadwell) // Other values: must match framebuffer #ifndef OVERRIDE_LMAX Name(LMAX, Ones) #else Name(LMAX, OVERRIDE_LMAX) #endif // BUID: Backlight _UID. _UID is matched against AppleBacklightFixup profiles // 0: Use default based on LMAX // Other values: customized, but must match a backlight profile #ifndef OVERRIDE_BUID Name(BUID, 0) #else Name(BUID, OVERRIDE_BUID) #endif // DGPU: Controls whether the DGPU is disabled via ACPI or not // bit 0: DGPU disabled at startup // bit 1: DGPU enabled in _PTS, disabled in _WAK // default is 3 #ifndef OVERRIDE_DGPU Name(DGPU, 3) #else Name(DGPU, OVERRIDE_DGPU) #endif // BKLT: Backlight control type // // 0: Using IntelBacklight.kext // 1: Using AppleBacklight.kext + AppleBacklightFixup.kext #ifndef OVERRIDE_BLKT Name(BKLT, 1) #else Name(BLKT, OVERRIDE_BKLT) #endif // SHUT: Shutdown fix, disable _PTS code when Arg0==5 (shutdown) // // 0: does not affect _PTS behavior during shutdown // 1: disables _PTS code during shutdown #ifndef OVERRIDE_SHUT Name(SHUT, 0) #else Name(SHUT, OVERRIDE_SHUT) #endif // XPEE // // 0: do not manipulate XHC.PMEE during shutdown // 1: disable XHC.PMEE during shutdown #ifndef OVERRIDE_XPEE Name(XPEE, 0) #else Name(XPEE, OVERRIDE_XPEE) #endif } //} ================================================ FILE: hotpatch/SSDT-RP01_PEGP_RDSS.asl ================================================ //DefinitionBlock("", "SSDT", 2, "hack", "RP01PEGP", 0) //{ External(_SB.PCI0.RP01.PEGP, DeviceObj) External(_SB.PCI0.RP01.PEGP.XDSS, MethodObj) External(_SB.PCI0.RP01.PEGP._OFF, MethodObj) External(_SB.PCI0.RP01.PEGP._ON, MethodObj) External(_SB.PCI0.LPCB.EC.ECRG, IntObj) Scope(_SB.PCI0.RP01.PEGP) { // original RDSS is renamed to XDSS // the original RDSS does not check for EC "ready" state Method(RDSS, 1) { // check if EC is ready and XDSS exists If (\_SB.PCI0.LPCB.EC.ECRG && CondRefOf(^XDSS)) { // call original RDSS (now renamed XDSS) XDSS(Arg0) } } } Scope(RMCF) { Method(RMOF) { If (CondRefOf(\_SB.PCI0.RP01.PEGP._OFF)) { \_SB.PCI0.RP01.PEGP._OFF() } } Method(RMON) { If (CondRefOf(\_SB.PCI0.RP01.PEGP._ON)) { \_SB.PCI0.RP01.PEGP._ON() } } Method(RDSS, 1) { If (CondRefOf(\_SB.PCI0.RP01.PEGP.RDSS)) { \_SB.PCI0.RP01.PEGP.RDSS(Arg0) } } } //} //EOF ================================================ FILE: hotpatch/SSDT-RP01_PXSX_RDSS.asl ================================================ //DefinitionBlock("", "SSDT", 2, "hack", "RP01PXSX", 0) //{ External(_SB.PCI0.RP01.PXSX, DeviceObj) External(_SB.PCI0.RP01.PXSX.XDSS, MethodObj) External(_SB.PCI0.RP01.PXSX._OFF, MethodObj) External(_SB.PCI0.RP01.PXSX._ON, MethodObj) External(_SB.PCI0.LPCB.EC.ECRG, IntObj) Scope(_SB.PCI0.RP01.PXSX) { // original RDSS is renamed to XDSS // the original RDSS does not check for EC "ready" state Method(RDSS, 1) { // check if EC is ready and XDSS exists If (\_SB.PCI0.LPCB.EC.ECRG && CondRefOf(^XDSS)) { // call original RDSS (now renamed XDSS) XDSS(Arg0) } } } Scope(RMCF) { Method(RMOF) { If (CondRefOf(\_SB.PCI0.RP01.PXSX._OFF)) { \_SB.PCI0.RP01.PXSX._OFF() } } Method(RMON) { If (CondRefOf(\_SB.PCI0.RP01.PXSX._ON)) { \_SB.PCI0.RP01.PXSX._ON() } } Method(RDSS, 1) { If (CondRefOf(\_SB.PCI0.RP01.PXSX.RDSS)) { \_SB.PCI0.RP01.PXSX.RDSS(Arg0) } } } //} //EOF ================================================ FILE: hotpatch/SSDT-RP05_DGFX_RDSS.asl ================================================ //DefinitionBlock("", "SSDT", 2, "hack", "RP05DGFX", 0) //{ External(_SB.PCI0.RP05.DGFX, DeviceObj) External(_SB.PCI0.RP05.DGFX.XDSS, MethodObj) External(_SB.PCI0.RP05.DGFX._OFF, MethodObj) External(_SB.PCI0.RP05.DGFX._ON, MethodObj) External(_SB.PCI0.LPCB.EC.ECRG, IntObj) Scope(_SB.PCI0.RP05.DGFX) { // original RDSS is renamed to XDSS // the original RDSS does not check for EC "ready" state Method(RDSS, 1) { // check if EC is ready and XDSS exists If (\_SB.PCI0.LPCB.EC.ECRG && CondRefOf(^XDSS)) { // call original RDSS (now renamed XDSS) XDSS(Arg0) } } } Scope(RMCF) { Method(RMOF) { If (CondRefOf(\_SB.PCI0.RP05.DGFX._OFF)) { \_SB.PCI0.RP05.DGFX._OFF() } } Method(RMON) { If (CondRefOf(\_SB.PCI0.RP05.DGFX._ON)) { \_SB.PCI0.RP05.DGFX._ON() } } Method(RDSS, 1) { If (CondRefOf(\_SB.PCI0.RP05.DGFX.RDSS)) { \_SB.PCI0.RP05.DGFX.RDSS(Arg0) } } } //} //EOF ================================================ FILE: hotpatch/SSDT-RP05_PEGP_RDSS.asl ================================================ //DefinitionBlock("", "SSDT", 2, "hack", "RP05PEGP", 0) //{ External(_SB.PCI0.RP05.PEGP, DeviceObj) External(_SB.PCI0.RP05.PEGP.XDSS, MethodObj) External(_SB.PCI0.RP05.PEGP._OFF, MethodObj) External(_SB.PCI0.RP05.PEGP._ON, MethodObj) External(_SB.PCI0.LPCB.EC.ECRG, IntObj) Scope(_SB.PCI0.RP05.PEGP) { // original RDSS is renamed to XDSS // the original RDSS does not check for EC "ready" state Method(RDSS, 1) { // check if EC is ready and XDSS exists If (\_SB.PCI0.LPCB.EC.ECRG && CondRefOf(^XDSS)) { // call original RDSS (now renamed XDSS) XDSS(Arg0) } } } Scope(RMCF) { Method(RMOF) { If (CondRefOf(\_SB.PCI0.RP05.PEGP._OFF)) { \_SB.PCI0.RP05.PEGP._OFF() } } Method(RMON) { If (CondRefOf(\_SB.PCI0.RP05.PEGP._ON)) { \_SB.PCI0.RP05.PEGP._ON() } } Method(RDSS, 1) { If (CondRefOf(\_SB.PCI0.RP05.PEGP.RDSS)) { \_SB.PCI0.RP05.PEGP.RDSS(Arg0) } } } //} //EOF ================================================ FILE: hotpatch/SSDT-RP05_PXSX_RDSS.asl ================================================ //DefinitionBlock("", "SSDT", 2, "hack", "RP05PXSX", 0) //{ External(_SB.PCI0.RP05.PXSX, DeviceObj) External(_SB.PCI0.RP05.PXSX.XDSS, MethodObj) External(_SB.PCI0.RP05.PXSX._OFF, MethodObj) External(_SB.PCI0.RP05.PXSX._ON, MethodObj) External(_SB.PCI0.LPCB.EC.ECRG, IntObj) Scope(_SB.PCI0.RP05.PXSX) { // original RDSS is renamed to XDSS // the original RDSS does not check for EC "ready" state Method(RDSS, 1) { // check if EC is ready and XDSS exists If (\_SB.PCI0.LPCB.EC.ECRG && CondRefOf(^XDSS)) { // call original RDSS (now renamed XDSS) XDSS(Arg0) } } } Scope(RMCF) { Method(RMOF) { If (CondRefOf(\_SB.PCI0.RP05.PXSX._OFF)) { \_SB.PCI0.RP05.PXSX._OFF() } } Method(RMON) { If (CondRefOf(\_SB.PCI0.RP05.PXSX._ON)) { \_SB.PCI0.RP05.PXSX._ON() } } Method(RDSS, 1) { If (CondRefOf(\_SB.PCI0.RP05.PXSX.RDSS)) { \_SB.PCI0.RP05.PXSX.RDSS(Arg0) } } } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-1020-G1.asl ================================================ // USBInjectAll configuration/override for EliteBook Folio 1020 G1 // // ports here are based on ioreg from corem's HP EliteBook Folio 1020 G1 // //DefinitionBlock("", "SSDT", 2, "hack", "usb1020g1", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9cb1", Package() { //"port-count", Buffer() { 0x0f, 0, 0, 0}, "ports", Package() { "HS01", Package() // HS USB3 (hub on dock) { "UsbConnector", 3, "port", Buffer() { 0x01, 0, 0, 0 }, }, "HS02", Package() // HS USB3 left { "UsbConnector", 3, "port", Buffer() { 0x02, 0, 0, 0 }, }, "HS03", Package() // HS USB3 right { "UsbConnector", 3, "port", Buffer() { 0x03, 0, 0, 0 }, }, "HS04", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 0x04, 0, 0, 0 }, }, //HS05 is finger print reader (disabled) #if 0 "HS06", Package() // internal WWAN { "UsbConnector", 255, "port", Buffer() { 0x06, 0, 0, 0 }, }, #endif "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 0x07, 0, 0, 0 }, }, "HS08", Package() // touch screen { "UsbConnector", 255, "port", Buffer() { 0x08, 0, 0, 0 }, }, //HS09,HS10,HS11 not used "SS01", Package() // SS USB3 (hub on dock) { "UsbConnector", 3, "port", Buffer() { 0x0c, 0, 0, 0 }, }, "SS02", Package() // SS USB3 left { "UsbConnector", 3, "port", Buffer() { 0x0d, 0, 0, 0 }, }, "SS03", Package() // SS USB3 right { "UsbConnector", 3, "port", Buffer() { 0x0e, 0, 0, 0 }, }, //SS04 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-1030-G1.asl ================================================ // USBInjectAll configuration/override for EliteBook 1030 G1 (Skylake) // // data from livacore's EliteBook 1030 G1 //DefinitionBlock("", "SSDT", 2, "hack", "usb1030g1", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9d2f", Package() { "port-count", Buffer() { 18, 0, 0, 0 }, "ports", Package() { "HS01", Package() // HS USB3, left rear { "UsbConnector", 3, "port", Buffer() { 1, 0, 0, 0 }, }, #if 0 // disabled "HS02", Package() // Fingerprint Reader { "UsbConnector", 255, "port", Buffer() { 2, 0, 0, 0 }, }, #endif "HS03", Package() // HP HD Camera { "UsbConnector", 255, "port", Buffer() { 3, 0, 0, 0 }, }, // HS04 not used "HS05", Package() // HS USB3, right & HS USB3, hub on dock { "UsbConnector", 3, "port", Buffer() { 5, 0, 0, 0 }, }, // HS06 not used "HS07", Package() // HS USB-C, left front { "UsbConnector", 10, "port", Buffer() { 7, 0, 0, 0 }, }, // HS08 not used "HS09", Package() // BT { "UsbConnector", 255, "port", Buffer() { 9, 0, 0, 0 }, }, //HS10 not used //USR1 not used //USR2 not used "SS01", Package() // SS USB3, left rear { "UsbConnector", 3, "port", Buffer() { 13, 0, 0, 0 }, }, "SS02", Package() // SS USB3, right { "UsbConnector", 3, "port", Buffer() { 14, 0, 0, 0 }, }, "SS03", Package() // USB-C, left front { "UsbConnector", 10, "port", Buffer() { 15, 0, 0, 0 }, }, "SS04", Package() // USB-C, left front { "UsbConnector", 10, "port", Buffer() { 16, 0, 0, 0 }, }, "SS05", Package() // SS USB3, hub on dock { "UsbConnector", 3, "port", Buffer() { 17, 0, 0, 0 }, }, // SS06 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-1040-G3.asl ================================================ // USBInjectAll configuration/override for EliteBook 1040 G3 (Skylake) // // Based on information provided from expastname's Skylake EliteBook 1040 G3 //DefinitionBlock("", "SSDT", 2, "hack", "usb1040g3", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9d2f", Package() { "Disabled", ">y", // data is incomplete (no dock ports), so disabled for now //"port-count", Buffer() { 18, 0, 0, 0 }, "ports", Package() { "HS01", Package() //USB2 External port Right { "UsbConnector", 3, "port", Buffer() { 1, 0, 0, 0 }, }, "HS02", Package() //USB2 External port Left { "UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HS07", Package() //Bluetooth { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, // HS08 is finger print reader (disabled) "HS09", Package() //Camera { "UsbConnector", 255, "port", Buffer() { 9, 0, 0, 0 }, }, "SS01", Package() //USB3 External port Right { "UsbConnector", 3, "port", Buffer() { 13, 0, 0, 0 }, }, "SS02", Package() //USB3 External port Left { "UsbConnector", 3, "port", Buffer() { 14, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-1050-G1.asl ================================================ // USBInjectAll configuration/override for EliteBook 1050 G1 (KabyLake-R) // // Based on information provided from Kuque KabyLake-R EliteBook 1050 G1 //DefinitionBlock("", "SSDT", 2, "hack", "usb1050g1", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name (_HID, "UIA00000") // _HID: Hardware ID Name (RMCF, Package (0x02) { "8086_a36d", Package() { "port-count", Buffer() { 26, 0, 0, 0 }, "ports", Package() { "HS04", Package() // rear USB3 { "UsbConnector", 3, "port", Buffer() { 4, 0, 0, 0 }, }, "HS05", Package() // front USB3 { "UsbConnector", 3, "port", Buffer() { 5, 0, 0, 0 }, }, "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, #if 0 "HS08", Package() // finger print reader (disabled) { "UsbConnector", 255, "port", Buffer() { 8, 0, 0, 0 }, }, #endif "HS11", Package() // rear type-C { "UsbConnector", 10, "port", Buffer() { 11, 0, 0, 0 }, }, "HS13", Package() // front type-C { "UsbConnector", 10, "port", Buffer() { 13, 0, 0, 0 }, }, "HS14", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 14, 0, 0, 0 }, }, "SS03", Package() // rear USB3 { "UsbConnector", 3, "port", Buffer() { 19, 0, 0, 0 }, }, "SS04", Package() // front USB3 { "UsbConnector", 3, "port", Buffer() { 20, 0, 0, 0 }, }, #if 0 // up to 4 of these SS ports may be used by the front/rear type-C "SS05", Package() { "UsbConnector", 3, "port", Buffer() { 21, 0, 0, 0 }, }, "SS06", Package() { "UsbConnector", 3, "port", Buffer() { 22, 0, 0, 0 }, }, "SS07", Package() { "UsbConnector", 3, "port", Buffer() { 23, 0, 0, 0 }, }, "SS08", Package() { "UsbConnector", 3, "port", Buffer() { 24, 0, 0, 0 }, }, "SS09", Package() { "UsbConnector", 3, "port", Buffer() { 25, 0, 0, 0 }, }, "SS10", Package() { "UsbConnector", 3, "port", Buffer() { 26, 0, 0, 0 }, }, "USR1", Package() { "UsbConnector", 3, "port", Buffer() { 15, 0, 0, 0 }, }, "USR2", Package() { "UsbConnector", 3, "port", Buffer() { 16, 0, 0, 0 }, }, #endif }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-2x70.asl ================================================ // USB configuration for EliteBook 2x70 // // This information from an EliteBook 2570p. //DefinitionBlock("", "SSDT", 2, "hack", "usb2x70", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // EHCI#1 "EH01", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "PR11", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, /// hub on port #1 EHCI#1 "HUB1", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "HP13", Package() // HS USB3 right side { //"UsbConnector", 3, "port", Buffer() { 3, 0, 0, 0 }, }, "HP14", Package() // HS USB3 rear bottom { //"UsbConnector", 3, "port", Buffer() { 4, 0, 0, 0 }, }, "HP16", Package() // bluetooth { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 6, 0, 0, 0 }, }, }, }, // EHCI#2 "EH02", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { "PR21", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, // hub on port#1 EHCI#2 "HUB2", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { #if 0 "HP21", Package() // fingerprint reader (disabled) { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 1, 0, 0, 0 }, }, #endif "HP22", Package() // USB2 rear top { //"UsbConnector", 0, "port", Buffer() { 2, 0, 0, 0 }, }, "HP23", Package() // camera { //"UsbConnector", 255, //"portType", 4, // fix for camera after sleep? "portType", 2, "port", Buffer() { 3, 0, 0, 0 }, }, }, }, // XHC "8086_1e31", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { // HS01-HS04 not used due to FakePCIID_XHCIMux // SS05/SS06 not used "SS07", Package() // SS USB3 right side { "UsbConnector", 3, "port", Buffer() { 7, 0, 0, 0 }, }, "SS08", Package() // SS USB3 rear bottom { "UsbConnector", 3, "port", Buffer() { 8, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-4x0-G0.asl ================================================ // USB configuration for 4x0 G0 Ivy // based on data provided from a ProBook 470 G0 by Reprise80 // Note: it is essentially the same as for ProBook 4x40s //DefinitionBlock("", "SSDT", 2, "hack", "usb4x0G0", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // EHCI#1 "EH01", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "PR11", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, /// hub on port #1 EHCI#1 "HUB1", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "HP12", Package() // HS USB3 near left { //"UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HP13", Package() // HS USB3 far left { //"UsbConnector", 3, "port", Buffer() { 3, 0, 0, 0 }, }, "HP14", Package() // USB2 far right { //"UsbConnector", 0, "port", Buffer() { 4, 0, 0, 0 }, }, "HP16", Package() // bluetooth { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 6, 0, 0, 0 }, }, }, }, // EHCI#2 "EH02", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { "PR21", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, // hub on port#1 EHCI#2 "HUB2", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { #if 0 "HP21", Package() // fingerprint reader (disabled) { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 1, 0, 0, 0 }, }, #endif "HP22", Package() // USB2 near right { //"UsbConnector", 0, "port", Buffer() { 2, 0, 0, 0 }, }, "HP23", Package() // camera { //"UsbConnector", 255, "portType", 2, //"portType", 4, // fix for camera after sleep? "port", Buffer() { 3, 0, 0, 0 }, }, }, }, // XHC "8086_1e31", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { // HS01 not used // HS02-HS04 not used due to FakePCIID_XHCIMux // HS02 HS USB3 near left // HS03 HS USB3 far left // HS04 USB2 far right // SS05 not used "SS06", Package() // SS USB3 near left { "UsbConnector", 3, "port", Buffer() { 6, 0, 0, 0 }, }, "SS07", Package() // SS USB3 far left { "UsbConnector", 3, "port", Buffer() { 7, 0, 0, 0 }, }, // SS08 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-4x0-G1.asl ================================================ // USBInjectAll configuration/override for ProBook 4x0 G1 Haswell // // Based on information provided from ProBook 450 G1 Haswell (from Titanius) // //DefinitionBlock("", "SSDT", 2, "hack", "usb4x0g1", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_8c31", Package() { //"port-count", Buffer() { 21, 0, 0, 0 }, "ports", Package() { //HS01 not used "HS02", Package() // HS USB3 left back { "UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HS03", Package() // HS USB3 left front { "UsbConnector", 3, "port", Buffer() { 3, 0, 0, 0 }, }, "HS04", Package() // USB2 right front { "UsbConnector", 0, "port", Buffer() { 4, 0, 0, 0 }, }, //HS05 is finger print reader (disabled) "HS06", Package() // USB2 right back { "UsbConnector", 0, "port", Buffer() { 6, 0, 0, 0 }, }, "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, //HS08/HS09/HS10/HS11 not used "HS12", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 12, 0, 0, 0 }, }, //HS13/HS14 not used //HS15 is phantom port (port address 15 not used) //SS01 not used "SS02", Package() // SS USB3 left back { "UsbConnector", 3, "port", Buffer() { 17, 0, 0, 0 }, }, "SS03", Package() // SS USB3 left front { "UsbConnector", 3, "port", Buffer() { 18, 0, 0, 0 }, }, //SS04/SS05/SS06 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-4x0-G2.asl ================================================ // USBInjectAll configuration/override for ProBook 4x0s G2 // // investigative work done by mo7a1995 (with direction from RehabMan) // // modifications based on Titanius 450 G2 Haswell. // added HS08 for USB2 port reported not working by daniela-sammartino //DefinitionBlock("", "SSDT", 2, "hack", "usb4x0g2", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9c31", Package() // for G2 Haswell { //"port-count", Buffer() { 13, 0, 0, 0}, "ports", Package() { "HS01", Package() // USB2, (right back) { "UsbConnector", 0, "port", Buffer() { 1, 0, 0, 0 }, }, "HS02", Package() // HS component of SS port, (left back) { "UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HS03", Package() // HS component of SS port, (left front) { "UsbConnector", 3, "port", Buffer() { 3, 0, 0, 0 }, }, "HS04", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 4, 0, 0, 0 }, }, #if 0 "HS05", Package() // fingerprint reader (disabled) { "UsbConnector", 255, "port", Buffer() { 5, 0, 0, 0 }, }, #endif "HS06", Package() // internal WWAN { "UsbConnector", 255, "port", Buffer() { 6, 0, 0, 0 }, }, "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, "HS08", Package() // USB2, (right front) { "UsbConnector", 0, "port", Buffer() { 8, 0, 0, 0 }, }, //HS09 not used "SS01", Package() // SS USB3 (left front) { "UsbConnector", 3, "port", Buffer() { 10, 0, 0, 0 }, }, "SS02", Package() // SS USB3 (left back) { "UsbConnector", 3, "port", Buffer() { 11, 0, 0, 0 }, }, //SS03 not used //SS04 not used }, }, "8086_9cb1", Package() // for G2 Broadwell { //"port-count", Buffer() { 15, 0, 0, 0}, "ports", Package() { "HS01", Package() // USB2 (right back) { "UsbConnector", 0, "port", Buffer() { 1, 0, 0, 0 }, }, "HS02", Package() // HS USB3 (left back) { "UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HS03", Package() // HS USB3 (left front) { "UsbConnector", 3, "port", Buffer() { 3, 0, 0, 0 }, }, "HS04", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 4, 0, 0, 0 }, }, #if 0 "HS05", Package() // fingerprint reader (disabled) { "UsbConnector", 255, "port", Buffer() { 5, 0, 0, 0 }, }, #endif "HS06", Package() // internal WWAN { "UsbConnector", 255, "port", Buffer() { 6, 0, 0, 0 }, }, "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, "HS08", Package() // USB2 port (right front) { "UsbConnector", 0, "port", Buffer() { 8, 0, 0, 0 }, }, //HS09 not used //HS10 not used //HS11 not used "SS01", Package() // SS USB3 (left front) { "UsbConnector", 3, "port", Buffer() { 12, 0, 0, 0 }, }, "SS02", Package() // SS USB3 (left back) { "UsbConnector", 3, "port", Buffer() { 13, 0, 0, 0 }, }, //SS03 not used //SS04 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-4x0-G3.asl ================================================ // USBInjectAll configuration/override for Probook 4x0 G3 (Skylake) // // Based on information provided from bran1m1r's Skylake ProBook 440 G3 // HS05 port added for Skylake ProBook 450 G3 (per data from mo7a1995) //DefinitionBlock("", "SSDT", 2, "hack", "usb4x0g3", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9d2f", Package() { "port-count", Buffer() { 18, 0, 0, 0 }, "ports", Package() { "HS01", Package() // HS component of SS port { "UsbConnector", 3, "port", Buffer() { 1, 0, 0, 0 }, }, "HS02", Package() // HS component of SS port { "UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, //HS03 not used "HS04", Package() // USB2 port { "UsbConnector", 0, "port", Buffer() { 4, 0, 0, 0 }, }, "HS05", Package() // USB2 port { "UsbConnector", 0, "port", Buffer() { 5, 0, 0, 0 }, }, "HS06", Package() // camera { "UsbConnector", 255, "port", Buffer() { 6, 0, 0, 0 }, }, "HS07", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, #if 0 "HS08", Package() // finger print reader (disabled) { "UsbConnector", 255, "port", Buffer() { 8, 0, 0, 0 }, }, #endif //HS09/HS10 not used "SS01", Package() { "UsbConnector", 3, "port", Buffer() { 13, 0, 0, 0 }, }, "SS02", Package() { "UsbConnector", 3, "port", Buffer() { 14, 0, 0, 0 }, }, //SS03-SS06 not used //USR1/USR2 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-4x0-G4.asl ================================================ // USBInjectAll configuration/override for Probook 4x0 G4 (Skylake) // // Based on information provided from Mario's KabyLake ProBook 440 G4 // HS05 port added for Skylake ProBook 450 G3 (per data from mo7a1995) //DefinitionBlock("", "SSDT", 2, "hack", "usb4x0g4", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9d2f", Package() { "port-count", Buffer() { 18, 0, 0, 0 }, "ports", Package() { "HS01", Package() // HS component of USB3 port (440 G4, right) { "UsbConnector", 3, "port", Buffer() { 1, 0, 0, 0 }, }, "HS02", Package() // HS component of USB-C port (440 G4, right) { "UsbConnector", 10, "port", Buffer() { 2, 0, 0, 0 }, }, //HS03 not used "HS04", Package() // USB2 port (440 G4, left) { "UsbConnector", 0, "port", Buffer() { 4, 0, 0, 0 }, }, "HS05", Package() // USB2 port (not on 440 G4, but enabled for case of 450 G4 may have it) { "UsbConnector", 0, "port", Buffer() { 5, 0, 0, 0 }, }, "HS06", Package() // camera { "UsbConnector", 255, "port", Buffer() { 6, 0, 0, 0 }, }, "HS07", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, #if 0 "HS08", Package() // finger print reader (disabled) { "UsbConnector", 255, "port", Buffer() { 8, 0, 0, 0 }, }, #endif //HS09/HS10 not used "SS01", Package() // SS component of USB3 port (440 G4, right) { "UsbConnector", 3, "port", Buffer() { 13, 0, 0, 0 }, }, "SS02", Package() // SS1 component of USB-C port (440 G4, right) { "UsbConnector", 10, "port", Buffer() { 14, 0, 0, 0 }, }, "SS03", Package() // SS2 component of USB-C port (440 G4, right) { "UsbConnector", 10, "port", Buffer() { 15, 0, 0, 0 }, }, //SS04-SS06 not used //USR1/USR2 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-4x30s.asl ================================================ // USB configuration for 4x30s //DefinitionBlock("", "SSDT", 2, "hack", "usb4x30s", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // EHCI#1 "EH01", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "PR11", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, /// hub on port #1 EHCI#1 "HUB1", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "HP11", Package() // USB2 near left { //"UsbConnector", 0, "port", Buffer() { 1, 0, 0, 0 }, }, "HP12", Package() // USB2 near right { //"UsbConnector", 0, "port", Buffer() { 2, 0, 0, 0 }, }, "HP13", Package() // USB2 far left { //"UsbConnector", 0, "port", Buffer() { 3, 0, 0, 0 }, }, "HP14", Package() // camera { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 4, 0, 0, 0 }, }, "HP16", Package() // bluetooth { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 6, 0, 0, 0 }, }, }, }, // EHCI#2 "EH02", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { "PR21", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, // hub on port#1 EHCI#2 "HUB2", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { #if 0 "HP21", Package() // fingerprint reader (disabled) { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 1, 0, 0, 0 }, }, #endif "HP23", Package() // USB2 far right { //"UsbConnector", 0, "port", Buffer() { 3, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-4x40s.asl ================================================ // USB configuration for 4x40s //DefinitionBlock("", "SSDT", 2, "hack", "usb4x40s", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // EHCI#1 "EH01", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "PR11", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, /// hub on port #1 EHCI#1 "HUB1", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "HP12", Package() // HS USB3 near left { //"UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HP13", Package() // HS USB3 far left { //"UsbConnector", 3, "port", Buffer() { 3, 0, 0, 0 }, }, "HP14", Package() // USB2 far right { //"UsbConnector", 0, "port", Buffer() { 4, 0, 0, 0 }, }, "HP16", Package() // bluetooth { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 6, 0, 0, 0 }, }, }, }, // EHCI#2 "EH02", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { "PR21", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, // hub on port#1 EHCI#2 "HUB2", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { #if 0 "HP21", Package() // fingerprint reader (disabled) { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 1, 0, 0, 0 }, }, #endif "HP22", Package() // USB2 near right { //"UsbConnector", 0, "port", Buffer() { 2, 0, 0, 0 }, }, "HP23", Package() // camera { //"UsbConnector", 255, "portType", 2, //"portType", 4, // fix for camera after sleep? "port", Buffer() { 3, 0, 0, 0 }, }, }, }, // XHC "8086_1e31", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { // HS01 not used // HS02-HS04 not used due to FakePCIID_XHCIMux // HS02 HS USB3 near left // HS03 HS USB3 far left // HS04 USB2 far right // SS05 not used "SS06", Package() // SS USB3 near left { "UsbConnector", 3, "port", Buffer() { 6, 0, 0, 0 }, }, "SS07", Package() // SS USB3 far left { "UsbConnector", 3, "port", Buffer() { 7, 0, 0, 0 }, }, // SS08 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-640-G2.asl ================================================ // USBInjectAll configuration/override for ProBook 640 G2 Skylake // // Based on information provided from chezyann's ProBook 640 G2 Skylake // USB-C port and dock USB3 info provided by Las_Vegas (also a 640 G2 Skylake) //REVIEW: rename to SSDT-USB-6x0-G2.dsl //DefinitionBlock("", "SSDT", 2, "hack", "usb640g2s", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9d2f", Package() { "port-count", Buffer() { 18, 0, 0, 0 }, "ports", Package() { "HS01", Package() // HS component of SS02 port { "UsbConnector", 3, "port", Buffer() { 1, 0, 0, 0 }, }, "HS02", Package() // HS component of SS01 port { "UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, //HS03 not used "HS04", Package() // HS component of Dock { "UsbConnector", 3, "port", Buffer() { 4, 0, 0, 0 }, }, "HS05", Package() // HS component of C port { "UsbConnector", 10, "port", Buffer() { 5, 0, 0, 0 }, }, //HS06 not used "HS07", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, //HS08 is fingerprint reader (disabled) "HS09", Package() // camera { "UsbConnector", 255, "port", Buffer() { 9, 0, 0, 0 }, }, //HS10 not used "SS01", Package() { "UsbConnector", 3, "port", Buffer() { 13, 0, 0, 0 }, }, "SS02", Package() { "UsbConnector", 3, "port", Buffer() { 14, 0, 0, 0 }, }, "SS03", Package() // C port { "UsbConnector", 10, "port", Buffer() { 15, 0, 0, 0 }, }, "SS04", Package() // Dock Extension { "UsbConnector", 3, "port", Buffer() { 16, 0, 0, 0 }, }, "SS05", Package() // C port inverted { "UsbConnector", 10, "port", Buffer() { 17, 0, 0, 0 }, }, //SS06 not used //USR1/USR2 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-6x0-G1.asl ================================================ // USBInjectAll configuration/override for ProBook 6x0 G1 Haswell // // Based on information provided from ProBook 650 G1 //DefinitionBlock("", "SSDT", 2, "hack", "usb6x0g1", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_8c31", Package() { //"port-count", Buffer() { 21, 0, 0, 0 }, "ports", Package() { "HS01", Package() // HS USB3 hub, docking station { "UsbConnector", 3, "port", Buffer() { 1, 0, 0, 0 }, }, "HS02", Package() // HS USB3 right back { "UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HS03", Package() // HS USB3 right front { "UsbConnector", 3, "port", Buffer() { 3, 0, 0, 0 }, }, "HS04", Package() // HS USB3 left center { "UsbConnector", 3, "port", Buffer() { 4, 0, 0, 0 }, }, //HS05 is finger print reader (disabled) //HS06 not used "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, //HS08 not used "HS09", Package() // HS USB3 left back { "UsbConnector", 3, "port", Buffer() { 9, 0, 0, 0 }, }, "HS10", Package() // HS USB3 left front { "UsbConnector", 3, "port", Buffer() { 10, 0, 0, 0 }, }, "HS11", Package() // WWAN card { "UsbConnector", 255, "port", Buffer() { 11, 0, 0, 0 }, }, "HS12", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 12, 0, 0, 0 }, }, //HS13 not used //HS14 is smart card reader (disabled) //HS15 is phantom port (port address 15 not used) "SS01", Package() // SS USB3 hub, docking station { "UsbConnector", 3, "port", Buffer() { 16, 0, 0, 0 }, }, "SS02", Package() // SS USB3 right back { "UsbConnector", 3, "port", Buffer() { 17, 0, 0, 0 }, }, "SS03", Package() // SS USB3 right front { "UsbConnector", 3, "port", Buffer() { 18, 0, 0, 0 }, }, "SS04", Package() // SS USB3 left center { "UsbConnector", 3, "port", Buffer() { 19, 0, 0, 0 }, }, "SS05", Package() // SS USB3 left back { "UsbConnector", 3, "port", Buffer() { 20, 0, 0, 0 }, }, "SS06", Package() // SS USB3 left front { "UsbConnector", 3, "port", Buffer() { 21, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-6x60.asl ================================================ // USB configuration for EliteBook 6x60 // Based on information from EliteBook 6460p //DefinitionBlock("", "SSDT", 2, "hack", "usb6x60", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // EHCI#1 "EH01", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "PR11", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, /// hub on port #1 EHCI#1 "HUB1", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "HP11", Package() // USB2 near left { //"UsbConnector", 0, "port", Buffer() { 1, 0, 0, 0 }, }, "HP12", Package() // USB2 near right { //"UsbConnector", 0, "port", Buffer() { 2, 0, 0, 0 }, }, "HP13", Package() // USB2 far left { //"UsbConnector", 0, "port", Buffer() { 3, 0, 0, 0 }, }, "HP14", Package() // camera { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 4, 0, 0, 0 }, }, "HP16", Package() // bluetooth { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 6, 0, 0, 0 }, }, //HP18 is smart card reader (disabled) }, }, // EHCI#2 "EH02", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { "PR21", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, // hub on port#1 EHCI#2 "HUB2", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { #if 0 "HP21", Package() // fingerprint reader (disabled) { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 1, 0, 0, 0 }, }, #endif "HP22", Package() // WWAN module { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 2, 0, 0, 0 }, }, "HP23", Package() // USB2 far right { //"UsbConnector", 0, "port", Buffer() { 3, 0, 0, 0 }, }, "HP24", Package() // USB2 4-port hub on docking station { //"UsbConnector", 0, "port", Buffer() { 4, 0, 0, 0 }, }, "HP25", Package() // extra USB2 on 6560b { //"UsbConnector", 0, "port", Buffer() { 5, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-6x70.asl ================================================ // USB configuration for EliteBook 6x70 // // This information from an EliteBook 6570b (courtesy Xeon3D). //DefinitionBlock("", "SSDT", 2, "hack", "usb6x70", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // EHCI#1 "EH01", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "PR11", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, /// hub on port #1 EHCI#1 "HUB1", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "HP12", Package() // USB2 left near hinge { //"UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HP13", Package() // HS USB3 right near hinge { //"UsbConnector", 3, "port", Buffer() { 3, 0, 0, 0 }, }, "HP14", Package() // HS USB3 right far from hinge { //"UsbConnector", 0, "port", Buffer() { 4, 0, 0, 0 }, }, "HP16", Package() // bluetooth { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 6, 0, 0, 0 }, }, }, }, // EHCI#2 "EH02", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { "PR21", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, // hub on port#1 EHCI#2 "HUB2", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { #if 0 "HP21", Package() // fingerprint reader (disabled) { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 1, 0, 0, 0 }, }, #endif "HP22", Package() // USB2 left middle (near power button) { //"UsbConnector", 0, "port", Buffer() { 2, 0, 0, 0 }, }, "HP23", Package() // camera { //"UsbConnector", 255, "portType", 2, //"portType", 4, // fix for camera after sleep? "port", Buffer() { 3, 0, 0, 0 }, }, "HP26", Package() // USB2 left near ctrl key (USB2/eSATA port) { //"UsbConnector", 0, "port", Buffer() { 6, 0, 0, 0 }, }, }, }, // XHC "8086_1e31", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { // HS01 not used // HS02-HS04 not used due to FakePCIID_XHCIMux // HS02 HS USB3 near left // HS03 HS USB3 far left // HS04 USB2 far right // SS05/SS06 not used "SS07", Package() // SS USB3 right near hinge { "UsbConnector", 3, "port", Buffer() { 7, 0, 0, 0 }, }, "SS08", Package() // SS USB3 right far from hinge { "UsbConnector", 3, "port", Buffer() { 8, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-8x0-G1.asl ================================================ // USBInjectAll configuration/override for EliteBook 8x0s G1 Haswell // // Current data includes HS01/SS01 from the optional docking station. // still missing a port for bluetooth //DefinitionBlock("", "SSDT", 2, "hack", "usb8x0g1", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9xxx", Package() { //"port-count", Buffer() { 0x0d, 0, 0, 0}, "ports", Package() { "HS01", Package() // HS componnent of SS01 (dock) { "UsbConnector", 3, "port", Buffer() { 0x01, 0, 0, 0 }, }, "HS02", Package() // HS component of SS02 { "UsbConnector", 3, "port", Buffer() { 0x02, 0, 0, 0 }, }, // Note: bluetooth controller is attached to port#2 of this HS03 hub "HS03", Package() // internal 4-port USB2 hub (SS03 is USB3) { "UsbConnector", 255, "port", Buffer() { 0x03, 0, 0, 0 }, }, "HS04", Package() // HS component of SS04 { "UsbConnector", 3, "port", Buffer() { 0x04, 0, 0, 0 }, }, #if 0 "HS05", Package() // fingerprint reader (disabled) { "UsbConnector", 255, "port", Buffer() { 0x05, 0, 0, 0 }, }, #endif "HS06", Package() // internal WWAN { "UsbConnector", 255, "port", Buffer() { 0x06, 0, 0, 0 }, }, "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 0x07, 0, 0, 0 }, }, // HS08/HS09 not used "SS01", Package() // SS component on dock USB3 { "UsbConnector", 3, "port", Buffer() { 0x0a, 0, 0, 0 }, }, "SS02", Package() // left side USB3 { "UsbConnector", 3, "port", Buffer() { 0x0b, 0, 0, 0 }, }, "SS03", Package() // internal 4-port USB3 hub (HS03 is USB2) { "UsbConnector", 255, "port", Buffer() { 0x0c, 0, 0, 0 }, }, "SS04", Package() // SS USB3 (HS04 is USB2) { "UsbConnector", 3, "port", Buffer() { 0x0d, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-8x0-G2.asl ================================================ // USBInjectAll configuration/override for EliteBook 820 G2 Broadwell // and EliteBook 850 G2 Broadwell // //REVIEW: preliminary data for G2. Note that it has a hub on XHC, which // may need further work. // Based on information provided from EliteBook Pro 820 G2 // This same configuration is also valid for EliteBook 850 G2 Broadwell //REVIEW: rename to SSDT-USB-8x0-G2 //DefinitionBlock("", "SSDT", 2, "hack", "usb820g2", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // EliteBook 820 G2 "8086_9cb1", Package() { //"port-count", Buffer() { 0x0f, 0, 0, 0}, "ports", Package() { "HS01", Package() // 4-port USB2 hub (dockingstation) { "UsbConnector", 3, "port", Buffer() { 0x01, 0, 0, 0 }, }, "HS02", Package() // USB2 (SS02 is USB3) { "UsbConnector", 0, "port", Buffer() { 0x02, 0, 0, 0 }, }, "HS03", Package() // internal 4-port USB2 hub (SS03 is USB3) { "UsbConnector", 255, "port", Buffer() { 0x03, 0, 0, 0 }, }, "HS04", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 0x04, 0, 0, 0 }, }, //HS05 is fingerprint reader (disabled) //HS06 not used "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 0x07, 0, 0, 0 }, }, // HS08/HS09/HS10/HS11 not used "SS01", Package() // 4-port USB3 hub (dockingstation) { "UsbConnector", 3, "port", Buffer() { 0x0c, 0, 0, 0 }, }, "SS02", Package() // SS USB3 port { "UsbConnector", 3, "port", Buffer() { 0x0d, 0, 0, 0 }, }, "SS03", Package() // SS USB3 hub (HS03.port2 is USB2?) { "UsbConnector", 255, "port", Buffer() { 0x0e, 0, 0, 0 }, }, // SS04 not used }, }, // EliteBook 840 G2 "8086_9xxx", Package() { //"port-count", Buffer() { 0x0d, 0, 0, 0}, "ports", Package() { // HS01 not used "HS02", Package() // USB2 { "UsbConnector", 0, "port", Buffer() { 0x02, 0, 0, 0 }, }, "HS03", Package() // internal 4-port USB2 hub (SS03 is USB3) { "UsbConnector", 255, "port", Buffer() { 0x03, 0, 0, 0 }, }, "HS04", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 0x04, 0, 0, 0 }, }, // HS05/HS06 not used "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 0x07, 0, 0, 0 }, }, // HS08/HS09 not used // SS01/SS02/SS03 not used "SS04", Package() // SS USB3 (HS03.port2 is USB2?) { "UsbConnector", 255, "port", Buffer() { 0x0d, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-8x0-G3.asl ================================================ // USBInjectAll configuration/override for EliteBook 8x0 G3 (Skylake) // // Based on information provided from kartoffelsalat_reloaded's Skylake EliteBook 840 G3 // modifications based on Titanious 840 G3 Skylake. //DefinitionBlock("", "SSDT", 2, "hack", "usb8x0g3", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9d2f", Package() { "port-count", Buffer() { 18, 0, 0, 0 }, "ports", Package() { "HS01", Package() // HS component of SS port, right { "UsbConnector", 3, "port", Buffer() { 1, 0, 0, 0 }, }, "HS02", Package() // HS component of SS port, left { "UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, //HS03 not used "HS04", Package() // docking station hub { "UsbConnector", 3, "port", Buffer() { 4, 0, 0, 0 }, }, "HS05", Package() // HS component of USB-C, right { "UsbConnector", 10, "port", Buffer() { 5, 0, 0, 0 }, }, //HS06 not used "HS07", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, //HS08 is fingerprint reader (disabled) "HS09", Package() // camera { "UsbConnector", 255, "port", Buffer() { 9, 0, 0, 0 }, }, //HS10 smart card reader (disabled) "SS01", Package() // SS, right { "UsbConnector", 3, "port", Buffer() { 13, 0, 0, 0 }, }, "SS02", Package() // SS, left { "UsbConnector", 3, "port", Buffer() { 14, 0, 0, 0 }, }, "SS03", Package() // SS1 component of USB-C, no switch, right { "UsbConnector", 10, "port", Buffer() { 15, 0, 0, 0 }, }, "SS04", Package() // docking station hub { "UsbConnector", 3, "port", Buffer() { 16, 0, 0, 0 }, }, "SS05", Package() // SS2 component of USB-C, no switch, right { "UsbConnector", 10, "port", Buffer() { 17, 0, 0, 0 }, }, //SS06 not used //USR1/USR2 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-8x0-G4.asl ================================================ // USBInjectAll configuration/override for EliteBook 8x0 G4 (Skylake) // // No data provided yet. //DefinitionBlock("", "SSDT", 2, "hack", "usb8x0g4", 0) //{ // // Override for USBInjectAll.kext // #if 0 Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9d2f", Package() { "port-count", Buffer() { 18, 0, 0, 0 }, "ports", Package() { "HS01", Package() // HS component of USB3 port (440 G4, right) { "UsbConnector", 3, "port", Buffer() { 1, 0, 0, 0 }, }, "HS02", Package() // HS component of USB-C port (440 G4, right) { "UsbConnector", 10, "port", Buffer() { 2, 0, 0, 0 }, }, //HS03 not used "HS04", Package() // USB2 port (440 G4, left) { "UsbConnector", 0, "port", Buffer() { 4, 0, 0, 0 }, }, "HS05", Package() // USB2 port (not on 440 G4, but enabled for case of 450 G4 may have it) { "UsbConnector", 0, "port", Buffer() { 5, 0, 0, 0 }, }, "HS06", Package() // camera { "UsbConnector", 255, "port", Buffer() { 6, 0, 0, 0 }, }, "HS07", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, #if 0 "HS08", Package() // finger print reader (disabled) { "UsbConnector", 255, "port", Buffer() { 8, 0, 0, 0 }, }, #endif //HS09/HS10 not used "SS01", Package() // SS component of USB3 port (440 G4, right) { "UsbConnector", 3, "port", Buffer() { 13, 0, 0, 0 }, }, "SS02", Package() // SS1 component of USB-C port (440 G4, right) { "UsbConnector", 10, "port", Buffer() { 14, 0, 0, 0 }, }, "SS03", Package() // SS2 component of USB-C port (440 G4, right) { "UsbConnector", 10, "port", Buffer() { 15, 0, 0, 0 }, }, //SS04-SS06 not used //USR1/USR2 not used }, }, }) } #endif //} //EOF ================================================ FILE: hotpatch/SSDT-USB-8x60.asl ================================================ // USB configuration for EliteBook 8x60 // Based on information from EliteBook 8560p + docking station (anx-v) //DefinitionBlock("", "SSDT", 2, "hack", "usb8x60", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // EHCI#1 "EH01", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "PR11", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, /// hub on port #1 EHCI#1 "HUB1", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "HP11", Package() // USB2 near left { //"UsbConnector", 0, "port", Buffer() { 1, 0, 0, 0 }, }, "HP12", Package() // USB2 near right { //"UsbConnector", 0, "port", Buffer() { 2, 0, 0, 0 }, }, #if 0 "HP13", Package() // USB2 far left { //"UsbConnector", 0, "port", Buffer() { 3, 0, 0, 0 }, }, #endif "HP14", Package() // camera { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 4, 0, 0, 0 }, }, "HP16", Package() // bluetooth { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 6, 0, 0, 0 }, }, }, }, // EHCI#2 "EH02", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { "PR21", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, // hub on port#1 EHCI#2 "HUB2", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { #if 0 "HP21", Package() // fingerprint reader (disabled) { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 1, 0, 0, 0 }, }, #endif "HP22", Package() // WWAN module { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 2, 0, 0, 0 }, }, #if 0 "HP23", Package() // USB2 far right { //"UsbConnector", 0, "port", Buffer() { 3, 0, 0, 0 }, }, #endif "HP24", Package() // USB on docking station { //"UsbConnector", 0, "port", Buffer() { 4, 0, 0, 0 }, }, "HP26", Package() // USB on docking station { //"UsbConnector", 0, "port", Buffer() { 6, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-8x70.asl ================================================ // USB configuration for EliteBook 8x70 // // This information from an EliteBook 8470p (courtesy freeweber). //DefinitionBlock("", "SSDT", 2, "hack", "usb8x70", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // EHCI#1 "EH01", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "PR11", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, /// hub on port #1 EHCI#1 "HUB1", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "HP11", Package() // HS USB3 hub (on normal dock and advanced dock) { //"UsbConnector", 3, "port", Buffer() { 1, 0, 0, 0 }, }, "HP12", Package() // near display USB2 left { //"UsbConnector", 0, "port", Buffer() { 2, 0, 0, 0 }, }, "HP13", Package() // near display USB3 right { //"UsbConnector", 3, "port", Buffer() { 3, 0, 0, 0 }, }, "HP14", Package() // far display USB3 right { //"UsbConnector", 3, "port", Buffer() { 4, 0, 0, 0 }, }, "HP16", Package() // bluetooth { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 6, 0, 0, 0 }, }, }, }, // EHCI#2 "EH02", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { "PR21", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, // hub on port#1 EHCI#2 "HUB2", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { #if 0 "HP21", Package() // fingerprint reader (disabled) { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 1, 0, 0, 0 }, }, #endif "HP22", Package() // far display USB2 left { //"UsbConnector", 0, "port", Buffer() { 2, 0, 0, 0 }, }, "HP23", Package() // camera { //"UsbConnector", 255, "portType", 2, //"portType", 4, // fix for camera after sleep? "port", Buffer() { 3, 0, 0, 0 }, }, "HP24", Package() // USB3 port with hub (advanced dock) { //"UsbConnector", 3, "port", Buffer() { 4, 0, 0, 0 }, }, "HP26", Package() // eSata/USB2 port left { //"UsbConnector", 0, "port", Buffer() { 6, 0, 0, 0 }, }, }, }, // XHC "8086_1e31", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { // HSxx not used due to FakePCIID_XHCIMux "SS05", Package() // SS USB3 hub advanced dock { "UsbConnector", 3, "port", Buffer() { 5, 0, 0, 0 }, }, "SS07", Package() // near display SS USB3 right { "UsbConnector", 3, "port", Buffer() { 7, 0, 0, 0 }, }, "SS08", Package() // far display SS USB3 right { "UsbConnector", 3, "port", Buffer() { 8, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-9x70.asl ================================================ // USB configuration for Folio 9x70 // // Data provided by wi-fi from EliteBook Folio 9470m // Additional data for docking station provided by mayonaise1091 // Note: It did not have bluetooth hardware installed, so the bluetooth port HP16 is a guess //DefinitionBlock("", "SSDT", 2, "hack", "usb9x70", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // EHCI#1 "EH01", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "PR11", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, /// hub on port #1 EHCI#1 "HUB1", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { "HP11", Package() // HS USB3 dock { //"UsbConnector", 3, "port", Buffer() { 1, 0, 0, 0 }, }, "HP12", Package() // HS USB3 near left { //"UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HP13", Package() // HS USB3 far left { //"UsbConnector", 3, "port", Buffer() { 3, 0, 0, 0 }, }, "HP14", Package() // USB2 far right { //"UsbConnector", 0, "port", Buffer() { 4, 0, 0, 0 }, }, "HP16", Package() // bluetooth { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 6, 0, 0, 0 }, }, "HP18", Package() // smartcard reader (wi-fi's Folio 9470m) { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 8, 0, 0, 0 }, }, }, }, // EHCI#2 "EH02", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { "PR21", Package() { "UsbConnector", 255, "port", Buffer() { 1, 0, 0, 0 }, }, }, }, // hub on port#1 EHCI#2 "HUB2", Package() { "port-count", Buffer() { 6, 0, 0, 0 }, "ports", Package() { #if 0 "HP21", Package() // fingerprint reader (disabled) { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 1, 0, 0, 0 }, }, #endif //HP22 not used "HP23", Package() // camera { //"UsbConnector", 255, "portType", 2, //"portType", 4, // fix for camera after sleep? "port", Buffer() { 3, 0, 0, 0 }, }, //HP24 not used "HP25", Package() // WWAN { //"UsbConnector", 255, "portType", 2, "port", Buffer() { 5, 0, 0, 0 }, }, //HP26 HP27 HP28 not used }, }, // XHC "8086_1e31", Package() { "port-count", Buffer() { 8, 0, 0, 0 }, "ports", Package() { // HS01 not used // HS02-HS04 not used due to FakePCIID_XHCIMux // HS02 HS USB3 near left // HS03 HS USB3 far left // HS04 USB2 far right "SS05", Package() // SS USB3 on dock { "UsbConnector", 3, "port", Buffer() { 5, 0, 0, 0 }, }, "SS06", Package() // SS USB3 near left { "UsbConnector", 3, "port", Buffer() { 6, 0, 0, 0 }, }, "SS07", Package() // SS USB3 far left { "UsbConnector", 3, "port", Buffer() { 7, 0, 0, 0 }, }, "SS08", Package() // SS USB3 { "UsbConnector", 3, "port", Buffer() { 8, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-9x80.asl ================================================ // USBInjectAll configuration/override for EliteBook 9x80m Haswell // // Based on information provided from an EliteBook 9480m Haswell //DefinitionBlock("", "SSDT", 2, "hack", "usb9x80", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9c31", Package() { //"port-count", Buffer() { 0x0f, 0, 0, 0}, "ports", Package() { // HS01 not used "HS02", Package() // USB2 (SS02 is USB3) { "UsbConnector", 0, "port", Buffer() { 2, 0, 0, 0 }, }, "HS03", Package() // internal 4-port USB2 hub (SS03 is USB3) { "UsbConnector", 255, "port", Buffer() { 3, 0, 0, 0 }, }, "HS04", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 4, 0, 0, 0 }, }, //HS05 is fingerprint reader (disabled) //HS06 not used "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, // HS08/HS09/HS10/HS11 not used // SS01 not used "SS02", Package() // SS USB3 port { "UsbConnector", 3, "port", Buffer() { 11, 0, 0, 0 }, }, "SS03", Package() // SS USB3 hub (HS03.port2 is USB2?) { "UsbConnector", 255, "port", Buffer() { 12, 0, 0, 0 }, }, // SS04 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-Unknown.asl ================================================ // USB configuration that disables USBInjectAll.kext // This can be used for models which have correct ACPI for USB (_UPC/_PLD) //DefinitionBlock("", "SSDT", 2, "hack", "usbunk", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // EHCI#1 "EH01", Package() { "Disabled", ">y", }, /// hub on port #1 EHCI#1 "HUB1", Package() { "Disabled", ">y", }, // EHCI#2 "EH02", Package() { "Disabled", ">y", }, // hub on port#1 EHCI#2 "HUB2", Package() { "Disabled", ">y", }, // XHC "XHC", Package() { "Disabled", ">y", }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-ZBook-G1.asl ================================================ // USBInjectAll configuration/override for ZBook G1 Haswell // // Based on secret-sounds' HP ZBook 17 G1 (Haswell) // Also based on matrining's ZBook 14 G1 (Haswell) (8086:9c31) //DefinitionBlock("", "SSDT", 2, "hack", "usbzbg1", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_8c31", Package() { //"port-count", Buffer() { 0x0d, 0, 0, 0}, "ports", Package() { // HS01 not used "HS02", Package() // HS on USB3 port SS02 { "UsbConnector", 3, "port", Buffer() { 0x02, 0, 0, 0 }, }, // HS03,HS04 not used // HS05 fingerprint reader "HS06", Package() // USB2, left back { "UsbConnector", 0, "port", Buffer() { 0x06, 0, 0, 0 }, }, "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 0x07, 0, 0, 0 }, }, // HS08 not used "HS09", Package() // HS on USB3 port SS05 { "UsbConnector", 3, "port", Buffer() { 0x09, 0, 0, 0 }, }, "HS10", Package() // HS on USB3 port SS06 { "UsbConnector", 3, "port", Buffer() { 0x0a, 0, 0, 0 }, }, // HS11 not used "HS12", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 0x0c, 0, 0, 0 }, }, // HS13,HS14 not used // SS01 not used "SS02", Package() // USB3, right front { "UsbConnector", 3, "port", Buffer() { 0x11, 0, 0, 0 }, }, // SS03/SS04 not used "SS05", Package() // USB3, right back { "UsbConnector", 3, "port", Buffer() { 0x14, 0, 0, 0 }, }, "SS06", Package() // USB3, left back { "UsbConnector", 3, "port", Buffer() { 0x15, 0, 0, 0 }, }, }, }, "8086_9c31", Package() { //"port-count", Buffer() { 13, 0, 0, 0 }, "ports", Package() { // HS01 not used "HS02", Package() { "UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HS03", Package() // internal USB2 hub { "UsbConnector", 255, "port", Buffer() { 3, 0, 0, 0 }, }, "HS04", Package() { "UsbConnector", 3, "port", Buffer() { 4, 0, 0, 0 }, }, #if 0 // finger print reader (disabled) "HS05", Package() { "UsbConnector", 3, "port", Buffer() { 5, 0, 0, 0 }, }, #endif // HS06 not used "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, // HS08/HS09 not used // SS01 not used "SS02", Package() { "UsbConnector", 3, "port", Buffer() { 11, 0, 0, 0 }, }, "SS03", Package() // internal USB3 hub { "UsbConnector", 255, "port", Buffer() { 12, 0, 0, 0 }, }, "SS04", Package() { "UsbConnector", 3, "port", Buffer() { 13, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-ZBook-G2.asl ================================================ // USBInjectAll configuration/override for ZBook G2 Broadwell // // Based on nandystam's HP ZBook 15 G2 (Broadwell) //DefinitionBlock("", "SSDT", 2, "hack", "usbzbg2", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_9cb1", Package() { //"port-count", Buffer() { 13, 0, 0, 0 }, "ports", Package() { // HS01 not used "HS02", Package() { "UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HS03", Package() // internal USB2 hub { "UsbConnector", 255, "port", Buffer() { 3, 0, 0, 0 }, }, "HS04", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 4, 0, 0, 0 }, }, #if 0 // finger print reader (disabled) "HS05", Package() { "UsbConnector", 255, "port", Buffer() { 5, 0, 0, 0 }, }, #endif // HS06 not used "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, // HS08/HS09/HS10/HS11 not used // SS01 not used "SS02", Package() { "UsbConnector", 3, "port", Buffer() { 13, 0, 0, 0 }, }, "SS03", Package() // internal USB3 hub { "UsbConnector", 255, "port", Buffer() { 14, 0, 0, 0 }, }, // SS04 not used }, }, // Some ZBook G2 Haswell have 8c31 like G1 Haswell "8086_8c31", Package() { //"port-count", Buffer() { 0x0d, 0, 0, 0}, "ports", Package() { // HS01 not used "HS02", Package() // HS on USB3 port SS02 { "UsbConnector", 3, "port", Buffer() { 0x02, 0, 0, 0 }, }, // HS03,HS04 not used // HS05 fingerprint reader "HS06", Package() // USB2, left back { "UsbConnector", 0, "port", Buffer() { 0x06, 0, 0, 0 }, }, "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 0x07, 0, 0, 0 }, }, // HS08 not used "HS09", Package() // HS on USB3 port SS05 { "UsbConnector", 3, "port", Buffer() { 0x09, 0, 0, 0 }, }, "HS10", Package() // HS on USB3 port SS06 { "UsbConnector", 3, "port", Buffer() { 0x0a, 0, 0, 0 }, }, // HS11 not used "HS12", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 0x0c, 0, 0, 0 }, }, // HS13,HS14 not used // SS01 not used "SS02", Package() // USB3, right front { "UsbConnector", 3, "port", Buffer() { 0x11, 0, 0, 0 }, }, // SS03/SS04 not used "SS05", Package() // USB3, right back { "UsbConnector", 3, "port", Buffer() { 0x14, 0, 0, 0 }, }, "SS06", Package() // USB3, left back { "UsbConnector", 3, "port", Buffer() { 0x15, 0, 0, 0 }, }, }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USB-ZBook-G3.asl ================================================ // USBInjectAll configuration/override for ZBook G3 (Skylake) // // Based on information provided from hackintoshking's Skylake ZBook G3 //DefinitionBlock("", "SSDT", 2, "hack", "usbzbg3", 0) //{ // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_a12f", Package() { "port-count", Buffer() { 21, 0, 0, 0 }, "ports", Package() { "HS01", Package() // HS component of SS01 port { "UsbConnector", 3, "port", Buffer() { 1, 0, 0, 0 }, }, //HS02/HS03 not used "HS04", Package() // HS component of SS04 port { "UsbConnector", 3, "port", Buffer() { 4, 0, 0, 0 }, }, "HS05", Package() // HS component of SS05 port { "UsbConnector", 3, "port", Buffer() { 5, 0, 0, 0 }, }, //HS06 not used "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, //HS08/HS09/HS10/HS11 not used "HS12", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 12, 0, 0, 0 }, }, //HS13/HS14 not used "SS01", Package() // USB3 { "UsbConnector", 3, "port", Buffer() { 17, 0, 0, 0 }, }, //SS02/SS03 not used "SS04", Package() // USB3 { "UsbConnector", 3, "port", Buffer() { 20, 0, 0, 0 }, }, "SS05", Package() // USB3 { "UsbConnector", 3, "port", Buffer() { 21, 0, 0, 0 }, }, //SS06/SS07/SS08/SS09/SS10 not used //USR1/USR2 not used }, }, }) } //} //EOF ================================================ FILE: hotpatch/SSDT-USBX.asl ================================================ // USB power properties for Sierra // used for SMBIOS that have no power properties in IOUSBHostFamily.kext/Contents/Info.plist //DefinitionBlock("", "SSDT", 2, "hack", "USBX", 0) //{ Device(_SB.USBX) { Name(_ADR, 0) Method (_DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return (Package() { //REVIEW: these values from MacBookPro12,1 (pure guess) "kUSBSleepPortCurrentLimit", 2100, "kUSBSleepPowerSupply", 2600, "kUSBWakePortCurrentLimit", 2100, "kUSBWakePowerSupply", 3200, }) } } //} //EOF ================================================ FILE: hotpatch/SSDT-USWE.asl ================================================ // special fix for "wake on USB" for newer ProBook models //DefinitionBlock("", "SSDT", 2, "hack", "_USWE", 0) //{ // This USWE code is specific to the Skylake G3 (and new a few other models) External(USWE, FieldUnitObj) Device(RMD3) { Name(_HID, "RMD30000") Method(_INI) { // disable wake on XHC (XHC._PRW checks USWE and enables wake if it is 1) If (CondRefOf(\USWE)) { \USWE = 0 } } } //} //EOF ================================================ FILE: hotpatch/SSDT-XHC.asl ================================================ // Automatic injection of XHC properties //DefinitionBlock("", "SSDT", 2, "hack", "XHC", 0) //{ External(_SB.PCI0.XHC, DeviceObj) // inject properties for XHCI Method(_SB.PCI0.XHC._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Local0 = Package() { "RM,disable_FakePCIID", 0, "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 }, "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 }, "AAPL,current-available", Buffer() { 0x34, 0x08, 0, 0 }, "AAPL,current-extra", Buffer() { 0x98, 0x08, 0, 0, }, "AAPL,current-extra-in-sleep", Buffer() { 0x40, 0x06, 0, 0, }, "AAPL,max-port-current-in-sleep", Buffer() { 0x34, 0x08, 0, 0 }, } // force USB2 on XHC if EHCI is disabled If (CondRefOf(\_SB.PCI0.RMD2)) { Local0[1] = 1 } Return(Local0) } //} //EOF ================================================ FILE: hotpatch/SSDT-zbG1h.dsl ================================================ // SSDT for ZBook G1 (Haswell) DefinitionBlock("", "SSDT", 2, "hack", "_zbG1h", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76e0_HDEF.asl" #include "include/IDT_76e0_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-ZBook-G1.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT.asl" #include "include/disable_EH01.asl" } //EOF ================================================ FILE: hotpatch/SSDT-zbG2b.dsl ================================================ // SSDT for ZBook G2 (Broadwell) DefinitionBlock("", "SSDT", 2, "hack", "_zbG2b", 0) { #include "SSDT-RMCF.asl" #include "SSDT-RP05_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/ALC280_HDEF.asl" #include "include/ALC280_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-ZBook-G2.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G2.asl" #include "include/disable_EH01.asl" } //EOF ================================================ FILE: hotpatch/SSDT-zbG2h.dsl ================================================ // SSDT for ZBook G2 (Haswell) DefinitionBlock("", "SSDT", 2, "hack", "_zbG2h", 0) { #include "SSDT-RMCF.asl" #include "SSDT-PEGP_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/IDT_76e0_HDEF.asl" #include "include/IDT_76e0_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-ZBook-G2.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G2.asl" #include "include/disable_EH01-EH02.asl" } //EOF ================================================ FILE: hotpatch/SSDT-zbG2hA.dsl ================================================ // SSDT for ZBook G2 (Haswell) with ALC280 DefinitionBlock("", "SSDT", 2, "hack", "_zbG2hA", 0) { #include "SSDT-RMCF.asl" #include "SSDT-RP05_DGFX_RDSS.asl" #include "SSDT-HACK.asl" #include "include/ALC280_HDEF.asl" #include "include/ALC280_HDAU.asl" #include "include/standard_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-ZBook-G2.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G2.asl" #include "include/disable_EH01-EH02.asl" } //EOF ================================================ FILE: hotpatch/SSDT-zbG3s.dsl ================================================ // SSDT for ZBook G3 (Skylake) DefinitionBlock("", "SSDT", 2, "hack", "_zbG3s", 0) { #define OVERRIDE_XPEE 1 #include "SSDT-RMCF.asl" #include "SSDT-PEG0_PEGP_RDSS.asl" #include "SSDT-HACK.asl" #include "include/CX20724_HDEF.asl" #include "include/disable_HECI.asl" #include "include/key86_PS2K.asl" #include "SSDT-KEY87.asl" #include "SSDT-USB-ZBook-G3.asl" #include "SSDT-XHC.asl" #include "SSDT-BATT-G4.asl" //REVIEW: using SSDT-BATT-G4 instead of SSDT-BATT-G3 #include "SSDT-USBX.asl" #include "SSDT-USWE.asl" } //EOF ================================================ FILE: hotpatch/include/ALC280_HDAU.asl ================================================ #define LAYOUTID 4 // inject properties for HDMI audio External(_SB.PCI0.HDAU, DeviceObj) Method(_SB.PCI0.HDAU._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, }) } //EOF ================================================ FILE: hotpatch/include/ALC280_HDEF.asl ================================================ #define LAYOUTID 4 // inject properties for audio External(_SB.PCI0.HDEF, DeviceObj) Method(_SB.PCI0.HDEF._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, "PinConfigurations", Buffer() { }, }) } // CodecCommander configuration Name(_SB.PCI0.HDEF.RMCF, Package() { "CodecCommander", Package() { "Version", 0x020600, "10ec_0280", Package() { "Custom Commands", Package() { Package(){}, // signifies Array instead of Dictionary Package() { // 0x1a SET_PIN_WIDGET_CONTROL 0x25 // Node 0x1a - Pin Control (In Enable / VRefEn) "Command", Buffer() { 0x01, 0xa7, 0x07, 0x25 }, "On Init", ">y", "On Sleep", ">n", "On Wake", ">y", }, Package() { // 0x15 SET_UNSOLICITED_ENABLE 0x83 "Command", Buffer() { 0x01, 0x57, 0x08, 0x83 }, "On Init", ">y", "On Sleep", ">n", "On Wake", ">y", }, }, }, }, }) //EOF ================================================ FILE: hotpatch/include/ALC282_HDAU.asl ================================================ #define LAYOUTID 3 // inject properties for HDMI audio External(_SB.PCI0.HDAU, DeviceObj) Method(_SB.PCI0.HDAU._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, }) } //EOF ================================================ FILE: hotpatch/include/ALC282_HDEF.asl ================================================ #define LAYOUTID 3 // inject properties for audio External(_SB.PCI0.HDEF, DeviceObj) Method(_SB.PCI0.HDEF._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, "PinConfigurations", Buffer() { }, }) } //EOF ================================================ FILE: hotpatch/include/ALC286_HDAU.asl ================================================ #define LAYOUTID 3 // inject properties for HDMI audio External(_SB.PCI0.HDAU, DeviceObj) Method(_SB.PCI0.HDAU._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, }) } //EOF ================================================ FILE: hotpatch/include/ALC286_HDEF.asl ================================================ #define LAYOUTID 3 // inject properties for audio External(_SB.PCI0.HDEF, DeviceObj) Method(_SB.PCI0.HDEF._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, "PinConfigurations", Buffer() { }, }) } //EOF ================================================ FILE: hotpatch/include/CX20724_HDEF.asl ================================================ // Mirone version #define LAYOUT_MIRONE 3 // InsanelyDeepak version #define LAYOUT_INSANELYDEEPAK 13 #define LAYOUTID 13 // inject properties for audio External(_SB.PCI0.HDEF, DeviceObj) Method(_SB.PCI0.HDEF._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, "PinConfigurations", Buffer() { }, "RM,disable_FakePCIID", 1, }) } //EOF ================================================ FILE: hotpatch/include/CX8200_HDEF.asl ================================================ #define LAYOUTID 3 // inject properties for audio External(_SB.PCI0.HDEF, DeviceObj) Method(_SB.PCI0.HDEF._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, "PinConfigurations", Buffer() { }, "RM,disable_FakePCIID", 1, //SKL spoof: remove or set zero }) } // CodecCommander configuration Name(_SB.PCI0.HDEF.RMCF, Package() { "CodecCommander", Package() { "Version", 0x020600, "14f1_2008", Package() { "Custom Commands", Package() { Package(){}, Package() { //Node 0x19 Set Pin Widget Control "In Enable", "VRefEn Signal Level 80%" "Command", Buffer() { 0x01, 0x97, 0x07, 0x24 }, "On Init", ">y", "On Sleep", ">n", "On Wake", ">y", }, }, }, }, }) //EOF ================================================ FILE: hotpatch/include/IDT_7605_HDEF.asl ================================================ #define LAYOUTID 12 // inject properties for audio External(_SB.PCI0.HDEF, DeviceObj) Method(_SB.PCI0.HDEF._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, "PinConfigurations", Buffer() { }, }) } // CodecCommander configuration Name(_SB.PCI0.HDEF.RMCF, Package() { "CodecCommander", Package() { "Disable", ">y", }, "CodecCommanderPowerHook", Package() { "Disable", ">y", }, }) //EOF ================================================ FILE: hotpatch/include/IDT_7695_HDEF.asl ================================================ #define LAYOUTID 12 // inject properties for audio External(_SB.PCI0.HDEF, DeviceObj) Method(_SB.PCI0.HDEF._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, "PinConfigurations", Buffer() { }, }) } // CodecCommander configuration Name(_SB.PCI0.HDEF.RMCF, Package() { "CodecCommander", Package() { "Disable", ">y", }, "CodecCommanderPowerHook", Package() { "Disable", ">y", }, }) //EOF ================================================ FILE: hotpatch/include/IDT_76d1_HDEF.asl ================================================ #define LAYOUTID 12 // inject properties for audio External(_SB.PCI0.HDEF, DeviceObj) Method(_SB.PCI0.HDEF._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, "PinConfigurations", Buffer() { }, }) } // CodecCommander configuration Name(_SB.PCI0.HDEF.RMCF, Package() { "CodecCommander", Package() { "Disable", ">y", }, "CodecCommanderPowerHook", Package() { "Disable", ">y", }, }) //EOF ================================================ FILE: hotpatch/include/IDT_76d9_HDEF.asl ================================================ #define LAYOUTID 13 // inject properties for audio External(_SB.PCI0.HDEF, DeviceObj) Method(_SB.PCI0.HDEF._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, "PinConfigurations", Buffer() { }, }) } // CodecCommander configuration Name(_SB.PCI0.HDEF.RMCF, Package() { "CodecCommander", Package() { "Disable", ">y", }, "CodecCommanderPowerHook", Package() { "Disable", ">y", }, }) //EOF ================================================ FILE: hotpatch/include/IDT_76e0_HDAU.asl ================================================ #define LAYOUTID 13 // inject properties for HDMI audio External(_SB.PCI0.HDAU, DeviceObj) Method(_SB.PCI0.HDAU._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, }) } //EOF ================================================ FILE: hotpatch/include/IDT_76e0_HDEF.asl ================================================ #define LAYOUTID 13 // inject properties for audio External(_SB.PCI0.HDEF, DeviceObj) Method(_SB.PCI0.HDEF._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "layout-id", Buffer(4) { LAYOUTID, 0, 0, 0 }, "hda-gfx", Buffer() { "onboard-1" }, "PinConfigurations", Buffer() { }, }) } // CodecCommander configuration Name(_SB.PCI0.HDEF.RMCF, Package() { "CodecCommander", Package() { "Disable", ">y", }, "CodecCommanderPowerHook", Package() { "Disable", ">y", }, }) //EOF ================================================ FILE: hotpatch/include/disable_EH01-EH02.asl ================================================ // // Disabling EHCI #1 and #2 // External(_SB.PCI0, DeviceObj) External(_SB.PCI0.EH01, DeviceObj) External(_SB.PCI0.EH02, DeviceObj) External(_SB.PCI0.LPCB, DeviceObj) // registers needed for disabling EHC#1 Scope(_SB.PCI0.EH01) { OperationRegion(RMP1, PCI_Config, 0x54, 2) Field(RMP1, WordAcc, NoLock, Preserve) { PSTE, 2 // bits 2:0 are power state } } // registers needed for disabling EHC#2 Scope(_SB.PCI0.EH02) { OperationRegion(RMP1, PCI_Config, 0x54, 2) Field(RMP1, WordAcc, NoLock, Preserve) { PSTE, 2 // bits 2:0 are power state } } Scope(_SB.PCI0.LPCB) { OperationRegion(RMP1, PCI_Config, 0xF0, 4) Field(RMP1, DWordAcc, NoLock, Preserve) { RCB1, 32, // Root Complex Base Address } // address is in bits 31:14 OperationRegion(FDM1, SystemMemory, (RCB1 & Not((1<<14)-1)) + 0x3418, 4) Field(FDM1, DWordAcc, NoLock, Preserve) { ,13, // skip first 13 bits FDE2,1, // should be bit 13 (0-based) (FD EHCI#2) ,1, FDE1,1, // should be bit 15 (0-based) (FD EHCI#1) } } Scope(_SB.PCI0) { Device(RMD2) { Name(_HID, "RMD20000") Method(_INI) { // disable EHCI#1 // put EHCI#1 in D3hot (sleep mode) ^^EH01.PSTE = 3 // disable EHCI#1 PCI space ^^LPCB.FDE1 = 1 // disable EHCI#2 // put EHCI#2 in D3hot (sleep mode) ^^EH02.PSTE = 3 // disable EHCI#2 PCI space ^^LPCB.FDE2 = 1 } } } ================================================ FILE: hotpatch/include/disable_EH01.asl ================================================ // // Disabling EHCI #1 // External(_SB.PCI0, DeviceObj) External(_SB.PCI0.LPCB, DeviceObj) External(_SB.PCI0.EH01, DeviceObj) // registers needed for disabling EHC#1 Scope(_SB.PCI0.EH01) { OperationRegion(PSTS, PCI_Config, 0x54, 2) Field(PSTS, WordAcc, NoLock, Preserve) { PSTE, 2 // bits 2:0 are power state } } Scope(_SB.PCI0.LPCB) { OperationRegion(RMLP, PCI_Config, 0xF0, 4) Field(RMLP, DWordAcc, NoLock, Preserve) { RCB1, 32, // Root Complex Base Address } // address is in bits 31:14 OperationRegion(FDM1, SystemMemory, (RCB1 & Not((1<<14)-1)) + 0x3418, 4) Field(FDM1, DWordAcc, NoLock, Preserve) { ,15, // skip first 15 bits FDE1,1, // should be bit 15 (0-based) (FD EHCI#1) } } Scope(_SB.PCI0) { Device(RMD2) { //Name(_ADR, 0) Name(_HID, "RMD20000") Method(_INI) { // disable EHCI#1 // put EHCI#1 in D3hot (sleep mode) ^^EH01.PSTE = 3 // disable EHCI#1 PCI space ^^LPCB.FDE1 = 1 } } } ================================================ FILE: hotpatch/include/disable_HECI.asl ================================================ // Disable native HECI (Intel MEI) identity by injecting _STA=0 External(_SB.PCI0.HECI, DeviceObj) Name(_SB.PCI0.HECI._STA, 0) //EOF ================================================ FILE: hotpatch/include/enable_mouse.asl ================================================ // for including into RMCF at PCI0.LPCB.PS2K.RMCF // this to be used for laptops without Synaptics, such that VoodooPS2Mouse.kext is enabled "Mouse", Package() { "DisableDevice", ">n", }, ================================================ FILE: hotpatch/include/key86_PS2K.asl ================================================ // Standard PS2 overrides for those laptops that require "key86" overrides // Use Include directive from model specific SSDT External(\_SB.PCI0.LPCB.PS2K, DeviceObj) Scope (\_SB.PCI0.LPCB.PS2K) { // overrides for VoodooPS2 configuration... Name(RMCF, Package() { #include "include/standard_PS2K_data.asl" #include "include/key86_data.asl" }) } //EOF ================================================ FILE: hotpatch/include/key86_data.asl ================================================ // for including into RMCF at PCI0.LPCB.PS2K.RMCF // this data from ProBook 640 G2 Skylake 86-key keyboard "Keyboard", Package() { "Function Keys Special", Package() { Package(){}, "3b=3b", // F1 //"3c=3c", // F2 //"3d=3d", // F3 "3e=3e", // F4 "3f=3f", // F5" "40=40", // F6 //"41=41", // F7 "42=42", // F8 "43=43", // F9 "44=44", // F10 //"57=47", // F11 //"58=48", // F12 "e05f=e05f",//Fn+F1 //Fn+F2=F2 //Fn+F3=F3 "e06e=e06e",//Fn+F4 "e012=e012",//Fn+F5 "e017=e017",//Fn+F6 //Fn+F7=F7 "e02e=e02e",//Fn+F8 "e030=e030",//Fn+F9 "e001=e001",//Fn+F10 //Fn+F11=F11 //Fn+F12=F12 }, "Function Keys Standard", Package() { Package(){}, "3b=e05f", // F1 //"3c=3c", // F2 //"3d=3d", // F3 "3e=e06e", // F4 "3f=e012", // F5" "40=e017", // F6 //"41=41", // F7 "42=e02e", // F8 "43=e030", // F9 "44=e001", // F10 //"57=47", // F11 //"58=48", // F12 "e05f=3b", //Fn+F1 //Fn+F2=F2 //Fn+F3=F3 "e06e=3e", //Fn+F4 "e012=3f", //Fn+F5 "e017=40", //Fn+F6 //Fn+F7=F7 "e02e=42", //Fn+F8 "e030=43", //Fn+F9 "e001=44", //Fn+F10 //Fn+F11=F11 //Fn+F12=F12 }, }, ================================================ FILE: hotpatch/include/standard_PS2K.asl ================================================ // Standard PS2 overrides // Use Include directive from model specific SSDT External(\_SB.PCI0.LPCB.PS2K, DeviceObj) Scope (\_SB.PCI0.LPCB.PS2K) { // overrides for VoodooPS2 configuration... Name(RMCF, Package() { #include "include/standard_PS2K_data.asl" }) } //EOF ================================================ FILE: hotpatch/include/standard_PS2K_data.asl ================================================ // for including into RMCF at PCI0.LPCB.PS2K.RMCF // standard overrides for most ProBook/EliteBook laptops "Synaptics TouchPad", Package() { "DynamicEWMode", ">y", }, //EOF ================================================ FILE: install_acpi.sh ================================================ #!/bin/bash #set -x if [[ "$1" == "" ]]; then echo "Usage: ./install_acpi.sh [model] [fanpref]" echo "Use ./install_acpi.sh help for a listing of supported models." echo "fanpref is default to READ (other: Q, RM, ORIG, GRAP)" exit fi if [[ "$1" == "help" ]]; then grep -o install_.*\) $0 | grep -v grep | tr ')' ' ' exit fi EFI="$(./mount_efi.sh)" #EFI=./EFI BUILDDIR=./build source install_acpi_include.sh if [[ "$2" != "" ]]; then FANPREF=$2 else FANPREF=READ fi case "$1" in # helpers inst_lores) rm -f "$EFI"/EFI/CLOVER/ACPI/patched/DSDT.aml rm -f "$EFI"/EFI/CLOVER/ACPI/patched/SSDT-*.aml #cp $CORE "$EFI"/EFI/CLOVER/ACPI/patched cp $BUILDDIR/SSDT-IGPU.aml "$EFI"/EFI/CLOVER/ACPI/patched cp $BUILDDIR/SSDT-FAN$FANPREF.aml "$EFI"/EFI/CLOVER/ACPI/patched ;; inst_hires) rm -f "$EFI"/EFI/CLOVER/ACPI/patched/DSDT.aml rm -f "$EFI"/EFI/CLOVER/ACPI/patched/SSDT-*.aml #cp $CORE "$EFI"/EFI/CLOVER/ACPI/patched cp $BUILDDIR/SSDT-IGPUH.aml "$EFI"/EFI/CLOVER/ACPI/patched cp $BUILDDIR/SSDT-FAN$FANPREF.aml "$EFI"/EFI/CLOVER/ACPI/patched ;; inst_xcpm) $0 inst_lores $2 # Haswell/Broadwell/Skylake/KabyLake all use XCPM only for CPU PM rm -f "$EFI"/EFI/CLOVER/ACPI/patched/SSDT.aml ;; # model specific scripts install_4x30) $0 inst_lores $2 cp $BUILDDIR/SSDT-4x30.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x30_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-4x30.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x30) $0 inst_lores $2 cp $BUILDDIR/SSDT-4230.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x40) $0 inst_lores $2 cp $BUILDDIR/SSDT-4x40.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x40_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-4x40.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_6x60) $0 inst_lores $2 cp $BUILDDIR/SSDT-6x60.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; # 2x60 is very similar to 6x60 (but uses KEY102) install_2x60) $0 inst_lores $2 cp $BUILDDIR/SSDT-6x60.aml "$EFI"/EFI/CLOVER/ACPI/patched/SSDT-2x60.aml ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_6x60_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-6x60.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x60) $0 inst_lores $2 cp $BUILDDIR/SSDT-8x60.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x60_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-8x60.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_5x30) $0 inst_lores $2 cp $BUILDDIR/SSDT-5x30.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_5x30_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-5x30.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_2x70) $0 inst_lores $2 cp $BUILDDIR/SSDT-2x70.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_2x70_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-2x70.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_6x70) $0 inst_lores $2 cp $BUILDDIR/SSDT-6x70.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_6x70_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-6x70.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x70) $0 inst_lores $2 cp $BUILDDIR/SSDT-8x70.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x70_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-8x70.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_9x70) $0 inst_lores $2 cp $BUILDDIR/SSDT-9x70.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_9x70_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-9x70.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_9x80) $0 inst_lores $2 cp $BUILDDIR/SSDT-9x80.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x0g0) $0 inst_lores $2 cp $BUILDDIR/SSDT-4x0G0.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x0g0_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-4x0G0.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_3x0g1) $0 inst_lores $2 cp $BUILDDIR/SSDT-3x0G1.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_3x0g1_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-3x0G1.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x0g1_ivy) $0 inst_lores $2 cp $BUILDDIR/SSDT-4x0G1i.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x0g1_ivy_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-4x0G1i.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x0g1_ivy) $0 inst_lores $2 cp $BUILDDIR/SSDT-8x0G1i.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x0g1_ivy_hires) $0 inst_hires $2 cp $BUILDDIR/SSDT-8x0G1i.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x0g1_haswell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-4x0G1h.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_450g1_haswell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-450G1h.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_6x0g1_haswell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-6x0G1h.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x0g1_haswell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-8x0G1h.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_1040g1_haswell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-1040G1h.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_1040g3_skylake) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-1040G3s.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_1050g1_kabylake-r) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-1050G1k.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x0g2_haswell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-4x0G2h.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x0g2_haswell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-8x0G2h.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x0g2_broadwell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-4x0G2b.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x0g2_broadwell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-8x0G2b.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x0g3_broadwell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-8x0G3b.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_1020g1_broadwell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-1020G1b.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_ZBook_G2_haswell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-zbG2h.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_ZBook_G2_haswell_alc280) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-zbG2hA.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_ZBook_G1_haswell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-zbG1h.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_ZBook_G2_broadwell) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-zbG2b.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_ZBook_G3_skylake) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-zbG3s.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x0g3_skylake) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-4x0G3s.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x0g3_skylake) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-8x0G3s.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_1030g1_skylake) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-1030G1s.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_6x0g2_skylake) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-6x0G2s.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x0g4_kabylake) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-4x0G4k.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_8x0g4_kabylake) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-8x0G4k.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; install_4x0g5_kabylake-r) $0 inst_xcpm $2 cp $BUILDDIR/SSDT-4x0G4k.aml "$EFI"/EFI/CLOVER/ACPI/patched ls "$EFI"/EFI/CLOVER/ACPI/patched ;; # unknown models *) echo "Error: Unknown model, \"$1\", specifed." ;; esac #EOF ================================================ FILE: install_acpi_include.sh ================================================ CORE="" ================================================ FILE: install_downloads.sh ================================================ #!/bin/bash #set -x EXCEPTIONS= ESSENTIAL="AppleALC.kext CodecCommander.kext ProBookAtheros.kext" # include subroutines source "$(dirname ${BASH_SOURCE[0]})"/_tools/_install_subs.sh warn_about_superuser # install tools install_tools # remove kexts that are no longer used remove_deprecated_kexts remove_kext AppleHDAIDT.kext remove_kext AppleHDAALC.kext remove_kext USBXHCI_4x40s.kext remove_kext SATA-100-series-unsupported.kext remove_kext AppleHDA_ProBook.kext # using AppleALC.kext, remove patched zml.zlib files sudo rm -f /System/Library/Extensions/AppleHDA.kext/Contents/Resources/*.zml.zlib # install required kexts install_download_kexts install_brcmpatchram_kexts install_fakepciid_xhcimux install_fakepciid_intel_hdmi_audio install_backlight_kexts #//REVIEW_REHABMAN: install temporary replacement for AppleALC Info.plist # remove when official build has updated pinconfig data for 4540s audio codec sudo cp kexts/AppleALC_Info.plist /Library/Extensions/AppleALC.kext/Contents/Info.plist # install special kexts specific to ProBook install_kext kexts/HSSDBlockStorage.kext install_kext kexts/JMB38X.kext install_kext kexts/JMicronATA.kext # install other common kexts install_kext _tools/kexts/XHCI-unsupported.kext install_kext _tools/kexts/SATA-unsupported.kext install_kext _tools/kexts/ProBookAtheros.kext # install HackrNVMEFamily-.* if it is found in Clover/kexts EFI="$(./mount_efi.sh)" kext="$(echo "$EFI"/EFI/CLOVER/kexts/Other/HackrNVMeFamily-*.kext)" if [[ -e "$kext" ]]; then install_kext "$kext" fi # LiluFriend and kernel cache rebuild finish_kexts # update kexts on EFI/CLOVER/kexts/Other update_efi_kexts # install HPFanReset.efi zip=`echo -n _downloads/efi/HPFanReset*.zip` out=${zip/.efi.zip/} rm -Rf $out && unzip -q -d $out $zip echo copying $out/*.efi to "$EFI"/EFI/CLOVER/drivers64UEFI cp $out/*.efi "$EFI"/EFI/CLOVER/drivers64UEFI # delete old kexts that might be on EFI rm -Rf "$EFI"/EFI/CLOVER/kexts/Other/SATA-100-series-unsupported.kext # VoodooPS2Daemon is deprecated remove_voodoops2daemon #EOF ================================================ FILE: install_tools.sh ================================================ #!/bin/bash ./_tools/install_tools.sh ================================================ FILE: kexts/AppleALC_Info.plist ================================================ BuildMachineOSBuild 18C48a CFBundleDevelopmentRegion en CFBundleExecutable AppleALC CFBundleIdentifier as.vit9696.AppleALC CFBundleInfoDictionaryVersion 6.0 CFBundleName AppleALC CFBundlePackageType KEXT CFBundleShortVersionString 1.3.4 CFBundleSignature ???? CFBundleSupportedPlatforms MacOSX CFBundleVersion 1.3.4 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild 10L177m DTPlatformVersion GM DTSDKBuild 18A314f DTSDKName macosx10.14 DTXcode 1000 DTXcodeBuild 10L177m IOKitPersonalities HDA Hardware Config Resource CFBundleIdentifier com.apple.driver.AppleHDAHardwareConfigDriver HDAConfigDefault AFGLowPowerState AwAAAA== Codec Creative CA0132, default CodecID 285343761 ConfigData ABcWHwAXFx4BVwoBAVcXDQFXGCQAtwwAANcc 8ADXHQAA1x4AANcfQAEXBwQBJx+QATceAAE3 H0ABhx4AAYcfQA== FuncGroup 1 LayoutID 0 AFGLowPowerState AwAAAA== Codec Creative CA0132, Alienware 15 R2 CodecID 285343761 ConfigData AVcKAQFnAwAAtxwQALcdQQC3HhAAtx+QANcc 8ADXHQAA1x4AANcfQAD3HCABFxxAARcegQEn HDABJx+Q FuncGroup 1 LayoutID 1 AFGLowPowerState AwAAAA== Codec Creative CA0132, 2.0 + front HP CodecID 285343761 ConfigData ABcXHgAXFRABVwoBAScIgQFnCIABVxcNAVcY JADXHPAA1x0AANceAADXH0ABBx4hAScfkAE3 HPABNx0AATceAAE3H0A= FuncGroup 1 LayoutID 2 AFGLowPowerState AwAAAA== Codec Creative CA0132, 2.0 + rear line-out CodecID 285343761 ConfigData ABcXHgAXFRQBVwoBAScIgQFnCIABVxcNAVcY JADXHPAA1x0AANceAADXH0AA5xzwAOcdAADn HgAA5x9AAQceAQEnH5A= FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Creative CA0132, 5.1 with C/Sub CodecID 285343761 ConfigData ABcWHwAXFx4AFxUUAVcKAQEnCIEBZwiAAVcX DQFXGCQA1xzwANcdAADXHgAA1x9AAOcc8ADn HQAA5x4AAOcfQAEHHgEBJx+QATcc8AE3HQAB Nx4AATcfQAGHHPABhx0AAYceAAGHH0A= FuncGroup 1 LayoutID 4 AFGLowPowerState AwAAAA== Codec Creative CA0132, 2.0 front HP + Mic CodecID 285343761 ConfigData ABcXHgAXFRIBVwoBAScIgQFnCIABVxcNAVcY IQC3HiEA1xzwANcdAADXHgAA1x9AAQceAQEX BwQBJx+Q FuncGroup 1 LayoutID 5 AFGLowPowerState AwAAAA== Codec Creative CA0132, 5.1 with front HP CodecID 285343761 ConfigData ABcXHgAXFRABVwoBAScIgQFnCIABVxcNAVcY JADXHPAA1x0AANceAADXH0ABBx4hAScfkA== FuncGroup 1 LayoutID 6 AFGLowPowerState AwAAAA== Codec Creative CA0132 by Andres ZeroCross CodecID 285343761 ConfigData IVcKAQC3HBAAtx1AALceAQC3HwEAxxwgAMcd gADHHkUAxx8BANccIADXHUAA1x4BANcfAQD3 HDAA9x1AAPceIQD3HwEBBxxAAQcdQAEHHiEB Bx8CARccUAEXHUABFx4BARcfAQEnHFABJx2Q AScepwEnH5A= FuncGroup 1 LayoutID 9 AFGLowPowerState AwAAAA== Codec Creative CA0132 by Andres ZeroCross CodecID 285343761 ConfigData AVcKAQAXFRQBJwiBAWcIgAFXFw0BVxgkIQce AQEnH5A= FuncGroup 1 LayoutID 10 AFGLowPowerState AwAAAA== Codec Custom Creative CA0132 5.1 channel CodecID 285343761 ConfigData IVcD8CFXFw0hVxgkIVcPgCC3HCAgtx1AILce ASC3HwEgxxxgIMcdICDHHkUgxx8BINcc8CDX HQAg1x4AINcfQCDnHPAg5x0AIOceACDnH0Ag 9xwvIPcdQCD3HiEg9x8BIQccMCEHHUAhBx4h IQcfASEXHEAhFx0QIRceASEXHwEhJxwQIScd kSEnHqEhJx+QITcc8CE3HQAhNx4AITcfQCGH HFAhhx1gIYceASGHHwE= FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec Custom Creative CA0132 CodecID 285343761 ConfigData AVcKAQAXFx8AFxUQAScIgQFnCIABVxcNAVcY JAEnH5A= FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Cirrus Logic CS4210 CodecID 269697552 ConfigData AFccEABXHUAAVx4hAFcfAABnHCAAZx0AAGce FwBnH5AAdxwwAHcdkAB3HoEAdx8AAJccQACX HQAAlx6gAJcfkA== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Cirrus Logic -CS4213 CodecID 269697555 ConfigData AEccEABHHRAARx4hAEcfAABXHCAAVx0AAFce FwBXH5AAZxwwAGcdEABnHoEAZx8AAHccQAB3 HQAAdx6gAHcfkABXDAI= FuncGroup 1 LayoutID 28 AFGLowPowerState AwAAAA== Codec MacPeet - AD1984 - for_IBM_Lenovo_ThinkPad_T61 CodecID 299112836 ConfigData ARccEAEXHUABFx4hARcfAgFHHCABRx1QAUce gQFHHwIBJxwwAScdAAEnHhcBJx+QAScMAgFX HEABVx0AAVcepwFXH5ABtxygAbcdEAG3HkQB tx8h FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec MacPeet - AD1984A CodecID 299112778 ConfigData ISccECEnHUAhJx4BIScfASFHHCAhRx2QIUce oSFHHwIhVxwwIVcdMCFXHoEhVx8BIRccQCEX HUAhFx4hIRcfAg== FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec MacPeet - AD1984A - Version2 CodecID 299112778 ConfigData ISccECEnHUAhJx4RIScfkCFHHCAhRx2QIUce oSFHHwIhVxwwIVcdMCFXHoEhVx8BIRccQCEX HUAhFx4hIRcfAg== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec Mirone - ADI-1988B CodecID 299112843 ConfigData ARccEAEXHUABFx4hARcfAQEnHCABJx1AASce AQEnHwEBRxxAAUcdkAFHHqEBRx8BAVccUAFX HTABVx6BAVcfAQF3HHABdx2QAXceoQF3HwEB txzwAbcd8QG3HkUBtx8B FuncGroup 1 LayoutID 5 AFGLowPowerState AwAAAA== Codec Mirone - ADI-1988B CodecID 299112843 ConfigData ARccEAEXHUABFx4hARcfAQEnHCABJx1AASce EQEnHwEBRxwwAUcdkAFHHqABRx+QAWccQAFn HRABZx4BAWcfAQF3HFABdx2QAXcegQF3HwEB txxgAbcd8QG3HkUBtx8BAccccAHHHfEBxx7F AccfAQHXHIAB1x3xAdceVgHXHxgCRxyQAkcd YAJHHgECRx8BAlcckAJXHSACVx4BAlcfAQ== FuncGroup 1 LayoutID 7 AFGLowPowerState AwAAAA== Codec 0x11d4198b CodecID 299112843 Comment Custom AD1988B by Rodion ConfigData AXccIAF3HZABdx6gAXcfkQFHHCEBRx2QAUce gQFHHwIBJxwQAScdQAEnHhEBJx8BAkccEQJH HWACRx4RAkcfAQFnHBIBZx0QAWceEQFnHwEC VxwUAlcdIAJXHhECVx8BAccc8AHHHQABxx4A AccfQAE3HPABNx0AATceAAE3H0ABpxzwAacd AAGnHgABpx9AAYcc8AGHHQABhx4AAYcfQA== FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec Mirone - ADI-2000B CodecID 299145371 ConfigData ARccEAEXHUABFx4hARcfAQEnHCABJx1AASce AQEnHwEBRxxAAUcdkAFHHqEBRx8BAVccUAFX HTABVx6BAVcfAQF3HHABdx2QAXceoQF3HwEB txzwAbcd8QG3HkUBtx8B FuncGroup 1 LayoutID 5 AFGLowPowerState AwAAAA== Codec Mirone - ADI-2000B CodecID 299145371 ConfigData ARccMAEXHUABFx4hARcfAQEnHBABJx1AASce EQEnHwEBRxxAAUcdkAFHHqABRx+QAWccUAFn HRABZx4BAWcfAQF3HCABdx2QAXcegQF3HwEB txygAbcd8QG3HkUBtx8BAcccYAHHHfEBxx7F AccfAQHXHLAB1x3xAdceVgHXHxgCRxxwAkcd YAJHHgECRx8BAlccgAJXHSACVx4BAlcfAQ== FuncGroup 1 LayoutID 7 AFGLowPowerState AwAAAA== Codec Goldfish64 - ALC221 for HP Compaq Pro 4300/Pro 6300/Elite 8300 CodecID 283902497 ConfigData AUccIAFHHUABRx4BAUcfAQFHDAIBdxwQAXcd AQF3HhcBdx+QAXcMAgGnHEABpx0QAacegQGn HwIBtxwwAbcdMAG3HoEBtx8BAhccUAIXHRAC Fx4hAhcfAgIXDAI= FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC225/ALC3253 on dell 7579 by ChalesYu CodecID 283902501 ConfigData ASccUAEnHQEBJx6mAScftwE3HAABNx0AATce AAE3H0ABRxywAUcdAQFHHhcBRx+QAWcc8AFn HREBZx4RAWcfQQF3HPABdx0RAXceEQF3H0EB hxzwAYcdEQGHHhEBhx9BAZccQAGXHRABlx6B AZcfAQGnHPABpx0RAaceEQGnH0EBtxzwAbcd EQG3HhEBtx9BAdccAQHXHQAB1x5gAdcfQAHn HPAB5x0RAeceEQHnH0ECFxwgAhcdEAIXHiEC Fx8EAUcMAg== FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom ALC225/ALC3253 for Dell Inspiron 17-7779 by Constanta CodecID 283902501 ConfigData ASccMAEnHQABJx6gAScfkAFHHEABRx0AAUce FwFHH5ABlxxwAZcdEAGXHoEBlx8AAhccIAIX HRACFx4hAhcfAAFHDAI= FuncGroup 1 LayoutID 30 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom ALC225/ALC3253 by ChalesYu CodecID 283902501 ConfigData ASccEAEnHQEBJx6mAScfmQG3HCABtx0AAbce FwG3H5kBlxwwAZcdEAGXHoEBlx8CAhccQAIX HRACFx4hAhcfAgG3DAIBRwwCAhcMAg== FuncGroup 1 LayoutID 33 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Andres Laptop Patch ALC230 Lenovo 310-14ISK CodecID 283902512 ConfigData ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce FwFHH5ABlxwwAZcdEAGXHosBlx8EAhccQAIX HRACFx4rAhcfBAE3HFABNx0AATceAAE3H0AB 1xxgAdcdsAHXHmYB1x9AAUcMAgGXDAI= FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec Realtek ALC230 for Lenovo Ideapad 320 by maiconjs CodecID 283902512 ConfigData AhccEAIXHRACFx4rAhcfBAFHHCABRx0BAUce FwFHH5ABJxwwAScdAQEnHqABJx+QAZccQAGX HRABlx6LAZcfBA== FuncGroup 1 LayoutID 20 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC233 CodecID 283902515 ConfigData AUccEAFHHQABRx4XAUcfkAGXHCABlx0QAZce qwGXHwMBpxwwAacdAAGnHqABpx+QAhccQAIX HRACFx4rAhcfAwFHDAI= FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom Realtek ALC233 (3236) CodecID 283902515 ConfigData AUccEAFHHQABRx4XAUcfkAG3HCABtx0AAbce oAG3H5ACFxwwAhcdEAIXHiECFx8BAUcMAg== FuncGroup 1 LayoutID 4 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC233/ALC3236 CodecID 283902515 ConfigData AUccEAFHHQABRx4XAUcfkAGXHCABlx2QAZce iwGXHwIBtxwwAbcdkAG3HqABtx+QAhccQAIX HUACFx4rAhcfAgFHDAIBtwwC FuncGroup 1 LayoutID 5 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC233 for Asus X550LC CodecID 283902515 ConfigData AUccEAFHHQABRx4XAUcfmQIXHCACFx0QAhce IQIXHwMBpxwwAacdAQGnHqABpx+ZAZccQAGX HRABlx6BAZcfAw== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec Custom for Realtek ALC233 for SONY VAIO Fit 14E(SVF14316SCW) by SquallATF CodecID 283902515 ConfigData ASccQAEnHQEBJx6mAScfkAGnHDABpx1QAace gQGnHwMBRxwQAUcdAQFHHhcBRx+QAUcMAgIX HCACFx0QAhceIQIXHwMCFwwC FuncGroup 1 LayoutID 27 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom for Realtek ALC3236 for Asus TP500LN by Mohamed Khairy CodecID 283902515 ConfigData ASccEAEnHQABJx4AAScfQAFHHCABRx0AAUce EwFHH5ABtxxAAbcdAAG3HqABtx+QAdccUAHX HZAB1x5FAdcfQAIXHDACFx0QAhceIQIXHwAB RwwCAhcMAg== FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom by Mirone - Realtek ALC233 (ALC3236) for Asus X550LDV CodecID 283902515 ConfigData AUccEAFHHQEBRx4TAUcfmQGXHEABlx0QAZce gQGXHwABpxwwAacdAQGnHqABpx+ZAhccIAIX HRACFx4hAhcfAAFHDAI= FuncGroup 1 LayoutID 29 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec MacPeet - ALC233 (ALC3236) for ASUS VIVOBOOK S301LA CodecID 283902515 ConfigData AaccMAGnHQABpx6nAacfkAGXHEABlx0QAZce gQGXHwABRxxQAUcdAAFHHhcBRx+QAUcMAgIX HGACFx0QAhceIQIXHwACFwwC FuncGroup 1 LayoutID 32 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec MacPeet - ALC233 (ALC3236) for ASUS VIVOBOOK S451LA CodecID 283902515 ConfigData AhccIAIXHRACFx4hAhcfAAIXDAIBtxwwAbcd AAG3HqcBtx+QAZccQAGXHRABlx6BAZcfAAFH HFABRx0AAUceFwFHH5ABRwwC FuncGroup 1 LayoutID 33 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC235 CodecID 283902517 ConfigData ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce FwFHH5ABdxwwAXcdAAF3HgABdx9AAZccQAGX HRABlx6LAZcfAAHXHFAB1x2QAdce9wHXH0AC FxxgAhcdEAIXHisCFx8BAUcMAgIXDAI= FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Realtek ALC235 for Ienovo by soto2080 CodecID 283902517 ConfigData ASccEAEnHAEBJxygAScckAFHHAABRxwBAUcc EAFHHJABlxwwAZccEAGXHIEBlxwCAhccIAIX HBACFxwhAhccAgF3HPABdx0AAXceAAF3H0AB hxzwAYcdAAGHHgABhx9AAacc8AGnHQABpx4A AacfQAG3HPABtx0AAbceAAG3H0AB1xzwAdcd AAHXHgAB1x9AAUcMAg== FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec the-braveknight - Realtek ALC235 for Lenovo Legion Y520 CodecID 283902517 ConfigData ASccQAEnHQABJx6gAScfsAFHHBABRx0AAUce FwFHH5ABRwwCAZccMAGXHRABlx6BAZcfAAIX HGACFx0QAhceIQIXHwA= FuncGroup 1 LayoutID 14 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec vusun123 - Realtek ALC235 for Lenovo Legion Y520 CodecID 283902517 ConfigData ASccQAEnHQABJx6gAScfsAFHHBABRx0AAUce FwFHH5ABRwwCAZccMAGXHRABlx6BAZcfAAIX HGACFx0QAhceIQIXHwA= FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC236 CodecID 283902518 ConfigData ASccEAEnHQABJx6mAScfkAFHHCABRx0AAUce FwFHH5ABlxwwAZcdEAGXHoEBlx8EAhccQAIX HRACFx4hAhcfBAFHDAI= FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Jake Lo - Realtek ALC236 CodecID 283902518 ConfigData ASccEAEnHQEBJx6gAScfkAE3HPABNx0AATce AAE3H0ABRxwwAUcdAQFHHhABRx+QAUcMAgGH HPABhx0AAYceAAGHH0ABlxwgAZcdMAGXHosB lx8BAacc8AGnHQABpx4AAacfQAG3HPABtx0A AbceAAG3H0AB1xzwAdcdAAHXHgAB1x9AAecc 8AHnHQAB5x4AAecfQAIXHEACFx1AAhceKwIX HwECFwwCABcgAAAXIXIAFyJrABcjEA== FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom - Realtek ALC236 for Lenovi Air 13 Pro by rexx0520 CodecID 283902518 ConfigData ASccAAEnHQEBJx6mAScfkAFHHBABRx0BAUce EAFHH5ABdxzwAXcdAAF3HgABdx9AAYcc8AGH HQABhx4AAYcfQAGXHCABlx2QAZceqwGXHwAB pxzwAacdAAGnHgABpx9AAbcc8AG3HQABtx4A AbcfQAHXHPAB1x0AAdceAAHXH0AB5xzwAecd AAHnHgAB5x9AAhccMAIXHUACFx4rAhcfAAFH DAI= FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec MacPeet - ALC236 for Lenovo Ideapad 500-15ISK CodecID 283902518 ConfigData ASccAAEnHQEBJx6mAScfkAFHHBABRx0BAUce EAFHH5ABRwwCAZccIAGXHRABlx6LAZcfAAIX HDACFx0QAhceKwIXHwACFwwC FuncGroup 1 LayoutID 15 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec RodionS - ALC236 for Lenovo Ideapad 320s 14ikb CodecID 283902518 ConfigData ASccAAEnHQEBJx6mAScfkAFHHBABRx0BAUce EAFHH5ABRwwCAZccIAGXHRABlx6LAZcfAAIX HDACFx0QAhceKwIXHwABRwwCAhcMAg== FuncGroup 1 LayoutID 16 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC255 CodecID 283902549 ConfigData ASccEAEnHQABJx6mAScfkAFHHCABRx0AAUce FwFHH5ABlxwwAZcdEAGXHosBlx8AAhccUAIX HRACFx4rAhcfAgFHDAI= FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC255_v1 CodecID 283902549 ConfigData AbccIAG3HQABtx6gAbcfkAFHHDABRx0AAUce FwFHH5ACFxxQAhcdEAIXHiECFx8AAUcMAgIX DAI= FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC255_v2 CodecID 283902549 ConfigData ASccEAEnHQABJx6mAScfkAFHHCABRx0AAUce FwFHH5ABdxwwAXcdAAF3HgABdx9AAdccQAHX HQAB1x5wAdcfQAIXHFACFx0QAhceIQIXHwIB RwwC FuncGroup 1 LayoutID 17 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec DuNe - Realtek ALC255 for Aorus X5V7 CodecID 283902549 ConfigData ASccEAEnHQABJx6mAScfkAFHHCABRx0AAUce FwFHH5ABtxwhAbcdAAG3HhcBtx+QAXccMAF3 HQABdx4AAXcfQAHXHEAB1x0AAdcecAHXH0AC FxxQAhcdEAIXHiECFx8CAaccYAGnHRABpx6B AacfAgHnHHAB5x0QAeceRQHnHwIBRwwC FuncGroup 1 LayoutID 18 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC255 for Asus X441UA-WX096D by Andres ZeroCross CodecID 283902549 ConfigData AZcc8AGXHRABlx6BAZcfAgGnHDABpx0BAace oAGnH5ABtxwQAbcdAQG3HhcBtx+QAhccIAIX HRACFx4hAhcfAgG3DAICFwwC FuncGroup 1 LayoutID 21 WakeConfigData AbcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC255 for Asus X556UA m-dudarev CodecID 283902549 ConfigData AUccEAFHHQEBRx4XAUcfkAGXHCABlx0QAZce gQGXHwQCFxwgAhcdEAIXHiECFx8EAbccMAG3 HQEBtx6gAbcfkAFHDAI= FuncGroup 1 LayoutID 27 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Realtek ALC255 for Lenovo B470 - vusun123 CodecID 283902549 ConfigData ASccYAEnHQABJx6gAScfkAFHHCABRx0AAUce FwFHH5ABRwwCAhccMAIXHRACFx4hAhcfAQ== FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec HongyuS - Realtek ALC255 for XiaoMiAir 13.3 CodecID 283902549 ConfigData ASccMAEnHQEBJx6mAScfkAFHHBABRx0BAUce FwFHH5ABRwwCAXccAAF3HQABdx4AAXcfQAGH HPABhx0AAYceAAGHH0ABlxwgAZcdEAGXHoEB lx8EAacc8AGnHQABpx4AAacfQAG3HPABtx0A AbceAAG3H0AB1xwtAdcdmgHXHvcB1x9AAecc 8AHnHQAB5x4AAecfQAIXHCACFx0QAhceIQIX HwQCFwwC FuncGroup 1 LayoutID 30 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec DalianSky - Realtek ALC255 (3246) for XiaoMi Air CodecID 283902549 ConfigData ASccIAEnHQEBJx6mAScfkAE3HPABNx0AATce AAE3H0ABRxxAAUcdAQFHHhcBRx+QAUcMAgF3 HPABdx0AAXceAAF3H0ABhxzwAYcdAAGHHgAB hx9AAZccEAGXHRABlx6LAZcfAgGnHPABpx0A AaceAAGnH0ABtxzwAbcdAAG3HgABtx9AAdcc 8AHXHQAB1x4AAdcfQAHnHPAB5x0AAeceAAHn H0ACFxwwAhcdEAIXHisCFx8CAhcMAg== FuncGroup 1 LayoutID 99 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Rockjesus - Realtek ALC256 (3246) - dell 7559 CodecID 283902550 ConfigData ASccAAEnHQEBJx6mAScfmQFHHBABRx0BAUce FwFHH5kCFxwgAhcdEAIXHiECFx8BAbcMAg== FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Insanelydeepak - Realtek ALC256 (3246) for Dell Series CodecID 283902550 ConfigData ASccEAEnHQABJx6mAScfkAFHHCABRx0AAUce FwFHH5ABlxwwAZcdEAGXHosBlx8CAhccUAIX HRACFx4rAhcfAgFHDAI= FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902550 Comment vusun123 - ALC256 for Asus X555UJ ConfigData AUccUAFHHQABRx4XAUcfkAFHDAIBpxwwAacd AAGnHqABpx+QAhccIAIXHRACFx4hAhcfAA== FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec DalianSky - Realtek ALC256 (3246) for Dell 7000 Series CodecID 283902550 ConfigData ASccMAEnHQEBJx6mAScfkAE3HPABNx0AATce AAE3H0ABRxwQAUcdAQFHHhcBRx+QAUcMAgGH HPABhx0AAYceAAGHH0ABlxxAAZcdEAGXHoEB lx8CAacc8AGnHQABpx4AAacfQAG3HPABtx0A AbceAAG3H0AB1xzwAdcdAAHXHgAB1x9AAecc 8AHnHQAB5x4AAecfQAIXHCACFx0QAhceIQIX HwICFwwC FuncGroup 1 LayoutID 56 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec MacPeet - Realtek ALC257 for Lenovo T480 CodecID 283902551 ConfigData ASccIAEnHQABJx6mAScfkAGXHDABlx0QAZce gQGXHwABRxxQAUcdAAFHHhcBRx+QAUcMAgIX HGACFx0QAhceIQIXHwA= FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec MacPeet ALC260 for Fujitsu Celsius M 450 CodecID 283902560 ConfigData IPccECD3HUAg9x4RIPcfASD3DAIhhxwgIYcd YCGHHkQhhx8BITccQCE3HZAhNx6hITcfmSFH HFAhRx0wIUcegSFHHwEhVxxgIVcdQCFXHiEh Vx8C FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec Custom ALC260 CodecID 283902560 ConfigData AQccAAEHHUABBx4hAQcfAQEnHBABJx2QASce oQEnH5kBNxwgATcdMAE3HoEBNx8B FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec MacPeet - ALC262 CodecID 283902562 ConfigData IUccECFHHUAhRx4BIUcfASHnHCAh5x1gIece RSHnHwAhhxwwIYcdkCGHHqEhhx+RIZccQCGX HZAhlx6hIZcfkiGnHFAhpx0wIacegSGnHwEh txxgIbcdQCG3HiEhtx8C FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec Goldfish64 - ALC262 for HP Compaq dc7700 SFF CodecID 283902562 ConfigData AbccEAG3HUABtx4BAbcfAQFXHCABVx0QAVce IQFXHwIBZxwwAWcdAQFnHhMBZx+QAZccQAGX HTABlx6BAZcfAQGnHFABpx0QAacegQGnHwI= FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec MacPeet - ALC262 for Fujitsu Celsius H270 CodecID 283902562 ConfigData AUccEAFHHQABRx4TAUcfkAFXHCABVx0QAVce IQFXHwIBhxwwAYcdEAGHHoEBhx8CAZccQAGX HQABlx6jAZcfkAGnHFABpx0QAacegQGnHwE= FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec MacPeet - ALC262 for HP Z800-Z600 series CodecID 283902562 ConfigData AZccAAGXHREBlx6gAZcfkgGnHBABpx0xAace gAGnH5EBVxwgAVcdQQFXHhABVx+RAWccMAFn HQEBZx4AAWcfKQGHHEABhx2QAYceoAGHH5EB txxQAbcdEAG3HisBtx8C FuncGroup 1 LayoutID 28 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC268 CodecID 283902568 ConfigData AUccEAFHHRABRx4hAUcfAQGHHEABhx2QAYce gQGHHwEBVxxQAVcdAAFXHhMBVx+QAZccYAGX HQABlx6jAZcfkAFXDAI= FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone Laptop patch ALC269 Asus N53J CodecID 283902569 ConfigData AYccIAGHHRABhx6BAYcfBAGXHBABlx0BAZce oAGXH5kBtxxAAbcdAQG3HhMBtx+ZAhccUAIX HRACFx4hAhcfBAFHDAI= FuncGroup 1 LayoutID 1 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC269-VB v1 CodecID 283902569 ConfigData AUccQAFHHQEBRx4TAUcfmQGHHCABhx0QAYce gQGHHwMBlxwQAZcdAQGXHqABlx+ZAhccUAIX HRACFx4hAhcfAwFHDAI= FuncGroup 1 LayoutID 2 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC269 CodecID 283902569 Comment Mirone - Realtek ALC269 for Asus K53SJ, Asus G73s ConfigData AScc8AEnHQABJx4AAScfQAFHHBABRx0BAUce EwFHH5ABdxxQAXcdAQF3HhMBdx+QAYccIAGH HZABhx6BAYcfAwGXHDABlx0BAZceoAGXH5AB pxzwAacdAAGnHgABpx9AAbcc8AG3HQABtx4A AbcfQAHXHPAB1x0AAdceAAHXH0AB5xzwAecd AAHnHgAB5x9AAhccQAIXHRACFx4hAhcfAwFH DAI= FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC269-VB v2 CodecID 283902569 ConfigData AUccEAFHHQABRx4TAUcfkAGHHCABhx2QAYce gQGHHwIBtxwwAbcdEAG3HqABtx+QAhccQAIX HRACFx4hAhcfAgFHDAI= FuncGroup 1 LayoutID 4 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC269-VB v3 CodecID 283902569 ConfigData ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce EwFHH5ABhxwwAYcdEAGHHoEBhx8AAhccUAIX HRACFx4hAhcfAAFHDAI= FuncGroup 1 LayoutID 5 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC269-VC v1 CodecID 283902569 ConfigData AUccEAFHHQABRx4TAUcfkAGHHDABhx0QAYce gQGHHwABJxxAAScdAAEnHqABJx+QAVccUAFX HRABVx4hAVcfAAFHDAI= FuncGroup 1 LayoutID 6 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC269-VC v2 CodecID 283902569 ConfigData ASccEAEnHQABJx6mAScfkAFXHCABVx0QAVce IQFXHwABhxwwAYcdEAGHHoEBhx8CAbccQAG3 HQABtx4XAbcfkAG3DAI= FuncGroup 1 LayoutID 7 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC269VC-v3 CodecID 283902569 ConfigData ASccEAEnHQABJx6mAScfkAFHHCABRx0AAUce FwFHH5ABVxwwAVcdEAFXHiEBVx8AAYccQAGH HZABhx6BAYcfAgFHDAI= FuncGroup 1 LayoutID 8 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC269VB v4 CodecID 283902569 ConfigData ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce EwFHH5ABhxwwAYcdEAGHHoEBhx8AAhccUAIX HRACFx4hAhcfAAFHDAI= FuncGroup 1 LayoutID 9 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902569 Comment Toleda ALC269 patch for Brix ConfigData IUcc8CFHHQAhRx4AIUcfQCFXHHAhVx1AIVce ISFXHwIhZxzwIWcdACFnHgAhZx9AIXcc8CF3 HQAhdx4AIXcfQCGHHPAhhx0AIYceACGHH0Ah lxzwIZcdACGXHgAhlx9AIacc8CGnHQAhpx4A IacfQCG3HPAhtx0AIbceACG3H0Ah5xyQIecd YSHnHksh5x8B FuncGroup 1 LayoutID 10 AFGLowPowerState AwAAAA== Codec Mosser - ALC269VB Dell Precision Workstation T1600 CodecID 283902569 ConfigData AbccIAG3HUABtx4BAbcfAQGHHDABhx2YAYce gQGHHwIBlxxAAZcdmAGXHoEBlx8BAhccUAIX HUACFx4hAhcfAg== FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC269VC for Samsung NP350V5C-S08IT CodecID 283902569 ConfigData AZccEAGXHQABlx6nAZcfmQFXHCABVx0QAVce IQFXHwIBhxwwAYcdEAGHHoEBhx8CAUccQAFH HQABRx4XAUcfmQFHDAI= FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902569 Comment Custom ALC269VC for Samsung NT550P7C-S65 with subwoofer 2.1ch by Rockjesus ConfigData AVccEAFXHRABVx4hAVcfAQGHHCABhx0QAYce gQGHHwEBlxwwAZcdAQGXHqcBlx+QAbccQAG3 HQEBtx4XAbcfkAF3HEEBdx0BAXceFwF3H5AB JxzwAScdAAEnHgABJx9AAUcc8AFHHQABRx4A AUcfQAGnHPABpx0AAaceAAGnH0AB1xzwAdcd AAHXHgAB1x9AAecc8AHnHQAB5x4AAecfQAG3 DAI= FuncGroup 1 LayoutID 14 AFGLowPowerState AwAAAA== Codec MacPeet - ALC269VB for Dell Optiplex 790 CodecID 283902569 ConfigData AbccIAG3HUABtx4BAbcfAQGHHDABhx2QAYce gQGHHwIBlxxAAZcdkAGXHoEBlx8BAhccUAIX HUACFx4hAhcfAg== FuncGroup 1 LayoutID 15 AFGLowPowerState AwAAAA== Codec MacPeet - ALC269VB for Dell Optiplex 790 Version2 CodecID 283902569 ConfigData AbccIAG3HUABtx4RAbcfkAGHHDABhx2QAYce oQGHH5ABlxxAAZcdkAGXHoEBlx8BAhccUAIX HUACFx4hAhcfAg== FuncGroup 1 LayoutID 16 AFGLowPowerState AwAAAA== Codec Hypereitan - ALC269VC for Thinkpad X230 i7 CodecID 283902569 ConfigData ASccEAEnHQEBJx6gAScfkAFHHEABRx0BAUce EAFHH5ABVxxQAVcdEAFXHiEBVx8BAYcccAGH HRABhx6hAYcfAQFHDAI= FuncGroup 1 LayoutID 18 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Asus Vivobook S300CA - Realtek ALC269VB CodecID 283902569 ConfigData ASccEAEnHQEBJx6mAScfkAFHHCABRx0BAUce FwFHH5AB1xwwAdcdkAHXHgcB1x9AAhccQAIX HRACFx4hAhcfBAFHDAI= FuncGroup 1 LayoutID 19 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC269 CodecID 283902569 Comment Custom ALC269 Sony Vaio VPCEB3M1R by Rodion ConfigData AVccQAFXHRABVx4hAVcfAwGHHCABhx0QAYce gQGHHwMBlxwwAZcdAQGXHqABlx+QAbccEAG3 HQEBtx4XAbcfkAFXDAI= FuncGroup 1 LayoutID 20 AFGLowPowerState AwAAAA== Codec ALC269 CodecID 283902569 Comment Custom ALC269 for Acer Aspire by Andrey1970 ConfigData AUccAAFHHUEBRx4XAUcfmQGHHBABhx2QAYce gQGHHwEBtxwgAbcdkQG3HqcBtx+ZAhccMAIX HUACFx4hAhcfAQ== FuncGroup 1 LayoutID 27 AFGLowPowerState AwAAAA== Codec ALC269VC CodecID 283902569 Comment ALC269VC for Lenovo Z580, John ConfigData AVccQAFXHRABVx4hAVcfAwGHHCABhx0QAYce gQGHHwMBlxwwAZcdAQGXHqABlx+QAbccEAG3 HQEBtx4XAbcfkAFXDAI= FuncGroup 1 LayoutID 28 AFGLowPowerState AwAAAA== CodecID 283902569 Comment ALC269VC for Lenovo V580, ar4er ConfigData ASccEAEnHQABJx6mAScfkAFHHCABRx0AAUce FwFHH5ABVxwwAVcdEAFXHiEBVx8AAYccQAGH HZABhx6BAYcfAgFHDAI= FuncGroup 1 LayoutID 29 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC269VC for Hasee Z6SL7R3 by HF CodecID 283902569 ConfigData ASccEAEnHQEBJx6gAScfkAFHHBABRx0BAUce FwFHH5ABVxyAAVcdEAFXHiEBVx8CAYccIAGH HRABhx6BAYcfAgHnHGAB5x0AAeceQQHnHwIB RwwC FuncGroup 1 LayoutID 30 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902569 Comment Custom ALC269 Samsung np880z5e-x01ru by Constanta ConfigData ASccEAEnHQABJx6mAScfkAG3HCABtx0AAbce FwG3H5ABVxwwAVcdEAFXHiEBVx8AAYccQAGH HZABhx6BAYcfAgG3DAI= FuncGroup 1 LayoutID 32 AFGLowPowerState AwAAAA== CodecID 283902569 Comment Custom ALC269VC for Samsung NP530U3C-A0F by BblDE3HAP ConfigData AUccEAFHHQEBRx4XAUcfkAFHDAIBVxxAAVcd EAFXHiEBVx8DAVcMAgGHHCABhx0QAYcegQGH HwMBlxwwAZcdAQGXHqABlx+Q FuncGroup 1 LayoutID 33 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC269VC - Samsung NP350V5C-S0URU CodecID 283902569 ConfigData AUccEAFHHQABRx4XAUcfkAGHHCABhx0QAYce gQGHHwIBVxwwAVcdEAFXHiEBVx8CAZccQAGX HQABlx6gAZcfkAFHDAI= FuncGroup 1 LayoutID 35 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec vusun123 - Realtek ALC269VC for Lenovo W530 CodecID 283902569 ConfigData ASccQAEnHQABJx6gAScfkAFHHBABRx0AAUce FwFHH5ABRwwCAVccIAFXHRABVx4hAVcfAAGH HDABhx0QAYcegQGHHwA= FuncGroup 1 LayoutID 40 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec maiconjs (Wolfield) - Asus A45A 269VB1 CodecID 283902569 ConfigData AUccEAFHHQABRx4XAUcfmQGHHCABhx0QAYce gQGHHwEBJxwwAScdAAEnHqYBJx+ZAhccUAIX HRACFx4hAhcfAQFHDAI= FuncGroup 1 LayoutID 45 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec HASEE Z6-i78154S2 ALC269 by lianny CodecID 283902569 ConfigData AUccEAFHHQABRx4TAUcfkAGHHDABhx0QAYce gQGHHwABJxxAAScdAAEnHqABJx+QAVccIAFX HRABVx4hAVcfAAF3HPABdx0AAXceAAF3H0AB lxzwAZcdAAGXHgABlx9AAacc8AGnHQABpx4A AacfQAG3HPABtx0AAbceAAG3H0AB1xzwAdcd AAHXHgAB1x9AAeccYAHnHRAB5x5EAecfAgFH DAI= FuncGroup 1 LayoutID 58 AFGLowPowerState AwAAAA== Codec ALC269VC for Clevo N155RD by DalianSky CodecID 283902569 ConfigData ASccEAEnHQEBJx6mAScfkAFHHDABRx0BAUce FwFHH5ABVxwgAVcdEAFXHiEBVx8CAXcc8AF3 HQABdx4AAXcfQAGHHAABhx0QAYcegQGHHwIB lxzwAZcdAAGXHgABlx9AAacc8AGnHQABpx4A AacfQAG3HPABtx0AAbceAAG3H0AB5xxwAecd EQHnHkQB5x8CAUcMAg== FuncGroup 1 LayoutID 66 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom ALC269VB for ENZ C16B by jimmy19990 CodecID 283902569 ConfigData AUccEAFHHQEBRx4TAUcfkAGHHCABhx0QAYce gQGHHwEBlxwgAZcdAQGXHqABlx+QAhccEAIX HRACFx4hAhcfAQFHDAI= FuncGroup 1 LayoutID 76 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC269 CodecID 283902569 Comment ALC269 Asus K53SJ, Asus G73s Mod by Andrey1970 (No input boost - no noise in Siri) ConfigData AScc8AEnHQABJx4AAScfQAFHHBABRx0BAUce EwFHH5ABdxxQAXcdAQF3HhMBdx+QAYccIAGH HZABhx6BAYcfAwGXHDABlx0BAZceoAGXH5AB pxzwAacdAAGnHgABpx9AAbcc8AG3HQABtx4A AbcfQAHXHPAB1x0AAdceAAHXH0AB5xzwAecd AAHnHgAB5x9AAhccQAIXHRACFx4hAhcfAwFH DAI= FuncGroup 1 LayoutID 93 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC269-VB v4 Mod by Andrey1970 (No input boost - no noise in Siri) CodecID 283902569 ConfigData ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce EwFHH5ABhxwwAYcdEAGHHoEBhx8AAhccUAIX HRACFx4hAhcfAAFHDAI= FuncGroup 1 LayoutID 99 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC269 CodecID 283902569 Comment Custom ALC269 Acer Aspire by Andrey1970 (No input boost - no noise in Siri) ConfigData AUccAAFHHUEBRx4XAUcfmQGHHBABhx2QAYce gQGHHwEBtxwgAbcdkQG3HqcBtx+ZAhccMAIX HUACFx4hAhcfAQ== FuncGroup 1 LayoutID 127 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC270 v1 CodecID 283902576 ConfigData AUccEAFHHQABRx4TAUcfkAGXHCABlx0AAZce oAGXH5ACFxwwAhcdEAIXHiECFx8AAUcMAg== FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC270 v2 CodecID 283902576 ConfigData ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce EwFHH5ACFxwwAhcdEAIXHiECFx8BAUcMAg== FuncGroup 1 LayoutID 4 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC270 CodecID 283902576 Comment ALC270 for Asus Laptop with alternative microphone ConfigData ASccEAEnHQEBJx6mAScfkAFHHCABRx0BAUce EwFHH5ABdxzwAXcdAAF3HgABdx9AAYccMAGH HRABhx6BAYcfAgGXHPABlx0AAZceAAGXH0AB pxzwAacdAAGnHgABpx9AAbcc8AG3HQABtx4A AbcfQAHXHPAB1x0AAdceAAHXH0AB5xzwAecd AAHnHgAB5x9AAhccQAIXHRACFx4hAhcfAgFH DAI= FuncGroup 1 LayoutID 27 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC270 CodecID 283902576 Comment ALC270 for Asus Laptop ConfigData AScc8AEnHQABJx4AAScfQAFHHBABRx0BAUce FwFHH5ABdxzwAXcdAAF3HgABdx9AAYccIAGH HRABhx6BAYcfBAGXHDABlx0BAZceoAGXH5AB pxzwAacdAAGnHgABpx9AAbcc8AG3HQABtx4A AbcfQAHXHPAB1x0AAdceAAHXH0AB5xzwAecd AAHnHgAB5x9AAhccIAIXHRACFx4hAhcfBAFH DAI= FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902569 Comment Custom ALC271x Acer Aspire s3-951 ConfigData ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce EwFHH5ABhxwwAYcdkAGHHoEBhx8AAdccQAHX HZAB1x4XAdcfQAHnHFAB5x0QAeceRQHnHwAC FxxgAhcdEAIXHiECFx8AAUcMAg== FuncGroup 1 LayoutID 31 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC272 CodecID 283902578 ConfigData AYccMAGHHZABhx6BAYcfAAGXHCABlx0AAZce owGXH5ABRxwQAUcdAAFHHhMBRx+QAhccUAIX HUACFx4hAhcfAAFHDAI= FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC 272 - Lenovo B470 - Sam Chen CodecID 283902578 ConfigData ASccMAEnHQABJx6jAScfkAFHHBABRx0AAUce EwFHH5ABhxwgAYcdEAGHHoEBhx8AAhccUAIX HRACFx4hAhcfAAFHDAI= FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC275 CodecID 283902581 ConfigData ASccAAEnHQABJx6gAScfkAFHHBABRx0BAUce FwFHH5ABVxwgAVcdEAFXHiEBVx8DAUcMAg== FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC275 CodecID 283902581 ConfigData AUccEAFHHQEBRx4XAUcfkAFXHCABVx0QAVce IQFXHwMBJxwwAScdAAEnHqABJx+QAYccQAGH HVABhx6BAYcfAAHnHFAB5x0QAeceRQHnHwAB RwwC FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom ALC275 for Sony Vaio - vusun123 CodecID 283902581 ConfigData ASccQAEnHQABJx6gAScfkAFXHBABVx0QAVce IQFXHwABhxwwAYcdUAGHHoEBhx8AAaccUAGn HQABpx4XAacfkAGnDAI= FuncGroup 1 LayoutID 28 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC280 CodecID 283902592 ConfigData AUccEAFHHQABRx4TAUcfkAFXHCABVx0QAVce IQFXHwEBJxwwAScdAAEnHqABJx+QAaccQAGn HRABpx6BAacfAgFHDAIBVwwC FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC280 - ComboJack CodecID 283902592 ConfigData ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce FwFHH5ABVxwwAVcdEAFXHiEBVx8CAaccQAGn HRABpx6BAacfAgFHDAIBVwwC FuncGroup 1 LayoutID 4 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Alienware alpha - Realtek ALC280 CodecID 283902592 ConfigData IUcc8CFHHQAhRx4AIUcfQCFXHPAhVx0AIVce ACFXH0AhZxzwIWcdACFnHgAhZx9AIXcc8CF3 HQAhdx4AIXcfQCGHHPAhhx0AIYceACGHH0Ah lxzwIZcdACGXHgAhlx9AIacc8CGnHQAhpx4A IacfQCG3HPAhtx0AIbceACG3H0Ah5xwQIecd 4SHnHkUh5x8B FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec MacPeet - Realtek ALC280 - Dell T20 - Version1 - ManualMode CodecID 283902592 ConfigData AbccIAG3HUABtx4BAbcfAQGnHDABpx2QAace gQGnHwIBhxxAAYcdMAGHHoEBhx8BAVccYAFX HUABVx4hAVcfAgFXDAI= FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec MacPeet - Realtek ALC280 - Dell T20 - Version2 - SwitchMode CodecID 283902592 ConfigData AbccIAG3HUABtx4RAbcfkAGnHDABpx2QAace gQGnHwIBhxxAAYcdMAGHHoEBhx8BAVccYAFX HUABVx4hAVcfAgFXDAI= FuncGroup 1 LayoutID 15 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC282_v1 CodecID 283902594 ConfigData ASccEAEnHQABJx6gAScfmQFHHCABRx0AAUce EwGXHDABlx0QAZceiwGXHwABRx+ZAhccUAIX HRACFx4rAhcfAQFHDAICFwwC FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC282_v2 CodecID 283902594 ConfigData ASccQAEnHQABJx6gAScfkAFHHBABRx0AAUce FwFHH5ABhxwwAYcdEAGHHoEBhx8AAeccIAHn HRAB5x5EAecfAAIXHFACFx0QAhceIQIXHwAB RwwC FuncGroup 1 LayoutID 4 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC282 CodecID 283902594 ConfigData ASccQAEnHQABJx6gAScfkAFHHBABRx0AAUce FwFHH5ABhxwwAYcdEAGHHoEBhx8AAeccIAHn HRAB5x5EAecfAAIXHFACFx0QAhceIQIXHwAB RwwC FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902594 Comment Custom ALC282 lenovo y430p by loverto ConfigData ASccEAEnHQEBJx6mAScfkAFHHPABRx0AAUcd AAFHH0ABdxzwAXcdAAF3HgABdx9AAYcccAGH HRABhx6BAYcfAQGHHAIBlxzwAZcdAAGXHgAB lx9AAacc8AGnHQABpx4AAacfQAG3HEABtx0B AbceFwG3H5AB1xzwAdcdAAHXHgAB1x9AAecc YAHnHRAB5x5EAecfAQIXHFACFx0QAhceIQIX HwECFxwC FuncGroup 1 LayoutID 22 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902594 Comment Skvo ALC282 Acer Aspire on IvyBridge by Andrey1970 ConfigData ASccMAEnHQABJx6gAScfkAFHHBABRx0AAUce FwFHH5ABdxzwAXcdAAF3HgABdx9AAYcc8AGH HQABhx4AAYcfQAGXHPABlx0AAZceAAGXH0AB pxzwAacdAAGnHgABpx9AAbcc8AG3HQABtx4A AbcfQAHnHPAB5x0AAeceAAHnH0ACFxwgAhcd EAIXHiECFx8B FuncGroup 1 LayoutID 27 AFGLowPowerState AwAAAA== CodecID 283902594 Comment Custom ALC282 Acer Aspire E1-572G ConfigData AScc8AEnHQABJx4AAScfQAFHHBABRx0AAUce FwFHH5ABdxzwAXcdAAF3HgABdx9AAYcc8AGH HQABhx4AAYcfQAGXHPABlx0AAZceAAGXH0AB pxzwAacdAAGnHgABpx9AAbccMAG3HQEBtx6g AbcfkAHnHPAB5x0AAeceAAHnH0ACFxwgAhcd EAIXHiECFx8B FuncGroup 1 LayoutID 28 AFGLowPowerState AwAAAA== CodecID 283902594 Comment Custom ALC282 Dell Inspirion 3521 by Generation88 ConfigData ASccQAEnHQEBJx6gAScfkAFHHBABRx0BAUce FwFHH5ABlxwwAZcdEAGXHoEBlx8BAhccIAIX HRACFx4hAhcfAQFHDAI= FuncGroup 1 LayoutID 29 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom ALC282 Hasee K580C by YM2008 CodecID 283902594 ConfigData ASccEAEnHQEBJx6mAScfkAFHHCABRx1AAUce EQFHHwEBdxzwAXcdAAF3HgABdx9AAYccIAGH HRABhx6BAYcfAQGXHPABlx0AAZceAQGXH0AB pxzwAacdAAGnHgEBpx9AAdcc8AG3HQABtx4B AbcfQAHXHPUB1x0AAdceBQHXH0AB5xzwAecd AAHnHgEB5x9AAhccQAIXHXACFx4hAhcfAQFH DAI= FuncGroup 1 LayoutID 76 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902594 Comment Custom ALC282 for Asus x200la ConfigData ASccEAEnHQABJx6BAScfAAFHHCABRx0BAUce EAFHH5kBdxzwAXcdAAF3HgABdx9AAYcc8AGH HQABhx4AAYcfQAGXHDABlx0BAZcepgGXH5kB pxzwAacdAAGnHgABpx9AAbcc8AG3HQABtx4A AbcfQAHXHPAB1x0AAdceAAHXH0AB5xzwAecd AAHnHgAB5x9AAhccUAIXHUACFx4rAhcfAAFH DAICFwwC FuncGroup 1 LayoutID 86 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902594 Comment No input boost ALC282 Acer Aspire on IvyBridge by Andrey1970 ConfigData ASccMAEnHQABJx6gAScfkAFHHBABRx0AAUce FwFHH5ABdxzwAXcdAAF3HgABdx9AAYcc8AGH HQABhx4AAYcfQAGXHPABlx0AAZceAAGXH0AB pxzwAacdAAGnHgABpx9AAbcc8AG3HQABtx4A AbcfQAHnHPAB5x0AAeceAAHnH0ACFxwgAhcd EAIXHiECFx8B FuncGroup 1 LayoutID 127 AFGLowPowerState AwAAAA== Codec Toleda NUC/BRIX patch ALC283 CodecID 283902595 ConfigData AScc8AEnHQABJx4AAScfQAFHHPABRx0AAUce AAFHH0ABdxzwAXcdAAF3HgABdx9AAYcc8AGH HQABhx4AAYcfQAGXHGABlx0wAZceiwGXHwEB pxzwAacdAAGnHgABpx9AAbcc8AG3HQABtx4A AbcfQAHXHPAB1x0AAdceAAHXH0AB5xzwAecd AAHnHgAB5x9AAhcccAIXHUACFx4rAhcfAQGX DAICFwwC FuncGroup 1 LayoutID 1 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC283 CodecID 283902595 ConfigData ASccEAEnHQEBJx6gAScfkAFHHCABRx0BAUce FwFHH5ABlxwwAZcdAAGXHosBlx8AAhccQAIX HRACFx4rAhcfAQFHDAICFwwC FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom by Slbomber ALC283 (V3-371) CodecID 283902595 ConfigData ASccEAEnHQEBJx6gAScfkAFHHEABRx0BAUce FwFHH5ABdxzwAXcdAAF3HgABdx9AAYcc8AGH HQABhx4AAYcfQAGXHPABlx0AAZceAAGXH0AB pxzwAacdAAGnHgABpx8AAbcc8AG3HQABtx4A AbcfQAHXHPAB1x0AAdceAAHXH0AB5xzwAecd AAHnHgAB5x9AAhccUAIXHRACFx4hAhcfAwFH DAICFwwC FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Realtek ALC283 for ThinkCentre M93z 10AF ALC283 by giesteira CodecID 283902595 ConfigData AbccQAG3HQABtx4XAbcfmQEnHBABJx0AASce pgEnH5kBlxwgAZcdkAGXHoEBlx8BAaccMAGn HZABpx6BAacfAQIXHAACFx1AAhceIQIXHwEB RwwC FuncGroup 1 LayoutID 44 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ASRock DeskMini 110(H110M-STX) ALC283 by licheedev CodecID 283902595 ConfigData ASccgAEnHQABJx4AAScfQAFHHEABRx0BAUce EwFHH5ABpxwgAacdkAGnHoEBpx8BAdccYAHX HZAB1x5VAdcfQAIXHFACFx0QAhceIQIXHwEB RwwCAhcMAg== FuncGroup 1 LayoutID 66 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC284 CodecID 283902596 ConfigData ASccEAEnHQABJx6gAScfkAE3HCABNx0AATce AAE3H0ABRxwwAUcdAAFHHhcBRx+QAVccQAFX HRABVx4hAVcfAAGHHFABhx0QAYcegQGHHwIB 1xxgAdcdgAHXHmYB1x9AAUcMAg== FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Rover Realtek ALC285 for X1C6th CodecID 283902597 ConfigData ASccEAEnHQEBJx6mAScfkAFHHDABRx0BAUce FwFHH5ABlxwAAZcdEAGXHosBlx8BAhccIAIX HRACFx4rAhcfAQHXHGAB1x2AAdceZgHXH0AB RwwC FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902598 CodecName Mirone - Realtek ALC286 ConfigData ASccEAEnHQABJx6mAScfsAFHHCABRx0AAUce FwFHH5ABhxwwAYcdEAGHHosBhx8EAhccQAIX HRACFx4rAhcfBAFHDAI= FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC288 CodecID 283902600 ConfigData ASccEAEnHQABJx6gAScfkAE3HCABNx0AATce AAE3H0ABRxwwAUcdAAFHHhcBRx+QAYccQAGH HRABhx6BAYcfAgHXHFAB1x2AAdceZQHXH0AC FxxgAhcdEAIXHiECFx8BAUcMAg== FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC288 for Dell XPS 9343 CodecID 283902600 ConfigData ASccIAEnHQABJx6gAScfkAFHHDABRx0AAUce FwFHH5ABNxxAATcdEAE3HoEBNx8AAhccUAIX HRACFx4hAhcfAAFHDAI= FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC290 CodecID 283902608 ConfigData AUccEAFHHQABRx4XAUcfkAFXHCABVx0QAVce KwFXHwIBlxwwAZcdAAGXHqABlx+QAaccQAGn HRABpx6LAacfAAFHDAI= FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902608 Comment macpeetALC ALC290 aka ALC3241 ConfigData AaccIAGnHRABpx6BAacfAAEnHDABJx0AASce owEnH5ABRxxAAUcdAAFHHhcBRx+QAVccUAFX HRABVx4hAVcfAAFHDAI= FuncGroup 1 LayoutID 4 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902608 Comment vusun123 - ALC 290 for Dell Vostro 5480 ConfigData ASccMAEnHQABJx6gAScfkAFHHBABRx0AAUce FwFHH5ABRwwCAVccIAFXHRABVx4hAVcfAAGn HEABpx0QAacegQGnHwA= FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom ALC292 CodecID 283902610 ConfigData ASccEAEnHQABJx6gAScfmQFHHCABRx0AAUce FwFHH5kBVxwwAVcdQAFXHiEBVx8BAZccUAGX HZABlx6BAZcfAQFHDAI= FuncGroup 1 LayoutID 12 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283902610 Comment vanquybn - ALC 292 for Dell M4800 ConfigData AUccEAFHHQABRx4XAUcfkAGHHCABhx2QAYce gQGHHwEBJxwwAScdAAEnHqYBJx+QAVccQAFX HUABVx4hAVcfAQ== FuncGroup 1 LayoutID 18 AFGLowPowerState AwAAAA== CodecID 283902610 Comment vusun123 - ALC 292 for Lenovo T440 ConfigData ASccMAEnHQABJx6gAScfkAFHHEABRx0AAUce FwFHH5ABRwwCAVccUAFXHRABVx4hAVcfAAGn HCABpx0QAacegQGnHwA= FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Andres ALC293 Dell E7450 CodecID 283902611 ConfigData AScc8AEnHQABJx4AAScfQAE3HBABNx0BATce oAE3H5ABRxwwAUcdAQFHHhcBRx+QAUcMAgFX HEABVx1AAVceKwFXHwEBVwwCAWccUAFnHUAB Zx4BAWcfAQFnDAIBhxzwAYcdAAGHHgABhx9A AZcc8AGXHQABlx4AAZcfQAGnHCABpx0QAace iwGnHwEBtxzwAbcdAAG3HgABtx9AAdcc8AHX HQAB1x4AAdcfQAHnHPAB5x0AAeceAAHnH0AC BQBFAgTUKQAXIAAAFyFyABciawAXIxA= FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec tluck - ALC 293 for Lenovo T460/T560 - extra LineOut on Dock CodecID 283902611 ConfigData ASccEAEnHQEBJx6mAScfkAE3HPABNx0AATce AAE3H0ABRxwgAUcdAQFHHhcBRx+QAVccMAFX HRABVx4hAVcfAwFnHPABZx0AAWceAAFnH0AB hxzwAYcdAAGHHgABhx9AAZcc8AGXHQABlx4A AZcfQAGnHEABpx0QAacegQGnHwMBtxzwAbcd AAG3HgABtx9AAdcc8AHXHQAB1x4AAdcfQAHn HPAB5x0AAeceAAHnH0ABRwwCAVcMAg== FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec tluck - ALC 293 for Lenovo T460/T560 CodecID 283902611 ConfigData ASccEAEnHQEBJx6mAScfkAE3HPABNx0AATce AAE3H0ABRxwgAUcdAQFHHhcBRx+QAVccMAFX HRABVx4hAVcfAwFnHPABZx0AAWceAAFnH0AB hxzwAYcdAAGHHgABhx9AAZcc8AGXHQABlx4A AZcfQAGnHEABpx0QAacegQGnHwMBtxzwAbcd AAG3HgABtx9AAdcc8AHXHQAB1x4AAdcfQAHn HPAB5x0AAeceAAHnH0ABRwwCAVcMAg== FuncGroup 1 LayoutID 29 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Rover - Realtek ALC294 for Asus FL8000U CodecID 283902612 ConfigData AbccEAG3HQEBtx6nAbcfkAFHHCABRx0BAUce FwFHH5ACFxwwAhcdEAIXHiECFx8BAUcMAgG3 DAICFwwC FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec MacPeet - Realtek ALC294 for Lenovo M710Q CodecID 283902612 ConfigData AhccIAIXHRACFx4hAhcfAAGXHDABlx0QAZce gQGXHwABpxxAAacdkAGnHoEBpx8AAUccUAFH HQABRx4XAUcfkAFHDAI= FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC294 CodecID 283902612 ConfigData AXccEAF3HQABdx4XAXcfkAEnHCABJx0AASce oAEnH5ACFxwwAhcdEAIXHiECFx8A FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec Damon - Realtek ALC 295 for HP Envy x360 15-bp107tx CodecID 283902613 ConfigData ASccMAEnHQEBJx6mAScfkAE3HPABNx0AATce AAE3H0ABRxzwAUcdAAFHHgABRx9AAUcMAgFn HPABZx0AAWceAAFnH0ABdxwQAXcdAQF3HhcB dx+QAYcc8AGHHQABhx4BAYcfQAGXHEABlx0Q AZcegQGXHwIBpxzwAacdAAGnHgABpx9AAbcc 8AG3HQABtx4AAbcfQAG3DAIB1xzwAdcdAAHX HgAB1x9AAecc8AHnHQAB5x4BAecfQAIXHCAC Fx0QAhceIQIXHwICFwwC FuncGroup 1 LayoutID 1 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC295/ALC3254 CodecID 283902613 ConfigData ASccEAEnHQABJx6mAScfmQF3HCABdx0AAXce FwF3H5kBlxwwAZcdEAGXHoEBlx8CAhccQAIX HRACFx4hAhcfAgF3DAIBRwwCAhcMAg== FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec DalianSky - Realtek ALC295/ALC3254 Dell7570 CodecID 283902613 ConfigData ASccIAEnHQEBJx6mAScfkAE3HPABNx0AATce AAE3H0ABRxxAAUcdAQFHHhcBRx+QAUcMAgFn HPABZx0AAWceAAFnH0ABdxzwAXcdAAF3HgAB dx9AAYcc8AGHHQABhx4AAYcfQAGXHBABlx0Q AZcegQGXHwIBpxzwAacdAAGnHgABpx9AAbcc 8AG3HQABtx4AAbcfQAHXHPAB1x0AAdceAAHX H0AB5xzwAecdAAHnHgAB5x9AAhccMAIXHRAC Fx4hAhcfAgIXDAI= FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC295 v2 Asus UX430UA CodecID 283902613 ConfigData AXccEAF3HQABdx4XAXcfkAEnHCABJx0AASce oAEnH5ACFxwwAhcdEAIXHiECFx8AAZccQAGX HRABlx6BAZcfAAIXDAI= FuncGroup 1 LayoutID 14 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC295/ALC3254 CodecID 283902613 ConfigData AUccEAFHHQABRx4XAUcfkAEnHCABJx0AASce oAEnH5ACFxwwAhcdEAIXHiECFx8AAZccQAGX HRABlx6BAZcfAA== FuncGroup 1 LayoutID 15 AFGLowPowerState AwAAAA== Codec vusun123 - ALC 295 for Skylake HP Pavilion CodecID 283902613 ConfigData ASccMAEnHQABJx6gAScfuQFHHFABRx0AAUce FwFHH5ABRwwCAZccQAGXHRABlx6BAZcfAAIX HCACFx0QAhceIQIXHwA= FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC298 SP4 - ComboJack CodecID 283902616 ConfigData ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce FwFHH5ABhxwwAYcdEAGHHoEBhx8CAhccQAIX HRACFx4hAhcfAgFHDAICFwwC FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Rockjesus - Realtek ALC298 for Alienware 17 ALC3266 CodecID 283902616 ConfigData ASccQAEnHQEBJx6mAScftwF3HBABdx0BAXce FwF3H5ABpxwwAacdEAGnHqEBpx8DAhccIAIX HRACFx4hAhcfAw== FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC298 CodecID 283902616 ConfigData AXccEAF3HQABdx4XAXcfkAEnHCABJx0AASce oAEnH5ACFxwwAhcdEAIXHiECFx8CAYccQAGH HRABhx6BAYcfAgFHDAICFwwC FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec vusun123 - Realtek ALC298 for Dell XPS 9x50 CodecID 283902616 ConfigData ASccMAEnHQABJx6gAScfkAF3HEABdx0AAXce FwF3H5ABdwwCAhccIAIXHRACFx4hAhcfAA== FuncGroup 1 LayoutID 28 AFGLowPowerState AwAAAA== Codec vusun123 - Realtek ALC298 for Lenovo X270 CodecID 283902616 ConfigData AEcc8ABHHQAARx4AAEcfAABXHPAAVx0AAFce AABXHwAAdxzwAHcdAAB3HgAAdx8AAOcc8ADn HQAA5x4AAOcfAAD3HPAA9x0AAPceAAD3HwAB BxzwAQcdAAEHHgABBx8AASccQAEnHQEBJx6g AScfkAE3HPABNx0AATceAAE3HwABRxwQAUcd AQFHHhcBRx+QAUcMAgFXHPABVx0AAVceAAFX HwABZxzwAWcdAAFnHgABZx8AAXcc8AF3HQAB dx4AAXcfAAGHHDABhx0QAYcegQGHHwMBlxzw AZcdAAGXHgABlx8AAacc8AGnHQABpx4AAacf AAG3HPABtx0AAbceAAG3HwABxxzwAccdAAHH HgABxx8AAdcc8AHXHQAB1x4AAdcfAAHnHPAB 5x0AAeceAAHnHwAB9xzwAfcdAAH3HgAB9x8A Agcc8AIHHQACBx4AAgcfAA== FuncGroup 1 LayoutID 29 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Constanta - Realtek ALC298 for Xiaomi Mi Notebook Air 13.3 Fingerprint 2018 CodecID 283902616 ConfigData ASccMAEnHQABJx6gAScfkAF3HEABdx0AAXce FwF3H5ABdwwCAYcccAGHHRABhx6BAYcfAAIX HCACFx0QAhceIQIXHwA= FuncGroup 1 LayoutID 30 WakeConfigData AXcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Daliansky - Realtek ALC298 ThinkPad T470p CodecID 283902616 ConfigData ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce FwFHH5ABhxwwAYcdEAGHHoEBhx8CAhccQAIX HRACFx4hAhcfAgFHDAICFwwC FuncGroup 1 LayoutID 47 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec lgs3137 - Realtek ALC298 MECHREVO S1 CodecID 283902616 ConfigData ASccMAEnHQEBJx6mAScfkAFHHEABRx0BAUce FwFHH5ABhxwQAYcdEAGHHqsBhx8CAhccIAIX HRACFx4rAhcfAgFHDAICFwwC FuncGroup 1 LayoutID 66 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Custom - Realtek ALC298 for Dell XPS 9560 by KNNSpeed CodecID 283902616 ConfigData ASccEAEnHQEBJx6mAScfkAF3HCABdx0BAXce FwF3H5ABhxwwAYcdEAGHHqsBhx8DAaccQAGn HRABpx6LAacfAwIXHFACFx0QAhceKwIXHwMB RwwCAXcMAgGnDAICFwwC FuncGroup 1 LayoutID 72 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Daliansky - Realtek ALC298 XiaoMi Pro CodecID 283902616 ConfigData ASccIAEnHQABJx6gAScfkAE3HPABNx0AATce AAE3H0ABRxzwAUcdAAFHHgABRx9AAXccQAF3 HQABdx4XAXcfkAGHHBABhx0QAYcegQGHHwIB lxzwAZcdAAGXHgABlx9AAacc8AGnHQABpx4A AacfQAHXHPAB1x0AAdceAAHXH0AB5xzwAecd AAHnHgAB5x9AAfcc8AH3HQAB9x4AAfcfQAIX HDACFx0QAhceIQIXHwIBdwwCAhcMAg== FuncGroup 1 LayoutID 99 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC662 CodecID 283903586 ConfigData AUccEAFHHUABRx4RAUcfkAGHHCABhx2QAYce oAGHH5AB5xwwAecdYQHnHksB5x8BAaccQAGn HTABpx6BAacfAQG3HFABtx1AAbceIQG3HwEB lxxgAZcdkAGXHoEBlx8C FuncGroup 1 LayoutID 5 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC662 CodecID 283903586 ConfigData AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd YAHnHkUB5x8B FuncGroup 1 LayoutID 7 AFGLowPowerState AwAAAA== Codec Custom ALC662 by Irving23 for Lenovo ThinkCentre M8400t-N000 CodecID 283903586 ConfigData IUccECFHHUAhRx4RIUcfASGHHCAhhx2QIYce oCGHH5AhlxxgIZcdkCGXHqEhlx8CIaccQCGn HTAhpx6BIacfASG3HFAhtx1AIbceISG3HwIh 5xwwIecdYSHnHksh5x8B FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec Custom ALC662 by stich86 for Lenovo ThinkCentre M800 CodecID 283903586 ConfigData IUccECFHHUAhRx4RIUcfASGHHCAhhx2QIYce oCGHH5AhlxxgIZcdkCGXHqEhlx8CIaccQCGn HTAhpx6BIacfASG3HFAhtx1AIbceISG3HwIh 5xwwIecdYSHnHksh5x8B FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec Custom ALC662 by Vandroiy for Asus X66Ic CodecID 283903586 ConfigData AUccMAFHHQEBRx4QAUcfkAG3HEABtx0AAbce IQG3HwEBlxwQAZcdAQGXHqABlx+QAYccIAGH HQABhx6BAYcfAQFXHPABVx0AAVceAAFXH0AB ZxzwAWcdAAFnHgABZx9AAacc8AGnHQABpx4A AacfQAHHHPABxx0AAcceAAHHH0AB1xzwAdcd AAHXHgAB1x9AAecc8AHnHQAB5x4AAecfQAFH DAI= FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec MacPeet - ALC662 for Acer Aspire A7600U All in One CodecID 283903586 ConfigData AbccEAG3HUABtx4hAbcfAAG3DAIBRxwgAUcd AAFHHhcBRx+QAUcMAgGHHDABhx2QAYcegQGH HwABJxxAAScdAAEnHqYBJx+QAeccYAHnHWAB 5x5LAecfAQ== FuncGroup 1 LayoutID 15 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec phucnguyen.2411 - ALC662v3 for Lenovo ThinkCentre M92P SFF CodecID 283903586 ConfigData AZccEAGXHZEBlx6gAZcfkQFHHCABRx1AAUce IQFHHwEBVxwwAVcdQQFXHhEBVx8BAYccQAGH HZABhx6BAYcfAQG3HFABtx1AAbceIQG3HwIB 5xxgAecdYAHnHksB5x8B FuncGroup 1 LayoutID 16 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC663 CodecID 283903587 ConfigData ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce EwFHH5ACFxwwAhcdEAIXHiECFx8CAUcMAg== FuncGroup 1 LayoutID 3 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC663_V2 CodecID 283903587 ConfigData AUccEAFHHQABRx4TAUcfkAGHHCABhx0QAYce gQGHHwIBlxwwAZcdAAGXHqABlx+QAdccQAHX HYAB1x4FAdcfQAHnHFAB5x0QAeceRQHnHwAC FxxgAhcdEAIXHiECFx8BAUcMAg== FuncGroup 1 LayoutID 4 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC663 CodecID 283903587 Comment Custom ALC663 for Asus N56/76 by m-dudarev ConfigData AZccEAGXHQABlx6gAZcfkAGHHCABhx0QAYce gQGHHwIBRxwwAUcdAAFHHhABRx+QAUcMAgIX HEACFx0QAhceIQIXHwIBFxzwARcdAAEXHgAB Fx9AAecc8AHnHQAB5x4AAecfQA== FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC663 CodecID 283903587 Comment Custom by alex1960 for ASUS N71J ConfigData AUccAAFHHQEBRx4TAUcfmQA3HBAANx0AADce VgA3HxgCFxwgAhcdQAIXHiECFx8BAbccMAG3 HUABtx4hAbcfAQHnHEAB5x0BAeceQwHnH5kB hxxQAYcdCQGHHqMBhx+ZAZccYAGXHZwBlx6B AZcfAQF3HPABdx0BAXceEwF3H5k= FuncGroup 1 LayoutID 99 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC665 CodecID 283903589 ConfigData ASccEAEnHQEBJx6gAScfmQGnHCABpx0QAace gQGnH5MBVxxAAVcdAQFXHhMBVx+ZAZccUAGX HRABlx4hAZcfAwG3HGABtx0QAbceIQG3HwMB 5xxwAecdEAHnHkUB5x8D FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC665 CodecID 283903589 ConfigData ASccUAEnHQABJx6gAScfkAFXHBABVx0AAVce EwFXH5ABVwwCAZccIAGXHRABlx4hAZcfAAGn HEABpx0QAacegQGnHwABtxxgAbcdEAG3HiEB tx8AAdcc8AHXHQAB1x6DAdcfUA== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== CodecID 283903592 Comment ALC668 Mirone Laptop Patch ConfigData ABJxwQAScdAAEnHqABJx+QAUccIAFHHQABRx 4XAUcfkAFXHDABVx0QAVceIQFXHwEBZxxAAW cdAAFnHgABZx9AAbccUAG3HRABtx6BAbcfAg HXHGAB1x0AAdcewAHXH0ABRwwA== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== CodecID 283903592 Comment Custom ALC668 by lazzy for laptop ASUS G551JM ConfigData ASccMAEnHQABJx6gAScfkAFHHBABRx0AAUce FwFHH5ABVxwgAVcdEAFXHiEBVx8AAbccQAG3 HRABtx6BAbcfAAFHDAI= FuncGroup 1 LayoutID 20 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283903592 Comment ALC668 syscl Laptop Patch (DELL Precision M3800) ConfigData ASccAQEnHQEBJx6gAScfkAFHHAIBRx0BAUce FwFHH5ABRwwCAVccAwFXHRABVx4rAVcfAwFX DAIBZxzwAWcdAAFnHgABZx9AAYcc8AGHHQAB hx4AAYcfQAGXHPABlx0AAZceAAGXH0ABpxzw AacdAAGnHgABpx9AAbccBAG3HRABtx6LAbcf AwHXHPAB1x0AAdceAAHXH0AB5xzwAecdAAHn HgAB5x9AAfcc8AH3HQAB9x4AAfcfQAIFAAEC BL6+AgUAAgIEqqoCBQADAgQAAAIFAAQCBAGA AgUABgIEAAACBQAHAgQPgAIFAAgCBAAxAgUA CgIEAGACBQALAgQAAAIFAAwCBHz3AgUADQIE EIACBQAOAgR/fwIFAA8CBMzMAgUAEAIE3cwC BQARAgQAAQIFABMCBAAAAgUAFAIEKqACBQAX AgSpQAIFABkCBAAAAgUAGgIEAAACBQAbAgQA AAIFABwCBAAAAgUAHQIEAAACBQAeAgR0GAIF AB8CBAgEAgUAIAIEQgACBQAhAgQEaAIFACIC BIzMAgUAIwIEAlACBQAkAgR0GAIFACcCBAAA AgUAKAIEjMwCBQAqAgT/AAIFACsCBIAAAgUA pwIE/wACBQCoAgSAAAIFAKoCBC4XAgUAqwIE oMACBQCsAgQAAAIFAK0CBAAAAgUArgIEKsYC BQCvAgSkgAIFALACBAAAAgUAsQIEAAACBQCy AgQAAAIFALMCBAAAAgUAtAIEAAACBQC1AgQQ QAIFALYCBNaXAgUAtwIEkCsCBQC4AgTWlwIF ALkCBJArAgUAugIEuLoCBQC7AgSqqwIFALwC BKqvAgUAvQIEaqoCBQC+AgQcAgIFAMACBAD/ AgUAwQIED6Y= FuncGroup 1 LayoutID 27 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283903592 Comment ALC668 Mirone Laptop Patch (Asus N750Jk) ConfigData ABJxwQAScdAAEnHqABJx+QAUccIAFHHQABRx 4XAUcfkAFXHDABVx0QAVceIQFXHwEBZxxAAW cdAAFnHgABZx9AAbccUAG3HRABtx6BAbcfAg HXHGAB1x0AAdcewAHXH0ABRwwA== FuncGroup 1 LayoutID 28 AFGLowPowerState AwAAAA== CodecID 283903592 Comment ALC668 Custom (Asus N750JV) ConfigData ASccAAEnHQEBJx6mAScfkAFHHBABRx0BAUce FwFHH5ABVxwfAVcdEAFXHiEBVx8DAWcc8AFn HQABZx4AAWcfQAGHHPABhx0AAYceAAGHH0AB lxzwAZcdAAGXHgABlx9AAacc8AGnHQABpx4A AacfQAG3HDABtx0QAbcegQG3HwMB1xzwAdcd AAHXHgAB1x9AAecc8AHnHQAB5x4AAecfQAH3 HPAB9x0AAfceAAH3H0ABRwwCAVcMAg== FuncGroup 1 LayoutID 29 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283903600 Comment Custom ALC670 by Alex Auditore ConfigData AbccQAG3HRABtx4rAbcfAQFXHDABVx0BAVce EwFXH5ABJxwQAScdAQEnHqABJx+QAaccUAGn HTEBpx6BAacfAQGXHCABlx2QAZcegQGXHwEB 5xxgAecdEQHnHksB5x8BARcc8AEXHQABFx4A ARcfQAE3HPABNx0AATceAAE3H0ABRxzwAUcd AAFHHgABRx9AAWcc8AFnHQABZx4AAWcfQAF3 HPABdx0AAXceAAF3H0ABhxzwAYcdAAGHHgAB hx9AAdcc8AHXHQAB1x4AAdcfQAIXHPACFx0A AhceAAIXH0A= FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== CodecID 283903601 Comment MacPeet - ALC671 for Fujitsu-Siemens D3433-S (Q170 chip) ConfigData AYccIAGHHTABhx6BAYcfAQIXHDACFx1AAhce AQIXHwECFwwC FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC882 CodecID 283904130 ConfigData AUccEAFHHUABRx4RAUcfAQGHHFABhx2QAYce oAGHH5ABlxxgAZcdkAGXHoEBlx8CAacccAGn HTABpx6BAacfAQG3HIABtx1AAbceIQG3HwEB 5xyQAecd4AHnHkUB5x8B FuncGroup 1 LayoutID 5 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC882 CodecID 283904130 ConfigData AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd YAHnHkUB5x8B FuncGroup 1 LayoutID 7 AFGLowPowerState AwAAAA== Codec ALC883 CodecID 283904131 Comment Mirone - Realtek ALC883 by Andrey1970 ConfigData AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd YAHnHkUB5x8B FuncGroup 1 LayoutID 7 AFGLowPowerState AwAAAA== CodecID 283904133 Comment toleda ALC885 ConfigData IUccECFHHUAhRx4RIUcfASFXHCAhVx0QIVce ASFXHwEhZxwwIWcdYCFnHgEhZx8BIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx2QIYceoCGHH5Ah lxxgIZcdkCGXHoEhlx8CIaccUCGnHTAhpx6B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfccoCH3HQEh9x7LIfcfASEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 1 AFGLowPowerState AwAAAA== Codec ALC885 CodecID 283904133 Comment Custom ALC885 by alex1960 ConfigData IUccECFHHUAhRx4RIUcfASFXHCAhVx0QIVce ASFXHwEhZxwwIWcdYCFnHgEhZx8BIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx2QIYceoCGHH5Ah lxxgIZcdkCGXHoEhlx8CIaccUCGnHTAhpx6B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfccoCH3HQEh9x7LIfcfASEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec ALC885 CodecID 283904133 Comment MacPeet - ALC885 for GA-G33M-DS2R ConfigData IUccECFHHUAhRx4RIUcfkSFXHCAhVx0QIVce ASFXHwEhZxwwIWcdYCFnHgEhZx8BIYccQCGH HZAhhx6gIYcfkCGnHFAhpx0wIacegSGnHwEh lxxgIZcdkCGXHoEhlx8CIbcccCG3HUAhtx4h IbcfAiHnHJAh5x1hIeceSyHnHwEh9xygIfcd ASH3Hssh9x8B FuncGroup 1 LayoutID 15 AFGLowPowerState AwAAAA== CodecID 283904135 Comment Toleda ALC887 ConfigData IUccECFHHUAhRx4RIUcfkCFXHCAhVx0QIVce ASFXHwEhZxwwIWcdYCFnHgEhZx8BIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx2QIYceoCGHH5Ah lxxgIZcdkCGXHoEhlx8CIaccUCGnHTAhpx6B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfcc8CH3HQAh9x4AIfcfQCEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 1 AFGLowPowerState AwAAAA== CodecID 283904135 Comment Toleda ALC887 ConfigData IUccECFHHUAhRx4RIUcfkCFXHPAhVx0AIVce ACFXH0AhZxzwIWcdACFnHgAhZx9AIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx1gIYceASGHHwEh lxxgIZcdkCGXHqAhlx+QIaccUCGnHRAhpx4B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfcc8CH3HQAh9x4AIfcfQCEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 2 AFGLowPowerState AwAAAA== CodecID 283904135 Comment Toleda ALC887 ConfigData IUccECFHHUAhRx4RIUcfkCFXHCAhVx0QIVce ASFXHwEhZxzwIWcdACFnHgAhZx9AIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx2QIYceoCGHH5Ah lxxgIZcdkCGXHoEhlx8CIaccUCGnHTAhpx6B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfcc8CH3HQAh9x4AIfcfQCEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC887-VD CodecID 283904135 ConfigData AUccEAFHHUABRx4RAUcfAQGHHFABhx2QAYce oAGHH5ABlxxgAZcdkAGXHoEBlx8CAacccAGn HTABpx6BAacfAQG3HIABtx1AAbceIQG3HwIB 5xyQAecdYAHnHkUB5x8BAUcMAg== FuncGroup 1 LayoutID 5 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC887-VD CodecID 283904135 ConfigData AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd YAHnHkUB5x8BAUcMAg== FuncGroup 1 LayoutID 7 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC887-VD CodecID 283904135 ConfigData AUccEAFHHUABRx4RAUcfkQFHDAIBtxwgAbcd QAG3HiEBtx8CAbcMAgGHHDABhx2QAYceoQGH H5EBlxxAAZcdkQGXHoEBlx+SAUcMAg== FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC887-VD CodecID 283904135 ConfigData AbccAAG3HUABtx4hAbcfAQGHHBABhx2QAYce oAGHH5EBlxwgAZcdkAGXHoEBlx8BAUccMAFH HUABRx4RAUcfkQGnHEABpx0wAacegQGnHwEB 5xxQAecdYQHnHksB5x8BAUcMAg== FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC887-VD CodecID 283904135 ConfigData IUccECFHHUAhRx4RIUcfkCFXHCAhVx0QIVce ASFXHwEhhxxAIYcdkCGHHqAhhx+QIaccUCGn HTAhpx6BIacfASGXHGAhlx2QIZcegSGXHwIh txxwIbcdQCG3HiEhtx8CIecckCHnHWEh5x5L IecfAQ== FuncGroup 1 LayoutID 17 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC887-VD CodecID 283904135 ConfigData IUccECFHHUAhRx4RIUcfkSFHDAIhhxxAIYcd YCGHHgEhhx8BIaccUCGnHRAhpx4BIacfASGX HGAhlx2QIZceoSGXH5EhtxxwIbcdQCG3HiEh tx8CIecckCHnHWEh5x5LIecfAQ== FuncGroup 1 LayoutID 18 AFGLowPowerState AwAAAA== Codec Realtek ALC887-VD AD0 for Asus Z97M-PLUS/BR by maiconjs CodecID 283904135 ConfigData AUccAAFHHUABRx4BAUcfAQFnHBABZx1gAWce AQFnHwEBVxwgAVcdEAFXHgEBVx8BAXccMAF3 HSABdx4BAXcfAQG3HEABtx1AAbceIQG3HwIB FxxQARcdAQEXHkYBFx+ZAYccYAGHHZABhx6g AYcfkAGnHHABpx0wAacegQGnHwEBlxyAAZcd kAGXHoEBlx8CAUcMAg== FuncGroup 1 LayoutID 20 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904135 Comment Custom by klblk ALC887 for GA-Q87TN ConfigData IRcc8CEXHQAhFx4AIRcfQCEnHPAhJx0AISce ACEnH0AhRxzwIUcdACFHHgAhRx9AIVcc8CFX HQAhVx4AIVcfQCFnHPAhZx0AIWceACFnH0Ah dxzwIXcdACF3HgAhdx9AIYcccCGHHZAhhx6B IYcfASGXHPAhlx0AIZceACGXH0AhpxwgIacd QCGnHgEhpx8BIbcc8CG3HQAhtx4AIbcfQCHH HPAhxx0AIcceACHHH0Ah1xzwIdcdACHXHgAh 1x9AIecc8CHnHQAh5x4AIecfQCH3HPAh9x0A IfceACH3H0A= FuncGroup 1 LayoutID 33 AFGLowPowerState AwAAAA== Codec Realtek ALC887-VD for Asus B85-ME by maiconjs CodecID 283904135 ConfigData AUccAAFHHUABRx4BAUcfAQG3HBABtx1AAbce IQG3HwIBhxwgAYcdkAGHHqABhx+QAaccMAGn HTABpx6BAacfAQGXHEABlx2QAZcegQGXHwIB RwwC FuncGroup 1 LayoutID 40 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904135 Comment 0th3r ALC887 for PRIME B250-PLUS ConfigData AUccEAFHHUABRx4BAUcfAQG3HCABtx1BAbce IQG3HwIBhxxAAYcdkAGHHoEBhx8BAZccUAGX HZEBlx6BAZcfAg== FuncGroup 1 LayoutID 50 AFGLowPowerState AwAAAA== Codec Custom Realtek ALC887-VD by Constanta CodecID 283904135 ConfigData IUccECFHHUAhRx4RIUcfASGHHFAhhx2QIYce oCGHH5AhlxxgIZcdkCGXHoEhlx8CIacccCGn HTAhpx6BIacfASG3HIAhtx1AIbceISG3HwIh 5xyQIecdYCHnHkUh5x8B FuncGroup 1 LayoutID 99 AFGLowPowerState AwAAAA== CodecID 283904136 Comment toleda ALC888 ConfigData IUccECFHHUAhRx4RIUcfkCFXHCAhVx0QIVce ASFXHwEhZxwwIWcdYCFnHgEhZx8BIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx2QIYceoCGHH5Ah lxxgIZcdkCGXHoEhlx8CIaccUCGnHTAhpx6B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfcc8CH3HQAh9x4AIfcfQCEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 1 AFGLowPowerState AwAAAA== CodecID 283904136 Comment toleda ALC888 ConfigData IUccECFHHUAhRx4RIUcfkCFXHPAhVx0AIVce ACFXH0AhZxzwIWcdACFnHgAhZx9AIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx1gIYceASGHHwEh lxxgIZcdkCGXHqAhlx+QIaccUCGnHRAhpx4B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfcc8CH3HQAh9x4AIfcfQCEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 2 AFGLowPowerState AwAAAA== CodecID 283904136 Comment toleda ALC888 ConfigData IUccECFHHUAhRx4RIUcfkCFXHCAhVx0QIVce ASFXHwEhZxzwIWcdACFnHgAhZx9AIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx2QIYceoCGHH5Ah lxxgIZcdkCGXHoEhlx8CIaccUCGnHTAhpx6B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfcc8CH3HQAh9x4AIfcfQCEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC888 for Laptop CodecID 283904136 ConfigData ASccEAEnHQABJx6gAScfmQFHHCABRx1AAUce IQFHHwEBtxwwAbcdAQG3HhMBtx+ZAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYcegQGHHwEB pxxgAacdMAGnHoEBpx8BAecccAHnHUAB5x5F AecfAQFHDAI= FuncGroup 1 LayoutID 4 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC888 3 ports (Pink, Green, Blue) CodecID 283904136 ConfigData AUccEAFHHUABRx4RAUcfAQGHHFABhx2QAYce oAGHH5ABlxxgAZcdkAGXHoEBlx8CAacccAGn HTABpx6BAacfAQG3HIABtx1AAbceIQG3HwEB 5xyQAecd4AHnHkUB5x8B FuncGroup 1 LayoutID 5 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC888 5/6 ports (Gray, Black, Orange, Pink, Green, Blue) CodecID 283904136 ConfigData AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd YAHnHkUB5x8B FuncGroup 1 LayoutID 7 AFGLowPowerState AwAAAA== Codec ALC888S-VD Version1 for MedionP9614 by MacPeet CodecID 283904136 ConfigData AUccEAFHHRABRx4hAUcfAQFHDAIBhxwwAYcd EAGHHqEBhx8BASccQAEnHQABJx6jAScfkAF3 HFABdx0AAXceEwF3H5ABpxxgAacdEAGnHoEB px8BAecccAHnHRAB5x5FAecfAQ== FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC888 for Acer Aspire 7738G by MacPeet CodecID 283904136 ConfigData AUccEAFHHQABRx4TAUcfkAFHDAIBJxxAAScd AAEnHqMBJx+QAVccUAFXHRABVx4hAVcfAAFX DAIBpxxgAacdMAGnHoEBpx8AAecccAHnHRAB 5x5FAecfAA== FuncGroup 1 LayoutID 27 AFGLowPowerState AwAAAA== Codec ALC888S-VD Version2 for MedionE7216 by MacPeet CodecID 283904136 ConfigData AUccEAFHHQABRx4TAUcfkAFHDAIBdxwgAXcd AAF3HhMBdx+QAeccMAHnHRAB5x5EAecfAAGH HEABhx0QAYceoQGHHwABJxxQAScdAAEnHqMB Jx+QAaccYAGnHRABpx6BAacfAAG3HHABtx0Q AbceIQG3HwA= FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec ALC888S-VD Version3 for MedionP8610 by MacPeet CodecID 283904136 ConfigData AUccEAFHHQABRx4TAUcfkAFHDAIBdxwgAXcd EAF3HhMBdx+QAeccMAHnHRAB5x5FAecfAAGX HEABlx0AAZceowGXH5ABhxxQAYcdEAGHHoEB hx8AAVccYAFXHRABVx4hAVcfAAFXDAI= FuncGroup 1 LayoutID 29 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904137 Comment ALC889, Toleda ConfigData IUccECFHHUAhRx4RIUcfkCFXHCAhVx0QIVce ASFXHwEhZxwwIWcdYCFnHgEhZx8BIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx2QIYceoCGHH5Ah lxxgIZcdkCGXHoEhlx8CIaccUCGnHTAhpx6B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfcc8CH3HQAh9x4AIfcfQCEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 1 AFGLowPowerState AwAAAA== CodecID 283904137 Comment MacPeet ALC889 Medion P4020 D ConfigData AUccEAFHHUABRx4hAUcfAQFHDAIBtxwgAbcd AAG3HhMBtx+QAeccMAHnHWAB5x5EAecfAQGX HFABlx0AAZceowGXH5ABpxxgAacdMAGnHoEB px8B FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904137 Comment alc889, Custom by Sergey_Galan ConfigData IRcc8CEXHQAhFx4AIRcfQCEnHPAhJx0AISce ACEnH0AhRxwwIUcdQSFHHhEhRx8BIVcc8CFX HQAhVx4AIVcfQCFnHPAhZx0AIWceACFnH0Ah dxzwIXcdACF3HgAhdx9AIYccECGHHZEhhx6g IYcfkCGXHCAhlx2QIZcegSGXHwEhpxzwIacd ACGnHgAhpx9AIbccgCG3HUAhtx4hIbcfASHH HPAhxx0AIcceACHHH0Ah1xzwIdcdACHXHgAh 1x9AIecckCHnHSEh5x5LIecfASH3HPAh9x0A IfceACH3H0A= FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec MacPeet - ALC891 for HP Pavilion Power 580-030ng CodecID 283904103 ConfigData AXccIAF3HRABdx4hAXcfAgGHHDABhx2QAYce gQGHHwEBtxxAAbcdMAG3HoEBtx8BAhccYAIX HQACFx4RAhcfAAIXDAI= FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC891 CodecID 283904103 ConfigData AXccEAF3HUABdx4hAXcfAQFnHDABZx0wAWce gQFnHwEBhxxAAYcdkAGHHqEBhx+RAaccYAGn HZABpx6BAacfAgHnHHAB5x0AAeceRgHnH5AC FxyAAhcdQAIXHhECFx8B FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== CodecID 283904146 Comment ALC892, Toleda ConfigData IUccECFHHUAhRx4RIUcfkCFHDAIhVxwgIVcd ECFXHgEhVx8BIWccMCFnHWAhZx4BIWcfASF3 HPAhdx0AIXceACF3H0AhhxxAIYcdkCGHHqAh hx+QIZccYCGXHZAhlx6BIZcfAiGnHFAhpx0w IacegSGnHwEhtxxwIbcdQCG3HiEhtx8CIbcM AiHnHJAh5x1hIeceSyHnHwEh9xzwIfcdACH3 HgAh9x9AIRcc8CEXHQAhFx4AIRcfQA== FuncGroup 1 LayoutID 1 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904146 Comment ALC892, Toleda ConfigData IUccECFHHUAhRx4RIUcfkCFHDAIhVxzwIVcd ACFXHgAhVx9AIWcc8CFnHQAhZx4AIWcfQCF3 HPAhdx0AIXceACF3H0AhhxxAIYcdYCGHHgEh hx8BIZccYCGXHZAhlx6gIZcfkCGnHFAhpx0Q IaceASGnHwEhtxxwIbcdQCG3HiEhtx8CIbcM AiHnHJAh5x1hIeceSyHnHwEh9xzwIfcdACH3 HgAh9x9AIRcc8CEXHQAhFx4AIRcfQA== FuncGroup 1 LayoutID 2 AFGLowPowerState AwAAAA== CodecID 283904146 Comment ALC892, Toleda ConfigData IUccECFHHUAhRx4RIUcfkCFXHCAhVx0QIVce ASFXHwEhZxzwIWcdACFnHgAhZx9AIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx2QIYceoCGHH5Ah lxxgIZcdkCGXHoEhlx8CIaccUCGnHTAhpx6B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfcc8CH3HQAh9x4AIfcfQCEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC892 for Laptop CodecID 283904146 ConfigData ASccEAEnHZABJx6gAScfmQFHHCABRx1AAUce IQFHHwEBdxwwAXcdEAF3HgEBdx8BAYccQAGH HZABhx6BAYcfAQGnHFABpx0wAacegQGnHwEB txxgAbcdQAG3HhMBtx+ZAecccAHnHWAB5x5F AecfAQG3DAI= FuncGroup 1 LayoutID 4 AFGLowPowerState AwAAAA== CodecID 283904146 Comment ALC892, Mirone ConfigData AUccEAFHHUABRx4RAUcfAQGHHFABhx2QAYce oAGHH5ABlxxgAZcdkAGXHoEBlx8CAacccAGn HTABpx6BAacfAQG3HIABtx1AAbceIQG3HwEB 5xyQAecd4AHnHkUB5x8B FuncGroup 1 LayoutID 5 AFGLowPowerState AwAAAA== CodecID 283904146 Comment ALC892, Mirone ConfigData AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd YAHnHkUB5x8B FuncGroup 1 LayoutID 7 AFGLowPowerState AwAAAA== CodecID 283904146 Comment MSI GP70/CR70 by Slava77 ConfigData AbceEQGXHqABlx+RAYcegQFHDAI= FuncGroup 1 LayoutID 12 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904146 Comment MacPeet - alc892 for MSi Z97S SLI Krait Edition ConfigData AUccEAFHHUABRx4RAUcfkQG3HCABRwwCAbcd QAG3HiEBtx8CAbcMAgGHHDABhx2QAYceoQGH H5EBVxxQAVcdEAFXHgEBVx8BAWccYAFnHWAB Zx4BAWcfAQF3HHABdx0gAXceAQF3HwEBlxyA AZcdkAGXHoEBlx8CAacckAGnHTABpx6BAacf AQ== FuncGroup 1 LayoutID 15 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904146 Comment ALC892 for Clevo P751DMG by Cryse Hillmes ConfigData ASccEAEnHQEBJx6mAScfkAFHHEABRx0BAUce FwFHH5ABdxxgAXcdEAF3HgEBdx8BAYccgAGH HRABhx6BAYcfAQGnHCABpx0QAacegQGnHwEB txxQAbcdEAG3HiEBtx8BAecccAHnHRAB5x5F AecfAQFHDAI= FuncGroup 1 LayoutID 28 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904146 Comment ALC892 for Clevo P65xSE/SA by Derek Zhu ConfigData ASccEAEnHZEBJx6mAScfkAGHHCABhx1gAYce gQGHHwEBRxwwAUcdAQFHHhcBRx+QAbccQAG3 HTABtx4hAbcfAQF3HFABdx1AAXceAQF3HwEB 5xxgAecdYQHnHkUB5x8BALcccAC3HREAtx4W ALcfkAFXHPABVx0AAVceAAFXHwQBZxzwAWcd AAFnHgABZx8EAZcc8AGXHQABlx4AAZcfBAGn HPABpx0AAaceAAGnHwQBxxzwAccdAAHHHgAB xx8EAdcc8AHXHQAB1x4AAdcfBAH3HPAB9x0A AfceAAH3HwQBRwwCAbcMAg== FuncGroup 1 LayoutID 31 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904146 Comment Custom ALC892 for GA-Z87-HD3 by BIM167 ConfigData IRccUCEXHXEhFx5EIRcfASEnHPAhJx0AISce ACEnH0AhRxwQIUcdQCFHHhEhRx+QIVccICFX HRAhVx4BIVcfASFnHDAhZx1gIWceASFnHwEh dxzwIXcdACF3HgAhdx9AIYccYCGHHZAhhx6g IYcfkCGXHIAhlx2QIZcegSGXHwIhpxxwIacd MCGnHoEhpx8BIbccQCG3HUAhtx4hIbcfAiHH HPAhxx0AIcceACHHH0Ah5xzwIecdACHnHgAh 5x9AIfcckCH3HXEh9x7EIfcfAQ== FuncGroup 1 LayoutID 92 AFGLowPowerState AwAAAA== CodecID 283904146 Comment ALC892 with working SPDIF ConfigData AUccEAFHHUABRx4RAUcfAQGHHFABhx2QAYce oAGHH5ABlxxgAZcdkAGXHoEBlx8CAacccAGn HTABpx6BAacfAQG3HIABtx1AAbceIQG3HwEB 5xyQAecd4AHnHkUB5x8B FuncGroup 1 LayoutID 98 AFGLowPowerState AwAAAA== CodecID 283904146 Comment Custom ALC892 DNS P150EM by Constanta ConfigData AUccEAFHHUABRx4RAUcfAQGHHHABhx2QAYce gQGHHwEBlxxgAZcdAQGXHqABlx+QAaccgAGn HTABpx6BAacfAQG3HCABtx1AAbceIQG3HwEB 5xyQAecd4AHnHkUB5x8B FuncGroup 1 LayoutID 99 AFGLowPowerState AwAAAA== CodecID 283904153 Comment ALC898, Toleda ConfigData IUccECFHHUAhRx4RIUcfkCFHDAIhVxwgIVcd ECFXHgEhVx8BIWccMCFnHWAhZx4BIWcfASF3 HPAhdx0AIXceACF3H0AhhxxAIYcdkCGHHqAh hx+QIZccYCGXHZAhlx6BIZcfAiGnHFAhpx0w IacegSGnHwEhtxxwIbcdQCG3HiEhtx8CIbcM AiHnHJAh5x1hIeceSyHnHwEh9xzwIfcdACH3 HgAh9x9AIRcc8CEXHQAhFx4AIRcfQA== FuncGroup 1 LayoutID 1 AFGLowPowerState AwAAAA== CodecID 283904153 Comment ALC898, Toleda ConfigData IUccECFHHUAhRx4RIUcfkCFHDAIhVxzwIVcd ACFXHgAhVx9AIWcc8CFnHQAhZx4AIWcfQCF3 HPAhdx0AIXceACF3H0AhhxxAIYcdYCGHHgEh hx8BIZccYCGXHZAhlx6gIZcfkCGnHFAhpx0Q IaceASGnHwEhtxxwIbcdQCG3HiEhtx8CIbcM AiHnHJAh5x1hIeceSyHnHwEh9xzwIfcdACH3 HgAh9x9AIRcc8CEXHQAhFx4AIRcfQA== FuncGroup 1 LayoutID 2 AFGLowPowerState AwAAAA== CodecID 283904153 Comment ALC898, Toleda ConfigData IUccECFHHUAhRx4RIUcfkCFXHCAhVx0QIVce ASFXHwEhZxzwIWcdACFnHgAhZx9AIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx2QIYceoCGHH5Ah lxxgIZcdkCGXHoEhlx8CIaccUCGnHTAhpx6B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfcc8CH3HQAh9x4AIfcfQCEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC898 CodecID 283904153 ConfigData AUccEAFHHUABRx4RAUcfAQGHHFABhx2QAYce oAGHH5ABlxxgAZcdkAGXHoEBlx8CAacccAGn HTABpx6BAacfAQG3HIABtx1AAbceIQG3HwEB 5xyQAecd4AHnHkUB5x8BAUcMAg== FuncGroup 1 LayoutID 5 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC898 CodecID 283904153 ConfigData AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd YAHnHkUB5x8BAUcMAg== FuncGroup 1 LayoutID 7 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904153 Comment Custom ALC898 by Irving23 for MSI GT72S 6QF-065CN ConfigData ARcc8AEXHQABFx4AARcfQAEnHBABJx0BASce oAEnH5ABRxzwAUcdAAFHHgABRx9AAVcc8AFX HQABVx4AAVcfQAFnHPABZx0AAWceAAFnH0AB dxxgAXcdEAF3HgEBdx8BAYccEAGHHRABhx6h AYcfAQGXHEABlx0BAZceFwGXH5ABpxwgAacd EAGnHoEBpx8BAbccQAG3HQEBtx4XAbcfkAHH HPABxx0AAcceAAHHH0AB1xzwAdcdAAHXHgAB 1x9AAecccAHnHREB5x5FAecfAQH3HPAB9x0A AfceAAH3H0ABRwwC FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Realtek ALC898 for MSI GS40 CodecID 283904153 ConfigData AaccEAGnHQABpx4XAacfkAHnHCAB5x0QAece RgHnHwEBhxwwAYcdEAGHHoEBhx8BASccQAEn HQABJx6gAScfkA== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== CodecID 283904153 Comment ALC898, Toleda ConfigData IUccECFHHUAhRx4RIUcfkCFXHCAhVx0QIVce ASFXHwEhZxzwIWcdACFnHgAhZx9AIXcc8CF3 HQAhdx4AIXcfQCGHHEAhhx2QIYceoCGHH5Ah lxxgIZcdkCGXHoEhlx8CIaccUCGnHTAhpx6B IacfASG3HHAhtx1AIbceISG3HwIh5xyQIecd YSHnHksh5x8BIfcc8CH3HQAh9x4AIfcfQCEX HPAhFx0AIRceACEXH0A= FuncGroup 1 LayoutID 28 AFGLowPowerState AwAAAA== Codec Realtek ALC898 for CLEVO P65xRS(-G) by datasone CodecID 283904153 ConfigData ARcc8AEXHQABFx4AARcfQAEnHFABJx0BASce pgEnH5ABRxwQAUcdAQFHHhcBRx+QAXccIAF3 HRABdx4BAXcfAQGHHEABhx0QAYcegQGHHwEB 1xzwAdcdAAHXHgAB1x9AAeccMAHnHREB5x5E AecfAQFHDAI= FuncGroup 1 LayoutID 65 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Realtek ALC898 for MSI GE62 7RE Apache Pro by spectra CodecID 283904153 ConfigData ASccEAEnHQEBJx6gAScfmQGHHCABhx0QAYce gQGHHwIBVxwwAVcdAQFXHhMBVx+ZAaccMQGn HQEBpx4TAacfmQG3HDIBtx0BAbceEwG3H5kB twwCAUccQAFHHRABRx4hAUcfAgFHDAIB5xxQ AecdEQHnHkUB5x8C FuncGroup 1 LayoutID 98 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Realtek ALC898 for MSI GP62-6QG Leopard Pro CodecID 283904153 ConfigData ARcc8AEXHQABFx4AARcfQAEnHBABJx0BASce oAEnH5ABRxxQAUcdQAFHHiEBRx8BAUcMAgFX HEABVx0BAVceEAFXH5ABZxzwAWcdAAFnHgAB Zx9AAXcc8AF3HQABdx4AAXcfQAGHHCABhx2Q AYcegQGHHwEBlxzwAZcdAAGXHgABlx9AAacc 8AGnHQABpx4AAacfQAG3HPABtx0AAbceAAG3 H0ABxxzwAccdAAHHHgABxx9AAdcc8AHXHQAB 1x4AAdcfQAHnHHAB5x1BAeceRQHnHwEB9xzw AfcdAAH3HgAB9x9A FuncGroup 1 LayoutID 99 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904153 Comment ALC898, 4 Line Out by Andrey1970 ConfigData AUccAAFHHUABRx4RAUcfkAFXHBABVx0QAVce AQFXHwEBZxwgAWcdYAFnHgEBZx8BAYccMAGH HZABhx6gAYcfkAGnHEABpx0wAacegQGnHwEB lxxQAZcdkAGXHoEBlx8CAbccYAG3HUABtx4h AbcfAgHnHHAB5x1hAeceSwHnHwEBdxyAAXcd IAF3HgEBdx8BAfcc8AH3HQAB9x4AAfcfSQEX HPABFx0AARceAAEXH0k= FuncGroup 1 LayoutID 101 AFGLowPowerState AwAAAA== CodecID 283904256 Comment toleda - ALC1150 ConfigData AUccEAFHHUABRx4RAUcfkAFHDAIBVxwgAVcd EAFXHgEBVx8BAWccMAFnHWABZx4BAWcfAQF3 HPABdx0AAXceAAF3H0ABhxxAAYcdkAGHHqAB hx+QAZccYAGXHZABlx6BAZcfAgGnHFABpx0w AacegQGnHwEBtxxwAbcdQAG3HiEBtx8CAbcM AgHnHJAB5x1hAeceSwHnHwEB9xzwAfcdAAH3 HgAB9x9AARcc8AEXHQABFx4AARcfQA== FuncGroup 1 LayoutID 1 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904256 Comment toleda - ALC1150 ConfigData AUccEAFHHUABRx4RAUcfkAFHDAIBVxzwAVcd AAFXHgABVx9AAWcc8AFnHQABZx4AAWcfQAF3 HPABdx0AAXceAAF3H0ABhxxAAYcdYAGHHgEB hx8BAZccYAGXHZABlx6gAZcfkAGnHFABpx0Q AaceAQGnHwEBtxxwAbcdQAG3HiEBtx8CAbcM AgHnHJAB5x1hAeceSwHnHwEB9xzwAfcdAAH3 HgAB9x9AARcc8AEXHQABFx4AARcfQA== FuncGroup 1 LayoutID 2 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283904256 Comment toleda - ALC1150 ConfigData AUccEAFHHUABRx4RAUcfkAFXHCABVx0QAVce AQFXHwEBZxzwAWcdAAFnHgABZx9AAXcc8AF3 HQABdx4AAXcfQAGHHEABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAaccUAGnHTABpx6B AacfAQG3HHABtx1AAbceIQG3HwIB5xyQAecd YQHnHksB5x8BAfcc8AH3HQAB9x4AAfcfQAEX HPABFx0AARceAAEXH0A= FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC1150 CodecID 283904256 ConfigData AUccEAFHHUABRx4RAUcfAQGHHFABhx2QAYce oAGHH5ABlxxgAZcdkAGXHoEBlx8CAacccAGn HTABpx6BAacfAQG3HIABtx1AAbceIQG3HwEB 5xyQAecd4AHnHkUB5x8BAUcMAg== FuncGroup 1 LayoutID 5 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC1150 CodecID 283904256 ConfigData AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd YAHnHkUB5x8BAUcMAg== FuncGroup 1 LayoutID 7 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Realtek ALC1150 (mic boost) CodecID 283904256 ConfigData AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd YAHnHkUB5x8BAUcMAg== FuncGroup 1 LayoutID 11 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283906592 CodecName Toleda - Realtek ALC1220 ConfigData AUccEAFHHUABRx4RAUcfkAFHDAIBVxwgAVcd EAFXHgEBVx8BAWccMAFnHWABZx4BAWcfAQGH HEABhx2QAYceoAGHH5ABlxxgAZcdkAGXHoEB lx8CAaccUAGnHTABpx6BAacfAQG3HHABtx1A AbceIQG3HwIBtwwCAecckAHnHWEB5x5LAecf AQ== FuncGroup 1 LayoutID 1 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283906592 CodecName Toleda - Realtek ALC1220 ConfigData AUccEAFHHUABRx4RAUcfkAFHDAIBVxzwAVcd AAFXHgABVx9AAWcc8AFnHQABZx4AAWcfQAGH HEABhx1gAYceAQGHHwEBlxxgAZcdkAGXHqAB lx+QAaccUAGnHRABpx4BAacfAQG3HHABtx1A AbceIQG3HwIBtwwCAecckAHnHWEB5x5LAecf AQ== FuncGroup 1 LayoutID 2 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283906592 CodecName Mirone - Realtek ALC1220 ConfigData AUccEAFHHUABRx4RAUcfAQGHHFABhx2QAYce oAGHH5ABlxxgAZcdkAGXHoEBlx8CAacccAGn HTABpx6BAacfAQG3HIABtx1AAbceIQG3HwEB 5xyQAecd4AHnHkUB5x8BAUcMAg== FuncGroup 1 LayoutID 5 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283906592 CodecName Mirone - Realtek ALC1220 ConfigData AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd YAHnHkUB5x8BAUcMAg== FuncGroup 1 LayoutID 7 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283906592 CodecName Custom Realtek ALC1220 by truesoldier ConfigData AUccEAFHHUABRx4RAUcfkAG3HCABtx1AAbce IQG3HwIB5xwwAecdIAHnHksB5x8BAYccQAGH HZABhx6gAYcfkAGXHFABlx2QAZcegQGXHwIB VxxwAVcdEAFXHgEBVx8BAWccgAFnHWABZx4B AWcfAQGnHKABpx0wAacegQGnHwE= FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== CodecID 283906592 CodecName MacPeet - ALC1220 for Clevo P950HR ConfigData AUccEAFHHRABRx4hAUcfAQFHDAIBJxwwAScd AAEnHqYBJx+ZAYccQAGHHRABhx6BAYcfAQG3 HGABtx0AAbceFwG3H5kBtwwCAecccAHnHRAB 5x5EAecfAQ== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== CodecID 283906592 CodecName fleaplus - ALC1220 for MSI WT75 ConfigData AbccIAG3HQEBtx4XAbcfkAG3DAIBhxxAAYcd EAGHHqEBhx8BAZccQQGXHRQBlx6BAZcfAQGn HE8Bpx0QAacegQGnHwEBJxxQAScdAQEnHmAB Jx+Q FuncGroup 1 LayoutID 15 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283906408 CodecName Toleda - Realtek ALC S1220A ConfigData AUccEAFHHUABRx4RAUcfkAFHDAIBVxwgAVcd EAFXHgEBVx8BAWccMAFnHWABZx4BAWcfAQF3 HPABdx0AAXceAAF3H0ABhxxAAYcdkAGHHqAB hx+QAZccYAGXHZABlx6BAZcfAgGnHFABpx0w AacegQGnHwEBtxxwAbcdQAG3HiEBtx8CAbcM AgHnHJAB5x1hAeceSwHnHwEB9xzwAfcdAAH3 HgAB9x9AARcc8AEXHQABFx4AARcfQA== FuncGroup 1 LayoutID 1 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283906408 CodecName Toleda - Realtek ALC S1220A ConfigData AUccEAFHHUABRx4RAUcfkAFHDAIBVxzwAVcd AAFXHgABVx9AAWcc8AFnHQABZx4AAWcfQAF3 HPABdx0AAXceAAF3H0ABhxxAAYcdYAGHHgEB hx8BAZccYAGXHZABlx6gAZcfkAGnHFABpx0Q AaceAQGnHwEBtxxwAbcdQAG3HiEBtx8CAbcM AgHnHJAB5x1hAeceSwHnHwEB9xzwAfcdAAH3 HgAB9x9AARcc8AEXHQABFx4AARcfQA== FuncGroup 1 LayoutID 2 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283906408 CodecName Mirone - Realtek ALC S1220A ConfigData AUccEAFHHUABRx4RAUcfAQGHHFABhx2QAYce oAGHH5ABlxxgAZcdkAGXHoEBlx8CAacccAGn HTABpx6BAacfAQG3HIABtx1AAbceIQG3HwEB 5xyQAecd4AHnHkUB5x8BAUcMAg== FuncGroup 1 LayoutID 5 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 283906408 CodecName Mirone - Realtek ALC S1220A ConfigData AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3 HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd YAHnHkUB5x8BAUcMAg== FuncGroup 1 LayoutID 7 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== Codec Mirone - Conexant CX8050 CodecID 351346546 ConfigData AXccEAF3HQABdx4XAXcfkAGnHCABpx0AAace oAGnH5ABlxwwAZcdEAGXHosBlx8BAWccQAFn HRABZx4rAWcfAQF3DAIBZwwC FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Asus VivoBook Pro 15 CX8150 by Andres ZeroCross CodecID 351346646 ConfigData AWccQAFnHRABZx4hAWcfBAGXHDABlx0QAZce gQGXHwQBpxwgAacdAQGnHqABpx+QAdccEAHX HQEB1x4XAdcfkAFnDAIB1wwC FuncGroup 1 LayoutID 21 AFGLowPowerState AwAAAA== Codec Mirone - Conexant CX8200 CodecID 351346696 ConfigData AXccEAF3HQABdx4XAXcfkAGnHCABpx0AAace oAGnH5ABlxwwAZcdEAGXHosBlx8BAdccQAHX HRAB1x4rAdcfAQF3DAIB1wwC FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Conexant CX20561 CodecID 351359057 ConfigData AWccQAFnHUABZx4hAWcfAQF3HPABdx0AAXce AAF3H0ABhxwwAYcdMAGHHoEBhx8BAZcc8AGX HQABlx4AAZcfQAGnHBABpx0BAaceFwGnH5AB txzwAbcdAAG3HgABtx9AAccc8AHHHQABxx4A AccfQAHXHCAB1x0BAdceoAHXH5A= FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec Mirone - Conexant CX20583 CodecID 351359079 ConfigData AZcc8AGXHUABlx4hAZcfBAGnHPABpx2QAace oQGnHwQBtxzwAbcdAQG3HgABtx9AAccc8AHH HQEBxx4AAccfQAHXHPAB1x0BAdceAAHXH0AB 5xzwAecdAQHnHqcB5x+VAfcc8AH3HQEB9x4X AfcfkgIHHPACBx0RAgceRQIHHwQCJxzwAicd AQInHgACJx9AAjcc8AI3HQECNx4AAjcfQA== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - Conexant CX20585 CodecID 351359081 ConfigData AZccEAGXHRABlx4gAZcfAAGnHCABpx0AAace AAGnH0ABtxwwAbcdEAG3HoABtx8AAcccUAHH HQABxx4AAccfQAHXHGAB1x0AAdceAAHXH0AB 5xxgAecdAAHnHgAB5x9AAfcccAH3HQAB9x4Q AfcfkAIHHIACBx0AAgceAAIHH0ACJxyAAicd AAInHgACJx9AAjcckAI3HQACNx6gAjcfkA== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Constanta custom for Toshiba L755-16R - Conexant CX20585 CodecID 351359081 ConfigData AZccEAGXHRABlx4gAZcfAAGnHCABpx0wAace gQGnHwEBtxwwAbcdAAG3HgABtx9AAcccUAHH HQABxx4AAccfQAHXHGAB1x0AAdceAAHXH0AB 5xxgAecdAAHnHgAB5x9AAfcccAH3HQAB9x4Q AfcfkAIHHIACBx0AAgceAAIHH0ACJxyAAicd AAInHgACJx9AAjcckAI3HQECNx6gAjcfkA== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec Mirone - Conexant CX20588 CodecID 351359084 ConfigData AZccQAGXHRABlx4hAZcfAgG3HDABtx0QAbce owG3H5kCNxxQAjcdAQI3HqECNx+SAfccEAH3 HQEB9x4TAfcfmQ== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - Conexant CX20590 CodecID 351359086 ConfigData AZccQAGXHRABlx4hAZcfAAGnHDABpx0QAace gQGnHwABtxwgAbcdAAG3HqcBtx+QAfccEAH3 HQAB9x4XAfcfkQ== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== CodecID 351359086 Comment CX20590 Custom for Lenovo Yoga 13 by usr-sse2 ConfigData AZccMAGXHUABlx4rAZcfDgH3HCAB9x0BAfce EAH3H5ACNxwQAjcdAQI3HqACNx+QAaccQAGn HRABpx6BAacfAQG3HPABtx0AAbceAAG3H0AB xxzwAccdAAHHHgABxx9AAdcc8AHXHQAB1x4A AdcfQAHnHPAB5x0AAeceAAHnH0ACBxzwAgcd AAIHHgACBx9AAicc8AInHQACJx4AAicfQA== FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== CodecID 351359086 Comment CX20590 for Lenovo T420 by tluck (Additional ports for use with a Docking Station) ConfigData AFccAABXHQAAVx5WAFcfGABnHBAAZx0AAGce VgBnHxgAdxwgAHcdAAB3HlYAdx8YAZccMAGX HRABlx4hAZcfBAGnHEABpx2QAaceoQGnH2EB txxQAbcdEAG3HoEBtx8BAcccYAHHHUABxx4h AccfYQH3HHAB9x0BAfceFwH3H5kCNxyAAjcd AQI3HqYCNx+ZAbcMAg== FuncGroup 1 LayoutID 13 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 351359086 Comment CX20590 for Lenovo T420 by tluck (Standard Laptop) ConfigData AFccAABXHQAAVx5WAFcfGABnHBAAZx0AAGce VgBnHxgAdxwgAHcdAAB3HlYAdx8YAZccMAGX HRABlx4hAZcfBAGnHEABpx2QAaceoQGnH2EB txxQAbcdEAG3HoEBtx8BAcccYAHHHUABxx4h AccfYQH3HHAB9x0BAfceFwH3H5kCNxyAAjcd AQI3HqYCNx+ZAbcMAg== FuncGroup 1 LayoutID 14 WakeConfigData AUcMAg== WakeVerbReinit AFGLowPowerState AwAAAA== CodecID 351359137 Comment CX20641 - MacPeet - Dell OptiPlex 3010 - ManualMode ConfigData IcccECHHHUAhxx4BIccfASGnHCAhpx2QIace gSGnHwIhtxwwIbcdMCG3HoEhtx8BIZccQCGX HUAhlx4hIZcfAg== FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== CodecID 351359137 Comment CX20641 - MacPeet - Dell OptiPlex 3010 - SwitchMode ConfigData IcccECHHHUAhxx4RIccfkCGnHCAhpx2QIace gSGnHwIhtxwwIbcdMCG3HoEhtx8BIZccQCGX HUAhlx4hIZcfAg== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== CodecID 351359138 Comment CX20642 - MacPeet - Fujitsu ESPRIMO E910 E90+ Desktop - ManualMode ConfigData IcccECHHHUAhxx4BIccfASGnHCAhpx0QIace gSGnHwIhlxxAIZcdECGXHiEhlx8CIdccUCHX HTAh1x6BIdcfAQ== FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== CodecID 351359138 Comment CX20642 - MacPeet - Fujitsu ESPRIMO E910 E90+ Desktop - SwitchMode ConfigData IcccECHHHUAhxx4RIccfkCGnHCAhpx0QIace oSGnH5IhlxxAIZcdECGXHiEhlx8CIdccUCHX HTAh1x6BIdcfAQ== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== CodecID 351359086 Comment Custom for Dell Vostro 3x60 by vusun123 ConfigData AfccEAH3HQAB9x4XAfcfkQGnHDABpx0QAace gQGnHwkBlxxAAZcdEAGXHiEBlx8AAjccIAI3 HQECNx6nAjcfkAG3DAIB1wwC FuncGroup 1 LayoutID 28 AFGLowPowerState AwAAAA== Codec Mirone - Conexant CX20722 CodecID 351359218 ConfigData AXccEAF3HQABdx4WAXcfkQGnHCABpx0AAace pgGnH5ABlxwwAZcdEAGXHoEBlx8CAWccQAFn HRABZx4hAWcfAg== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - Conexant CX20724 CodecID 351359220 ConfigData AWccEAFnHRABZx4hAWcfAgF3HCABdx0AAXce FwF3H5EBlxwwAZcdEAGXHoEBlx8CAaccQAGn HQABpx6mAacfkA== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Conexant CX20724 CodecID 351359220 ConfigData AXccEAF3HQEBdx4XAXcfkQGnHCABpx0BAace oAGnH5UBlxwwAZcdEAGXHosBlx8EAdccQAHX HRAB1x4rAdcfBA== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec Mirone - Conexant CX20752 CodecID 351359247 ConfigData AWccEAFnHUABZx4hAWcfAQF3HCABdx0AAXce FwF3H5ABhxwwAYcdkAGHHoEBhx8BAaccQAGn HQABpx6gAacfkA== FuncGroup 1 LayoutID 3 Codec Conexant - CX20751/2 by RehabMan CodecID 351359247 ConfigData AWccQAFnHRABZx4hAWcfBAF3HBABdx0BAXce FwF3H5ABlxwwAZcdEAGXHoEBlx8EAaccIAGn HQEBpx6gAacfkA== FuncGroup 1 LayoutID 28 AFGLowPowerState AwAAAA== Codec Mirone - Conexant CX20753/4 CodecID 351359249 ConfigData AWccEAFnHUABZx4hAWcfAgF3HCABdx0AAXce FwF3H5ABlxwwAZcdkAGXHoEBlx8CAaccQAGn HQABpx6gAacfkA== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - Conexant CX20755 CodecID 351359251 ConfigData AXccEAF3HQABdx4XAXcfkAGnHCABpx0AAace pgGnH5UBhxwwAYcdkAGHHosBhx8CAWccQAFn HUABZx4rAWcfAg== FuncGroup 1 LayoutID 3 AFGLowPowerState AQAAAA== Codec Mirone - Conexant CX20756 CodecID 351359252 ConfigData AWccEAFnHUABZx4hAWcfAQF3HCABdx0AAXce EwF3H5ABhxwwAYcdkAGHHqEBhx8CAaccQAGn HQABpx6mAacfkA== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - Conexant CX20756 CodecID 351359252 ConfigData AXccEAF3HQEBdx4XAXcfkAGnHCABpx0BAace oAGnH5ABlxwwAZcdEAGXHosBlx8CAWccQAFn HRABZx4rAWcfAgGHHPABhx0AAYceAAGHH0A= FuncGroup 1 LayoutID 13 AFGLowPowerState AQAAAA== Codec Mirone - Conexant CX20757 CodecID 351359253 ConfigData AWccEAFnHQABZx4hAWcfAQF3HCABdx0AAXce EwF3H5ABhxwwAYcdAAGHHoEBhx8CAaccUAGn HQABpx6gAacfkA== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Custom IDT 92HD87B1/3 by RehabMan CodecID 287143633 ConfigData AMcegQDHHwM= FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec InsanelyDeepak - IDT92HD87B1/3 CodecID 287143633 ConfigData ANccAADXHQAA1x4XANcfmQEXHCABFx0AARce oAEXH5kAtxwwALcdQAC3HiEAtx8BAMccQADH HRAAxx6AAMcfAQ== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec Custom IDT92HD87B2/4 by RehabMan CodecID 287143641 ConfigData AMcegQDHHwMBFx6gARcfkA== FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec Custom IDT92HD95 by RehabMan CodecID 287143573 ConfigData AKccEACnHRAApx4hAKcfAgCnDAIAtxwgALcd EAC3HqEAtx8CALcMAgDXHDAA1x0BANceFwDX H5AA1wwCAOccQADnHQEA5x6gAOcfkA== FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec Mirone - IDT 92HD66C3/65 CodecID 287143667 ConfigData AKccEACnHUAApx4hAKcfAgC3HCAAtx1AALce EwC3H5AAxxwwAMcdkADHHoEAxx8CAOccQADn HZAA5x6gAOcfkA== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - IDT 92HD71B7X CodecID 287143602 ConfigData AKccEACnHRAApx4hAKcfAAC3HCAAtx0QALce gQC3HwIAxxwwAMcdAADHHvAAxx9AANccQADX HQAA1x4XANcfkADnHFAA5x0QAOceoQDnHyAB RxxgAUcdAAFHHvABRx9AAYcccAGHHQABhx6g AYcfkAGXHIABlx0AAZce8AGXH0AB5xyQAecd EAHnHkYB5x8BAfccoAH3HQAB9x7wAfcfQAIH HLACBx0AAgce8AIHH0ACdxzAAncdAAJ3HvAC dx9A FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Dell Studio 1535 - IDT 92HD73C1X5 by chunnann CodecID 287143541 ConfigData AKccEACnHRAApx4hAKcfAwDXHCAA1x0BANce FwDXH5AA5xwwAOcdEADnHoEA5x8DAPccQAD3 HRAA9x4BAPcfAwE3HFABNx0BATceoAE3H5A= FuncGroup 1 LayoutID 19 AFGLowPowerState AwAAAA== Codec Mirone - IDT 92HD81B1C5 CodecID 287143637 ConfigData AKccIACnHRAApx6BAKcfAgC3HDAAtx0QALce IQC3HwIA1xxAANcdAADXHhcA1x+QARccUAEX HQABFx6gARcfkA== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Goldfish64 - IDT 92HD81B1C5 for Dell Latitude E6410 CodecID 287143637 ConfigData AKccIACnHRAApx6BAKcfBACnDAIAtxwwALcd EAC3HiEAtx8EALcMAgDHHPAAxx0AAMceAADH H0AA1xxAANcdAQDXHhcA1x+QANcMAgDnHPAA 5x0AAOceAADnH0AA9xzwAPcdAAD3HgAA9x9A AQcc8AEHHQABBx4AAQcfQAEXHFABFx0BARce oAEXH5AB9xzwAfcdAAH3HgAB9x9AAgcc8AIH HQACBx4AAgcfQA== FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec Mirone - IDT 92HD81B1X5 CodecID 287143429 ConfigData AKccIACnHRAApx6hAKcfAQC3HBAAtx0QALce IQC3HwEA1xwwANcdAADXHhcA1x+QAOcc8ADn HQAA5x4AAOcfQAD3HEAA9x0AAPceAAD3H0AB BxxQAQcdAAEHHgABBx9AARccYAEXHQABFx6j ARcf0AH3HHAB9x0AAfceAAH3H0ACBxyAAgcd AAIHHgACBx9A FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Custom IDT 92HD81B1X5 by Andres ZeroCross CodecID 283902515 ConfigData ASccEAEnHRABJx6BAScfBAFHHCABRx0BAUce FwFHH5ABRwwCAXcc8AF3HQABdx4AAXcfQAGH HPABhx0AAYceAAGHH0ABlxzwAZcdAAGXHgAB lx9AAacc8AGnHQABpx4AAacfQAG3HDABtx0B AbceoAG3H5AB1xzwAdcdAAHXHgAB1x9AAecc 8AHnHQAB5x4AAecfQAIXHEACFx0QAhceIQIX HwMCFwwC FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec RehabMan - IDT 92HD81B1X5 CodecID 287143429 ConfigData AMcegQDHHwMBFx6gARcfkA== FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec Custom IDT 92HD81B1X5 by Sergey_Galan for HP ProBook 4520s CodecID 287143429 ConfigData AKccIACnHRAApx6BAKcfAQC3HFAAtx0QALce IQC3HwEA1xwwANcdAQDXHhAA1x+QAOcc8ADn HQAA5x4AAOcfQAD3HPAA9x0AAPceAAD3H0AB BxzwAQcdAAEHHgABBx9AARccEAEXHQEBFx6g ARcfkAH3HPAB9x0AAfceAAH3H0ACBxzwAgcd AAIHHgACBx9AAMcc8ADHHQAAxx4AAMcfQA== FuncGroup 1 LayoutID 20 AFGLowPowerState AwAAAA== Codec Custom IDT 92HD81B1X5 by Sergey_Galan for HP DV6-6169er CodecID 287143429 ConfigData AMccIADHHRAAxx6BAMcfAQC3HFAAtx0QALce IQC3HwEA9xwwAPcdAQD3HhAA9x+QAOcc8ADn HQAA5x4AAOcfQADXHPAA1x0AANceAADXH0AB BxzwAQcdAAEHHgABBx9AARccEAEXHQEBFx6g ARcfkAH3HPAB9x0AAfceAAH3H0ACBxzwAgcd AAIHHgACBx9AAKcc8ACnHQAApx4AAKcfQA== FuncGroup 1 LayoutID 21 AFGLowPowerState AwAAAA== Codec Custom IDT 92HD81B1X5 by Gujiangjiang for HP Pavilion g4 1000 series CodecID 287143429 ConfigData ARccAAEXHQEBFx6jARcfmQDHHBAAxx0QAMce gQDHHwEA1xwgANcdAQDXHhMA1x+ZALccMAC3 HRAAtx4hALcfAQFHDAI= FuncGroup 1 LayoutID 28 AFGLowPowerState AwAAAA== Codec Mirone - IDT 92HD75B2X5 CodecID 287143432 ConfigData AKccEACnHRAApx4hAKcfAQC3HCAAtx0QALce gQC3HwEAxxwwAMcdEADHHqAAxx+QANccQADX HQAA1x4RANcfkADnHFAA5x0AAOce8ADnH0AB RxxgAUcdAAFHHvABRx9AAYcccAGHHQABhx7w AYcfQAHnHIAB5x0AAece8AHnH0AB9xyQAfcd AAH3HvAB9x9AAgccoAIHHQACBx7wAgcfQA== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - IDT 92HD75B3X5 CodecID 287143427 ConfigData ALccEAC3HRAAtx6gALcfkADXHCAA1x0AANce FwDXH5AA9xwwAPcdQAD3HiEA9x8BAYccQAGH HZABhx6BAYcfAQ== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - IDT 92HD75B3X5 CodecID 287143427 ConfigData ALccAAC3HQAAtx6nALcfmQDXHBAA1x0AANce FwDXH5kA9xwgAPcdQAD3HiEA9x8B FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec Mirone - IDT 92HD90BXX CodecID 287143655 ConfigData ALccEAC3HRAAtx4hALcfAACnHCAApx0QAKce gQCnHwABFxwwARcdkAEXHqABFx+QANccQADX HQAA1x4XANcfkADnHFAA5x0QAOceAQDnHyAA 9xxgAPcdEAD3HqEA9x8gAQcc8AEHHQABBx4A AQcfQA== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec vusun123 - IDT 92HD90BXX CodecID 287143655 ConfigData AKccIACnHRAApx6BAKcfAAC3HBAAtx0QALce IQC3HwAA1xxAANcdAADXHhcA1x+QARccMAEX HQABFx6gARcf0A== FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec Mirone - IDT 92HD91BXX CodecID 287143648 ConfigData AKccAACnHRAApx6BAKcfAQC3HBAAtx0QALce IQC3HwMAxxwgAMcdAADHHgAAxx9JARccMAEX HQABFx6gARcfmQDXHEAA1x0BANceFwDXH5kA 5xxQAOcdEADnHgEA5x8jAQccYAEHHQABBx4A AQcfSQH3HHAB9x0AAfceAAH3H0kCBxyAAgcd AAIHHgACBx9J FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec RehabMan - IDT 92HD91BXX for HP Envy CodecID 287143648 ConfigData AKccAACnHRAApx6BAKcfAQC3HBAAtx0QALce IQC3HwMAxxwgAMcdAADHHgAAxx9JARccMAEX HQABFx6gARcfmQD3HEAA9x0BAPceFwD3H5kA 5xxQAOcdEADnHgEA5x8jAQccYAEHHQABBx4A AQcfSQH3HHAB9x0AAfceAAH3H0kCBxyAAgcd AAIHHgACBx9J FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec MacPeet - IDT92HD91BXX for HP Envy 6 1171-SG CodecID 287143648 ConfigData ALccEAC3HRAAtx4hALcfAAC3DAIAxxwgAMcd EADHHoEAxx8AARccMAEXHQABFx6jARcfmQDX HEAA1x0AANceEADXH5AA1wwC FuncGroup 1 LayoutID 13 AFGLowPowerState AwAAAA== Codec jl4c - IDT 92HD91BXX for HP Envy CodecID 287143648 ConfigData ALccIAC3HRAAtx4hALcfAwD3HDIA9x0BAPce FwD3H5ABFxwQARcdAQEXHqYBFx+XANcc8ADX HQAA1x4AANcfQAEHHPABBx0AAQceAAEHH0AA pxzwAKcdAACnHgAApx9AAMcc8ADHHQAAxx4A AMcfQADnHPAA5x0AAOceAADnH0AB9xzwAfcd AAH3HgAB9x9AAgcc8AIHHQACBx4AAgcfQA== FuncGroup 1 LayoutID 33 AFGLowPowerState AwAAAA== Codec macish - IDT 92HD91BXX for HP Elitebook G1 CodecID 287143648 ConfigData AKccAACnHRAApx6BAKcfAQC3HBAAtx0QALce IQC3HwMAxxwgAMcdAADHHgAAxx9JARccMAEX HQABFx6gARcfmQD3HEAA9x0BAPceFwD3H5kA 5xxQAOcdEADnHgEA5x8jAQccYAEHHQABBx4A AQcfSQH3HHAB9x0AAfceAAH3H0kCBxyAAgcd AAIHHgACBx9J FuncGroup 1 LayoutID 84 AFGLowPowerState AwAAAA== Codec Custom - IDT 92HD93BXX Dell Latitude E6430 CodecID 287143647 ConfigData AKccIACnHRAApx6BAKcfAACnDAIAtxwQALcd EAC3HiEAtx8AALcMAgDXHEAA1x0BANceFwDX H5AA1wwCAOccUADnHRAA5x4BAOcfIADnDAIA 9xxgAPcdEAD3HoEA9x8gAQcc8AEHHQABBx4A AQcfQAEXHDABFx0BARceoAEXH5A= FuncGroup 1 LayoutID 12 AFGLowPowerState AwAAAA== Codec Mirone - IDT 92HD99BXX CodecID 287143653 ConfigData AKccEACnHZAApx6BAKcfAgC3HCAAtx1AALce IQC3HwIAxxwwAMcdAADHHvAAxx9AANccQADX HQAA1x4TANcf0AD3HFAA9x0AAPce8AD3H0AB FxxgARcdAAEXHqABFx+QANcMAg== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Mirone - IDT 92HD87B1 CodecID 287143429 ConfigData AKccIACnHRAApx6hAKcfAQC3HBAAtx0QALce IQC3HwEA1xwwANcdAADXHhcA1x+QAOcc8ADn HQAA5x4AAOcfQAD3HEAA9x0AAPceAAD3H0AB BxxQAQcdAAEHHgABBx9AARccYAEXHQABFx6j ARcf0AH3HHAB9x0AAfceAAH3H0ACBxyAAgcd AAIHHgACBx9A FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec Goldfish64 - STAC9200 for Dell Precision 390 CodecID 2206496400 ConfigData AIcc8ACHHQAAhx4AAIcfQACXHPAAlx0AAJce AACXH0AA1xwQANcdEADXHiEA1x8CAOccIADn HQEA5x4QAOcfkAD3HDAA9x0BAPceoAD3H5AB BxxAAQcdEAEHHoEBBx8CARcc8AEXHQABFx4A ARcfQAEnHPABJx0AASceAAEnH0A= FuncGroup 1 LayoutID 11 AFGLowPowerState AwAAAA== Codec Mirone - VIA VT1802 CodecID 285639750 ConfigData AkccEAJHHQACRx4TAkcfkAJXHCACVx1AAlce IQJXHwEClxxAApcdAAKXHqAClx+QArccYAK3 HZACtx6BArcfAgLXHHAC1x0QAtceRALXHwAC RwwCAlcMAw== FuncGroup 1 LayoutID 3 AFGLowPowerState AwAAAA== Codec ChalesYu - VIA VT1802 CodecID 285639750 ConfigData AkccQAJHHQACRx4XAkcfkAJHDAICVxxQAlcd EAJXHiECVx8CAlcMAgMHHBADBx0AAwceoAMH H5A= FuncGroup 1 LayoutID 33 AFGLowPowerState AwAAAA== Codec Mirone - VIA VT2021 CodecID 285606977 ConfigData IkccECJHHUAiRx4BIkcfASKHHCAihx1AIoce ISKHHwEilxwwIpcdkCKXHqEilx8CIqccQCKn HTAipx6BIqcfASK3HFAitx2QIrcegSK3HwEi 5xxgIucdECLnHkUi5x8A FuncGroup 1 LayoutID 5 AFGLowPowerState AwAAAA== Codec Mirone - VIA VT2021 CodecID 285606977 ConfigData IkccECJHHUAiRx4RIkcfASJXHCAiVx0QIlce ASJXHwEiZxwwImcdYCJnHgEiZx8BInccQCJ3 HSAidx4BIncfASKHHFAihx1AIoceISKHHwEi lxxgIpcdkCKXHqEilx8CIqcccCKnHTAipx6B IqcfASK3HIAitx2QIrcegSK3HwEi5xygIucd ECLnHkUi5x8A FuncGroup 1 LayoutID 7 AFGLowPowerState AwAAAA== Codec SonicBSV - VIA VT2020/2021 CodecID 285606977 ConfigData Ihcc8CIXHQAiFx4AIhcfQCJHHBAiRx1AIkce ESJHHwEiRwwCIlcc8CJXHQAiVx4AIlcfQCJn HPAiZx0AImceACJnH0AidxzwIncdACJ3HgAi dx9AIoccICKHHUAihx4hIocfASKXHEAilx2Q IpceoCKXH5AilwchIqccgCKnHTAipx6BIqcf ASK3HPAitx0AIrceACK3H0AixxzwIscdACLH HgAixx9AItcc8CLXHQAi1x4AItcfQCLnHJAi 5x1hIuceSyLnHwEi9xzwIvcdACL3HgAi9x9A FuncGroup 1 LayoutID 9 IOClass AppleHDAHardwareConfigDriver IOMatchCategory AppleHDAHardwareConfigDriver IOProviderClass AppleHDAHardwareConfigDriverLoader as.vit9696.AppleALC CFBundleIdentifier as.vit9696.AppleALC IOClass AppleALC IOMatchCategory AppleALC IOProviderClass IOResources IOResourceMatch IOKit NSHumanReadableCopyright Copyright © 2017 vit9696. All rights reserved. OSBundleCompatibleVersion 1.0 OSBundleLibraries as.vit9696.Lilu 1.2.0 com.apple.iokit.IOPCIFamily 1.0.0b1 com.apple.kpi.bsd 12.0.0 com.apple.kpi.dsep 12.0.0 com.apple.kpi.iokit 12.0.0 com.apple.kpi.libkern 12.0.0 com.apple.kpi.mach 12.0.0 com.apple.kpi.unsupported 12.0.0 OSBundleRequired Root ================================================ FILE: kexts/HSSDBlockStorage.kext/Contents/Info.plist ================================================ CFBundleDevelopmentRegion English CFBundleExecutable HSSDBlockStorage CFBundleIdentifier com.jmicron.driver.HSSDBlockStorage CFBundleInfoDictionaryVersion 6.0 CFBundleName HSSDBlockStorage CFBundlePackageType KEXT CFBundleSignature ???? CFBundleVersion 1.5.0 IOKitPersonalities HSSDBlockStorage CFBundleIdentifier com.jmicron.driver.HSSDBlockStorage IOClass HSSDBlockStorageDriver IOCommandPoolSize 32 IOProviderClass HSSDDevice Physical Interconnect PCIe Physical Interconnect Location External OSBundleLibraries com.apple.iokit.IOStorageFamily 1.4 com.apple.iokit.IOUSBFamily 2.0 com.apple.kpi.iokit 8.0 com.apple.kpi.libkern 8.0 com.jmicron.driver.JMB38X 1.5.0 OSBundleRequired Local-Root ================================================ FILE: kexts/JMB38X.kext/Contents/Info.plist ================================================ CFBundleDevelopmentRegion English CFBundleExecutable JMB38X CFBundleIdentifier com.jmicron.driver.JMB38X CFBundleInfoDictionaryVersion 6.0 CFBundleName JMB38X CFBundlePackageType KEXT CFBundleSignature ???? CFBundleVersion 1.5.0 IOKitPersonalities JMB38X CFBundleIdentifier com.jmicron.driver.JMB38X IOClass JMB38X IOPCIMatch 0x2392197B IOProviderClass IOPCIDevice OSBundleCompatibleVersion 1.5.0 OSBundleLibraries com.apple.iokit.IOPCIFamily 2.0 com.apple.iokit.IOUSBFamily 2.0 com.apple.kpi.iokit 8.0 com.apple.kpi.libkern 8.0 OSBundleRequired Local-Root ================================================ FILE: kexts/JMicronATA.kext/Contents/Info.plist ================================================ CFBundleDevelopmentRegion English CFBundleExecutable JMicronATA CFBundleGetInfoString 1.1.6, Copyright JMicron Technology Corporation CFBundleIdentifier com.jmicron.JMicronATA CFBundleInfoDictionaryVersion 6.0 CFBundleName JMicron JMB368 CF Card Reader Driver CFBundlePackageType KEXT CFBundleShortVersionString 1.1.6 CFBundleSignature ???? CFBundleVersion 1.1.6 IOKitPersonalities JMicronATA Driver CFBundleIdentifier com.jmicron.JMicronATA Hardware Vendor JMicron IOClass JMicronATA IOMediaIcon CFBundleIdentifier com.apple.iokit.IOStorageFamily IOBundleResourceFile External.icns IOProviderClass JMicronATAChannel JMicronATA PCI CFBundleIdentifier com.jmicron.JMicronATA Hardware Vendor JMicron IOClass JMicronATAPCIRoot IOPCIPrimaryMatch 0x2368197b IOProbeScore 10000 IOProviderClass IOPCIDevice OSBundleLibraries com.apple.iokit.IOATAFamily 1.6 com.apple.iokit.IOPCIFamily 2.0 com.apple.kpi.bsd 8.0 com.apple.kpi.iokit 8.0 com.apple.kpi.libkern 8.0 OSBundleRequired Local-Root ================================================ FILE: kexts/JMicronATA.kext/Contents/version.plist ================================================ BuildVersion 801 CFBundleShortVersionString 1.1.6 CFBundleVersion 1.1.6 ProjectName JMicronATA SourceVersion 2000000000000 ================================================ FILE: kexts/README.txt ================================================ This folder is for kexts that are not automatically downloaded by download.sh ================================================ FILE: make_acpi.sh ================================================ #!/bin/bash iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-1020G1b.aml hotpatch/SSDT-1020G1b.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-1030G1s.aml hotpatch/SSDT-1030G1s.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-1040G1h.aml hotpatch/SSDT-1040G1h.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-1040G3s.aml hotpatch/SSDT-1040G3s.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-1050G1k.aml hotpatch/SSDT-1050G1k.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-2x60.aml hotpatch/SSDT-2x60.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-2x70.aml hotpatch/SSDT-2x70.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-3x0G1.aml hotpatch/SSDT-3x0G1.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-4230.aml hotpatch/SSDT-4230.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-450G1h.aml hotpatch/SSDT-450G1h.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-4x0G0.aml hotpatch/SSDT-4x0G0.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-4x0G1h.aml hotpatch/SSDT-4x0G1h.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-4x0G1i.aml hotpatch/SSDT-4x0G1i.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-4x0G2b.aml hotpatch/SSDT-4x0G2b.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-4x0G2h.aml hotpatch/SSDT-4x0G2h.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-4x0G3s.aml hotpatch/SSDT-4x0G3s.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-4x0G4k.aml hotpatch/SSDT-4x0G4k.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-4x30.aml hotpatch/SSDT-4x30.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-4x40.aml hotpatch/SSDT-4x40.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-5x30.aml hotpatch/SSDT-5x30.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-6x0G1h.aml hotpatch/SSDT-6x0G1h.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-6x0G2s.aml hotpatch/SSDT-6x0G2s.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-6x60.aml hotpatch/SSDT-6x60.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-6x70.aml hotpatch/SSDT-6x70.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-8x0G1h.aml hotpatch/SSDT-8x0G1h.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-8x0G1i.aml hotpatch/SSDT-8x0G1i.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-8x0G2b.aml hotpatch/SSDT-8x0G2b.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-8x0G2h.aml hotpatch/SSDT-8x0G2h.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-8x0G3b.aml hotpatch/SSDT-8x0G3b.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-8x0G3s.aml hotpatch/SSDT-8x0G3s.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-8x0G4k.aml hotpatch/SSDT-8x0G4k.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-8x60.aml hotpatch/SSDT-8x60.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-8x70.aml hotpatch/SSDT-8x70.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-9x70.aml hotpatch/SSDT-9x70.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-9x80.aml hotpatch/SSDT-9x80.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-FANORIG.aml hotpatch/SSDT-FANORIG.dsl iasl -D QUIET -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-FANQ.aml hotpatch/SSDT-FANQ.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-FANREAD.aml hotpatch/SSDT-FANREAD.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-IGPU.aml hotpatch/SSDT-IGPU.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-zbG1h.aml hotpatch/SSDT-zbG1h.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-zbG2b.aml hotpatch/SSDT-zbG2b.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-zbG2h.aml hotpatch/SSDT-zbG2h.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-zbG2hA.aml hotpatch/SSDT-zbG2hA.dsl iasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-zbG3s.aml hotpatch/SSDT-zbG3s.dsl iasl -D HIRES -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-IGPUH.aml hotpatch/SSDT-IGPU.dsl iasl -D REHABMAN -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-FANRM.aml hotpatch/SSDT-FANQ.dsl iasl -D GRAPPLER -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-FANGRAP.aml hotpatch/SSDT-FANQ.dsl ================================================ FILE: make_config.sh ================================================ #!/bin/bash printf "!! creating config/config_4x30.plist\n" cp config_parts/config_master.plist config/config_4x30.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:KernelPm false" config/config_4x30.plist /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" config/config_4x30.plist /usr/libexec/PlistBuddy -c "Set SMBIOS:ProductName MacBookPro8,1" config/config_4x30.plist ./merge_plist.sh "Devices:Properties" config_parts/config_HD3000-4000_hdmi.plist config/config_4x30.plist ./merge_plist.sh "KernelAndKextPatches:KextsToPatch" config_parts/config_non_Intel_USB3.plist config/config_4x30.plist printf "\n" printf "!! creating config/config_4x40.plist\n" cp config_parts/config_master.plist config/config_4x40.plist /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" config/config_4x40.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" config/config_4x40.plist ./merge_plist.sh "Devices:Properties" config_parts/config_HD3000-4000_hdmi.plist config/config_4x40.plist printf "\n" printf "!! creating config/config_4x0_G0.plist\n" cp config_parts/config_master.plist config/config_4x0_G0.plist /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" config/config_4x0_G0.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" config/config_4x0_G0.plist ./merge_plist.sh "Devices:Properties" config_parts/config_HD3000-4000_hdmi.plist config/config_4x0_G0.plist printf "\n" printf "!! creating config/config_4x0_G1_Ivy.plist\n" cp config/config_4x0_G0.plist config/config_4x0_G1_Ivy.plist printf "\n" printf "!! creating config/config_8x0_G1_Ivy.plist\n" cp config_parts/config_master.plist config/config_8x0_G1_Ivy.plist /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" config/config_8x0_G1_Ivy.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" config/config_8x0_G1_Ivy.plist ./merge_plist.sh "Devices:Properties" config_parts/config_HD3000-4000_dp.plist config/config_8x0_G1_Ivy.plist printf "\n" printf "!! creating config/config_ZBook_G0.plist\n" cp config/config_8x0_G1_Ivy.plist config/config_ZBook_G0.plist printf "\n" printf "!! creating config/config_9x70m.plist\n" cp config_parts/config_master.plist config/config_9x70m.plist /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" config/config_9x70m.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" config/config_9x70m.plist ./merge_plist.sh "Devices:Properties" config_parts/config_HD3000-4000_dp.plist config/config_9x70m.plist printf "\n" printf "!! creating config/config_9x80m.plist\n" cp config_parts/config_master.plist config/config_9x80m.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_9x80m.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir6,2" config/config_9x80m.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Haswell_dp.plist config/config_9x80m.plist printf "\n" printf "!! creating config/config_6x60p.plist\n" cp config_parts/config_master.plist config/config_6x60p.plist /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" config/config_6x60p.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:KernelPm false" config/config_6x60p.plist /usr/libexec/PlistBuddy -c "Set SMBIOS:ProductName MacBookPro8,1" config/config_6x60p.plist ./merge_plist.sh "Devices:Properties" config_parts/config_HD3000-4000_dp.plist config/config_6x60p.plist ./merge_plist.sh "KernelAndKextPatches:KextsToPatch" config_parts/config_non_Intel_USB3.plist config/config_6x60p.plist printf "\n" printf "!! creating config/config_2x60p.plist\n" cp config/config_6x60p.plist config/config_2x60p.plist printf "\n" printf "!! creating config/config_8x60p.plist\n" cp config/config_6x60p.plist config/config_8x60p.plist printf "\n" printf "!! creating config/config_5x30m.plist\n" cp config_parts/config_master.plist config/config_5x30m.plist /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" config/config_5x30m.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:KernelPm false" config/config_5x30m.plist /usr/libexec/PlistBuddy -c "Set SMBIOS:ProductName MacBookPro8,1" config/config_5x30m.plist ./merge_plist.sh "Devices:Properties" config_parts/config_HD3000-4000_hdmi.plist config/config_5x30m.plist ./merge_plist.sh "KernelAndKextPatches:KextsToPatch" config_parts/config_non_Intel_USB3.plist config/config_5x30m.plist printf "\n" printf "!! creating config/config_6x70p.plist\n" cp config_parts/config_master.plist config/config_6x70p.plist /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" config/config_6x70p.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" config/config_6x70p.plist ./merge_plist.sh "Devices:Properties" config_parts/config_HD3000-4000_dp.plist config/config_6x70p.plist printf "\n" printf "!! creating config/config_8x70p.plist\n" cp config/config_6x70p.plist config/config_8x70p.plist printf "\n" printf "!! creating config/config_2x70p.plist\n" cp config/config_6x70p.plist config/config_2x70p.plist printf "\n" printf "!! creating config/config_3x0_G1.plist\n" cp config_parts/config_master.plist config/config_3x0_G1.plist /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" config/config_3x0_G1.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" config/config_3x0_G1.plist ./merge_plist.sh "Devices:Properties" config_parts/config_HD3000-4000_hdmi.plist config/config_3x0_G1.plist printf "\n" printf "!! creating config/config_8x0_G1_Haswell.plist\n" cp config_parts/config_master.plist config/config_8x0_G1_Haswell.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_8x0_G1_Haswell.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir6,2" config/config_8x0_G1_Haswell.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Haswell_dp.plist config/config_8x0_G1_Haswell.plist printf "\n" printf "!! creating config/config_4x0_G1_Haswell.plist\n" cp config_parts/config_master.plist config/config_4x0_G1_Haswell.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_4x0_G1_Haswell.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir6,2" config/config_4x0_G1_Haswell.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Haswell_hdmi.plist config/config_4x0_G1_Haswell.plist printf "\n" printf "!! creating config/config_4x0_G2_Haswell.plist\n" cp config_parts/config_master.plist config/config_4x0_G2_Haswell.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_4x0_G2_Haswell.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir6,2" config/config_4x0_G2_Haswell.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Haswell_hdmi.plist config/config_4x0_G2_Haswell.plist printf "\n" printf "!! creating config/config_8x0_G2_Haswell.plist\n" cp config_parts/config_master.plist config/config_8x0_G2_Haswell.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_8x0_G2_Haswell.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir6,2" config/config_8x0_G2_Haswell.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Haswell_dp.plist config/config_8x0_G2_Haswell.plist printf "\n" printf "!! creating config/config_4x0_G2_Broadwell.plist\n" cp config_parts/config_master.plist config/config_4x0_G2_Broadwell.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_4x0_G2_Broadwell.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir7,2" config/config_4x0_G2_Broadwell.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Broadwell_hdmi.plist config/config_4x0_G2_Broadwell.plist printf "\n" printf "!! creating config/config_8x0_G2_Broadwell.plist\n" cp config_parts/config_master.plist config/config_8x0_G2_Broadwell.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_8x0_G2_Broadwell.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir7,2" config/config_8x0_G2_Broadwell.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Broadwell_dp.plist config/config_8x0_G2_Broadwell.plist printf "\n" printf "!! creating config/config_8x0_G3_Broadwell.plist\n" cp config/config_8x0_G2_Broadwell.plist config/config_8x0_G3_Broadwell.plist printf "\n" printf "!! creating config/config_1020_G1_Broadwell.plist\n" cp config_parts/config_master.plist config/config_1020_G1_Broadwell.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_1020_G1_Broadwell.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir7,2" config/config_1020_G1_Broadwell.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Broadwell_hdmi.plist config/config_1020_G1_Broadwell.plist printf "\n" printf "!! creating config/config_ZBook_G2_Haswell.plist\n" cp config_parts/config_master.plist config/config_ZBook_G2_Haswell.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_ZBook_G2_Haswell.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" config/config_ZBook_G2_Haswell.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Haswell_no_hdmi_dp.plist config/config_ZBook_G2_Haswell.plist printf "\n" printf "!! creating config/config_ZBook_G1_Haswell.plist\n" cp config/config_ZBook_G2_Haswell.plist config/config_ZBook_G1_Haswell.plist printf "\n" printf "!! creating config/config_ZBook_G2_Broadwell.plist\n" cp config_parts/config_master.plist config/config_ZBook_G2_Broadwell.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_ZBook_G2_Broadwell.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" config/config_ZBook_G2_Broadwell.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Broadwell_dp.plist config/config_ZBook_G2_Broadwell.plist printf "\n" printf "!! creating config/config_ZBook_G2_Haswell_ALC280.plist\n" cp config_parts/config_master.plist config/config_ZBook_G2_Haswell_ALC280.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_ZBook_G2_Haswell_ALC280.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" config/config_ZBook_G2_Haswell_ALC280.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Haswell_dp.plist config/config_ZBook_G2_Haswell_ALC280.plist printf "\n" printf "!! creating config/config_8x0_G3_Skylake.plist\n" cp config_parts/config_master.plist config/config_8x0_G3_Skylake.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_8x0_G3_Skylake.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" config/config_8x0_G3_Skylake.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Skylake_dp.plist config/config_8x0_G3_Skylake.plist printf "\n" printf "!! creating config/config_ZBook_G3_Skylake.plist\n" cp config/config_8x0_G3_Skylake.plist config/config_ZBook_G3_Skylake.plist printf "\n" printf "!! creating config/config_4x0_G3_Skylake.plist\n" cp config_parts/config_master.plist config/config_4x0_G3_Skylake.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_4x0_G3_Skylake.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" config/config_4x0_G3_Skylake.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Skylake_hdmi.plist config/config_4x0_G3_Skylake.plist printf "\n" printf "!! creating config/config_1030_G1_Skylake.plist\n" cp config/config_8x0_G3_Skylake.plist config/config_1030_G1_Skylake.plist printf "\n" printf "!! creating config/config_6x0_G2_Skylake.plist\n" cp config_parts/config_master.plist config/config_6x0_G2_Skylake.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_6x0_G2_Skylake.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" config/config_6x0_G2_Skylake.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Skylake_dp.plist config/config_6x0_G2_Skylake.plist printf "\n" printf "!! creating config/config_1040_G1_Haswell.plist\n" cp config/config_8x0_G1_Haswell.plist config/config_1040_G1_Haswell.plist printf "\n" printf "!! creating config/config_6x0_G1_Haswell.plist\n" cp config/config_8x0_G1_Haswell.plist config/config_6x0_G1_Haswell.plist printf "\n" printf "!! creating config/config_1040_G3_Skylake.plist\n" cp config_parts/config_master.plist config/config_1040_G3_Skylake.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_1040_G3_Skylake.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" config/config_1040_G3_Skylake.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Skylake_dp.plist config/config_1040_G3_Skylake.plist printf "\n" printf "!! creating config/config_1050_G1_KabyLake-R.plist\n" cp config_parts/config_master.plist config/config_1050_G1_KabyLake-R.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_1050_G1_KabyLake-R.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" config/config_1050_G1_KabyLake-R.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Kabylake_dp.plist config/config_1050_G1_KabyLake-R.plist printf "\n" printf "!! creating config/config_4x0_G4_Kabylake.plist\n" cp config_parts/config_master.plist config/config_4x0_G4_Kabylake.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_4x0_G4_Kabylake.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" config/config_4x0_G4_Kabylake.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Kabylake_hdmi.plist config/config_4x0_G4_Kabylake.plist printf "\n" printf "!! creating config/config_4x0_G5_Kabylake-R.plist\n" cp config/config_4x0_G4_Kabylake.plist config/config_4x0_G5_Kabylake-R.plist printf "\n" printf "!! creating config/config_8x0_G4_Kabylake.plist\n" cp config_parts/config_master.plist config/config_8x0_G4_Kabylake.plist /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" config/config_8x0_G4_Kabylake.plist /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" config/config_8x0_G4_Kabylake.plist ./merge_plist.sh "Devices:Properties" config_parts/config_Kabylake_dp.plist config/config_8x0_G4_Kabylake.plist printf "\n" ================================================ FILE: makefile ================================================ # makefile # # Patches/Installs/Builds DSDT patches for HP ProBook/EliteBook/ZBook # # Created by RehabMan # BUILDDIR=./build HOTPATCH=./hotpatch HACK=$(wildcard $(HOTPATCH)/*.dsl) HACK:=$(subst $(HOTPATCH),$(BUILDDIR),$(HACK)) HACK:=$(subst .dsl,.aml,$(HACK)) HACK:=$(HACK) $(BUILDDIR)/SSDT-IGPUH.aml HACK:=$(HACK) $(BUILDDIR)/SSDT-FANQ.aml $(BUILDDIR)/SSDT-FANRM.aml $(BUILDDIR)/SSDT-FANGRAP.aml # system specfic config.plist PLIST:= \ config/config_4x30.plist config/config_4x40.plist \ config/config_4x0_G0.plist config/config_4x0_G1_Ivy.plist config/config_ZBook_G0.plist \ config/config_8x0_G1_Ivy.plist config/config_9x70m.plist \ config/config_9x80m.plist \ config/config_2x60p.plist config/config_6x60p.plist config/config_8x60p.plist config/config_5x30m.plist \ config/config_6x70p.plist config/config_8x70p.plist config/config_2x70p.plist \ config/config_3x0_G1.plist \ config/config_8x0_G1_Haswell.plist config/config_4x0_G1_Haswell.plist \ config/config_4x0_G2_Haswell.plist config/config_8x0_G2_Haswell.plist \ config/config_4x0_G2_Broadwell.plist config/config_8x0_G2_Broadwell.plist config/config_8x0_G3_Broadwell.plist \ config/config_1020_G1_Broadwell.plist \ config/config_ZBook_G1_Haswell.plist config/config_ZBook_G2_Haswell.plist config/config_ZBook_G2_Broadwell.plist \ config/config_ZBook_G2_Haswell_ALC280.plist \ config/config_ZBook_G3_Skylake.plist \ config/config_4x0_G3_Skylake.plist \ config/config_8x0_G3_Skylake.plist \ config/config_1030_G1_Skylake.plist \ config/config_6x0_G2_Skylake.plist \ config/config_1040_G1_Haswell.plist config/config_6x0_G1_Haswell.plist \ config/config_1040_G3_Skylake.plist config/config_1050_G1_KabyLake-R.plist \ config/config_4x0_G4_Kabylake.plist config/config_4x0_G5_Kabylake-R.plist config/config_8x0_G4_Kabylake.plist .PHONY: all all : $(HACK) $(PLIST) .PHONY: clean clean: rm -f $(HACK) $(PLIST) make_config.sh: makefile echo '#!/bin/bash'>$@ make -n -B -s $(PLIST) >>$@ chmod +x $@ make_acpi.sh: makefile echo '#!/bin/bash'>$@ make -n -B -s $(HACK) >>$@ chmod +x $@ install_acpi_include.sh: makefile echo CORE=\"$(CORE)\">$@ chmod +x $@ .PHONY: force_update force_update: make -B make_config.sh make_acpi.sh make -B install_acpi_include.sh ./find_dependencies.sh >makefile.d # dependencies for model specific SSDTs include makefile.d # generated config.plist files PARTS=config_parts # 4x30s is IDT76d1, HD3000, HDMI, non-Intel USB3 config/config_4x30.plist : $(PARTS)/config_master.plist $(PARTS)/config_HD3000-4000_hdmi.plist $(PARTS)/config_non_Intel_USB3.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:KernelPm false" $@ /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" $@ /usr/libexec/PlistBuddy -c "Set SMBIOS:ProductName MacBookPro8,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_HD3000-4000_hdmi.plist $@ ./merge_plist.sh "KernelAndKextPatches:KextsToPatch" $(PARTS)/config_non_Intel_USB3.plist $@ @printf "\n" # 4x40s is IDT76d9, HD3000 or HD4000, HDMI config/config_4x40.plist : $(PARTS)/config_master.plist $(PARTS)/config_HD3000-4000_hdmi.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_HD3000-4000_hdmi.plist $@ @printf "\n" # 4x0_G0 is IDT 76e0, HD4000, HDMI config/config_4x0_G0.plist : $(PARTS)/config_master.plist $(PARTS)/config_HD3000-4000_hdmi.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_HD3000-4000_hdmi.plist $@ @printf "\n" # 4x0_G1_Ivy is same as 4x0_G0 config/config_4x0_G1_Ivy.plist: config/config_4x0_G0.plist @printf "!! creating $@\n" cp config/config_4x0_G0.plist $@ @printf "\n" # 8x0_G1_Ivy is IDT 76e0, HD4000, DP config/config_8x0_G1_Ivy.plist: $(PARTS)/config_master.plist $(PARTS)/config_HD3000-4000_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_HD3000-4000_dp.plist $@ @printf "\n" # ZBook_G0 is same as 8x0_G1_Ivy config/config_ZBook_G0.plist: config/config_8x0_G1_Ivy.plist @printf "!! creating $@\n" cp config/config_8x0_G1_Ivy.plist $@ @printf "\n" # 9x70m is IDT 76e0, HD4000, DP config/config_9x70m.plist : $(PARTS)/config_master.plist $(PARTS)/config_HD3000-4000_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_HD3000-4000_dp.plist $@ @printf "\n" # 9x80m is ALC280, HD4400, DP config/config_9x80m.plist : $(PARTS)/config_master.plist $(PARTS)/config_Haswell_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir6,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Haswell_dp.plist $@ @printf "\n" # 4x0_G1_Haswell is IDT 76e0, HD4400, HDMI config/config_4x0_G1_Haswell.plist : $(PARTS)/config_master.plist $(PARTS)/config_Haswell_hdmi.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir6,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Haswell_hdmi.plist $@ @printf "\n" # 8x0_G1_Haswell is IDT 76e0, HD4400, DP config/config_8x0_G1_Haswell.plist : $(PARTS)/config_master.plist $(PARTS)/config_Haswell_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir6,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Haswell_dp.plist $@ @printf "\n" # 6x0_G1_Haswell is same as 8x0_G1_Haswell config/config_6x0_G1_Haswell.plist : config/config_8x0_G1_Haswell.plist @printf "!! creating $@\n" cp config/config_8x0_G1_Haswell.plist $@ @printf "\n" # 1040_G1_Haswell is same as 8x0_G1_Haswell config/config_1040_G1_Haswell.plist : config/config_8x0_G1_Haswell.plist @printf "!! creating $@\n" cp config/config_8x0_G1_Haswell.plist $@ @printf "\n" # 6x60p is IDT7605, HD3000, non-Intel USB3, DP config/config_6x60p.plist : $(PARTS)/config_master.plist $(PARTS)/config_HD3000-4000_dp.plist $(PARTS)/config_non_Intel_USB3.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:KernelPm false" $@ /usr/libexec/PlistBuddy -c "Set SMBIOS:ProductName MacBookPro8,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_HD3000-4000_dp.plist $@ ./merge_plist.sh "KernelAndKextPatches:KextsToPatch" $(PARTS)/config_non_Intel_USB3.plist $@ @printf "\n" # 8x60p is same as 6x60p config/config_8x60p.plist : config/config_6x60p.plist @printf "!! creating $@\n" cp config/config_6x60p.plist $@ @printf "\n" # 2x60p is same as 6x60p config/config_2x60p.plist : config/config_6x60p.plist @printf "!! creating $@\n" cp config/config_6x60p.plist $@ @printf "\n" # 5x30m is IDT7605, HD3000, non-Intel USB3, HDMI config/config_5x30m.plist : $(PARTS)/config_master.plist $(PARTS)/config_HD3000-4000_hdmi.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:KernelPm false" $@ /usr/libexec/PlistBuddy -c "Set SMBIOS:ProductName MacBookPro8,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_HD3000-4000_hdmi.plist $@ ./merge_plist.sh "KernelAndKextPatches:KextsToPatch" $(PARTS)/config_non_Intel_USB3.plist $@ @printf "\n" # 6x70p is IDT7605, HD4000, DP config/config_6x70p.plist : $(PARTS)/config_master.plist $(PARTS)/config_HD3000-4000_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_HD3000-4000_dp.plist $@ @printf "\n" # 8x70p is same as 6x70p config/config_8x70p.plist : config/config_6x70p.plist @printf "!! creating $@\n" cp config/config_6x70p.plist $@ @printf "\n" # 2x70p is same as 6x70p config/config_2x70p.plist : config/config_6x70p.plist @printf "!! creating $@\n" cp config/config_6x70p.plist $@ @printf "\n" # 3x0_G1 is IDT7695, HD4000, HDMI config/config_3x0_G1.plist : $(PARTS)/config_master.plist $(PARTS)/config_HD3000-4000_hdmi.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set ACPI:SSDT:Generate:PluginType false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro9,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_HD3000-4000_hdmi.plist $@ @printf "\n" # 4x0_G2_Haswell is ALC282, Haswell, HDMI config/config_4x0_G2_Haswell.plist : $(PARTS)/config_master.plist $(PARTS)/config_Haswell_hdmi.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir6,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Haswell_hdmi.plist $@ @printf "\n" # 8x0_G2_Haswell is ALC282, Haswell, DP config/config_8x0_G2_Haswell.plist: $(PARTS)/config_master.plist $(PARTS)/config_Haswell_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir6,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Haswell_dp.plist $@ @printf "\n" # 4x0_G2_Broadwell is ALC282, Broadwell, HDMI config/config_4x0_G2_Broadwell.plist : $(PARTS)/config_master.plist $(PARTS)/config_Broadwell_hdmi.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir7,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Broadwell_hdmi.plist $@ @printf "\n" # 8x0_G2_Broadwell is ALC280, Broadwell, DP config/config_8x0_G2_Broadwell.plist : $(PARTS)/config_master.plist $(PARTS)/config_Broadwell_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir7,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Broadwell_dp.plist $@ @printf "\n" # 8x0_G3_Broadwell is same as 8x0_G2_Broadwell config/config_8x0_G3_Broadwell.plist : config/config_8x0_G2_Broadwell.plist @printf "!! creating $@\n" cp config/config_8x0_G2_Broadwell.plist $@ @printf "\n" # 1020_G1_Broadwell is ALC286, Broadwell, HDMI config/config_1020_G1_Broadwell.plist : $(PARTS)/config_master.plist $(PARTS)/config_Broadwell_hdmi.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookAir7,2" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Broadwell_hdmi.plist $@ @printf "\n" # ZBook_G2_Haswell is IDT 76e0, Haswell, no external ports for Intel graphics # confirmed here: http://www.tonymacx86.com/el-capitan-laptop-guides/189416-guide-hp-probook-elitebook-zbook-using-clover-uefi-hotpatch-10-11-a-76.html#post1242529 config/config_ZBook_G2_Haswell.plist : $(PARTS)/config_master.plist $(PARTS)/config_Haswell_no_hdmi_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Haswell_no_hdmi_dp.plist $@ @printf "\n" # ZBook_G1_Haswell is same as ZBook_G2_Haswell config/config_ZBook_G1_Haswell.plist : config/config_ZBook_G2_Haswell.plist @printf "!! creating $@\n" cp config/config_ZBook_G2_Haswell.plist $@ @printf "\n" # ZBook_G2_Haswell_ALC280 is ALC280, Haswell, DP config/config_ZBook_G2_Haswell_ALC280.plist : $(PARTS)/config_master.plist $(PARTS)/config_Haswell_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Haswell_dp.plist $@ @printf "\n" # ZBook_G2_Broadwell is ALC280, Broadwell, DP config/config_ZBook_G2_Broadwell.plist : $(PARTS)/config_master.plist $(PARTS)/config_Broadwell_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Broadwell_dp.plist $@ @printf "\n" # ProBook_4x0_G3_Skylake is CX20724, Skylake, HDMI config/config_4x0_G3_Skylake.plist : $(PARTS)/config_master.plist $(PARTS)/config_Skylake_hdmi.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Skylake_hdmi.plist $@ @printf "\n" # ProBook_8x0_G3_Skylake is CX20724, Skylake, DP config/config_8x0_G3_Skylake.plist : $(PARTS)/config_master.plist $(PARTS)/config_Skylake_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Skylake_dp.plist $@ @printf "\n" # EliteBook 1030_G1_Skylake is same as 8x0_G3_Skylake config/config_1030_G1_Skylake.plist : config/config_8x0_G3_Skylake.plist @printf "!! creating $@\n" cp config/config_8x0_G3_Skylake.plist $@ @printf "\n" # ZBook_G3_Skylake is same as 8x0_G3_Skylake config/config_ZBook_G3_Skylake.plist : config/config_8x0_G3_Skylake.plist @printf "!! creating $@\n" cp config/config_8x0_G3_Skylake.plist $@ @printf "\n" # ProBook_6x0_G2_Skylake is CX20724, Skylake, DP config/config_6x0_G2_Skylake.plist : $(PARTS)/config_master.plist $(PARTS)/config_Skylake_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Skylake_dp.plist $@ @printf "\n" # EliteBook 1040_G3_Skylake is CX20724, Skylake, DP config/config_1040_G3_Skylake.plist : $(PARTS)/config_master.plist $(PARTS)/config_Skylake_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Skylake_dp.plist $@ @printf "\n" #REVIEW: CX20724 is not correct for the 1050 (it uses a new audio codec) # EliteBook 1050_G1_KabyLake-R is CX20724, KabyLake-R, DP config/config_1050_G1_KabyLake-R.plist : $(PARTS)/config_master.plist $(PARTS)/config_Kabylake_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Kabylake_dp.plist $@ @printf "\n" # ProBook_4x0_G4_Kabylake is CX8200, Kabylake, HDMI config/config_4x0_G4_Kabylake.plist : $(PARTS)/config_master.plist $(PARTS)/config_Kabylake_hdmi.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Kabylake_hdmi.plist $@ @printf "\n" # ProBook_4x0_G5_Kabylake-R is same as 4x0_G4_Kabylake config/config_4x0_G5_Kabylake-R.plist : config/config_4x0_G4_Kabylake.plist @printf "!! creating $@\n" cp config/config_4x0_G4_Kabylake.plist $@ @printf "\n" # EliteBook_8x0_G4_Kabylake is CX8200, Kabylake, DP config/config_8x0_G4_Kabylake.plist : $(PARTS)/config_master.plist $(PARTS)/config_Kabylake_dp.plist @printf "!! creating $@\n" cp $(PARTS)/config_master.plist $@ /usr/libexec/PlistBuddy -c "Set KernelAndKextPatches:AppleIntelCPUPM false" $@ /usr/libexec/PlistBuddy -c "Set :SMBIOS:ProductName MacBookPro11,1" $@ ./merge_plist.sh "Devices:Properties" $(PARTS)/config_Kabylake_dp.plist $@ @printf "\n" # new hotpatch SSDTs IASLOPTS=-vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr # note: "-oe" is undocumented flag to turn off external opcode in iasl AML compilation result # Snow Leopard cannot handle SSDTs with the external opcode, so Snow Leopard users must enable this flag #IASLOPTS:=$(IASLOPTS) -oe $(BUILDDIR)/%.aml : $(HOTPATCH)/%.dsl iasl $(IASLOPTS) -p $@ $< $(BUILDDIR)/SSDT-IGPU.aml : $(HOTPATCH)/SSDT-IGPU.dsl $(HOTPATCH)/SSDT-PNLF.asl $(BUILDDIR)/SSDT-IGPUH.aml : $(HOTPATCH)/SSDT-IGPU.dsl $(HOTPATCH)/SSDT-PNLF.asl iasl -D HIRES $(IASLOPTS) -p $@ $< $(BUILDDIR)/SSDT-FANQ.aml : $(HOTPATCH)/SSDT-FANQ.dsl iasl -D QUIET $(IASLOPTS) -p $@ $< $(BUILDDIR)/SSDT-FANRM.aml : $(HOTPATCH)/SSDT-FANQ.dsl iasl -D REHABMAN $(IASLOPTS) -p $@ $< $(BUILDDIR)/SSDT-FANGRAP.aml : $(HOTPATCH)/SSDT-FANQ.dsl iasl -D GRAPPLER $(IASLOPTS) -p $@ $< #EOF ================================================ FILE: makefile.d ================================================ # generated with: ./find_dependencies.sh build/SSDT-1020G1b.aml : hotpatch/SSDT-1020G1b.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/ALC286_HDEF.asl hotpatch/include/ALC286_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/enable_mouse.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-1020-G1.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G2.asl hotpatch/include/disable_EH01.asl build/SSDT-1030G1s.aml : hotpatch/SSDT-1030G1s.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEG0_PEGP_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/CX20724_HDEF.asl hotpatch/include/disable_HECI.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/enable_mouse.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-1030-G1.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G4.asl hotpatch/SSDT-USBX.asl hotpatch/SSDT-USWE.asl build/SSDT-1040G1h.aml : hotpatch/SSDT-1040G1h.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76e0_HDEF.asl hotpatch/include/IDT_76e0_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY102.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl build/SSDT-1040G3s.aml : hotpatch/SSDT-1040G3s.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_PEGP_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/CX20724_HDEF.asl hotpatch/include/disable_HECI.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/enable_mouse.asl hotpatch/include/key86_data.asl hotpatch/SSDT-KEY102.asl hotpatch/SSDT-USB-1040-G3.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G4.asl hotpatch/SSDT-USBX.asl hotpatch/SSDT-USWE.asl build/SSDT-1050G1k.aml : hotpatch/SSDT-1050G1k.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_PEGP_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/CX20724_HDEF.asl hotpatch/include/disable_HECI.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/enable_mouse.asl hotpatch/include/key86_data.asl hotpatch/SSDT-KEY102.asl hotpatch/SSDT-USB-1050-G1.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G4.asl hotpatch/SSDT-USBX.asl hotpatch/SSDT-USWE.asl build/SSDT-2x60.aml : hotpatch/SSDT-2x60.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_7605_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY102.asl hotpatch/SSDT-USB-6x60.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl hotpatch/SSDT-BATT.asl build/SSDT-2x70.aml : hotpatch/SSDT-2x70.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_7605_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-2x70.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl build/SSDT-3x0G1.aml : hotpatch/SSDT-3x0G1.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_7695_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl build/SSDT-4230.aml : hotpatch/SSDT-4230.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76d1_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-4x30s.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl hotpatch/SSDT-BATT.asl build/SSDT-450G1h.aml : hotpatch/SSDT-450G1h.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76e0_HDEF.asl hotpatch/include/IDT_76e0_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-4x0-G1.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl hotpatch/include/disable_EH01-EH02.asl build/SSDT-4x0G0.aml : hotpatch/SSDT-4x0G0.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76e0_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-4x0-G0.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl build/SSDT-4x0G1h.aml : hotpatch/SSDT-4x0G1h.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76e0_HDEF.asl hotpatch/include/IDT_76e0_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-4x0-G1.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl hotpatch/include/disable_EH01.asl build/SSDT-4x0G1i.aml : hotpatch/SSDT-4x0G1i.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76e0_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl build/SSDT-4x0G2b.aml : hotpatch/SSDT-4x0G2b.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/ALC282_HDEF.asl hotpatch/include/ALC282_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-4x0-G2.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G2.asl hotpatch/include/disable_EH01.asl build/SSDT-4x0G2h.aml : hotpatch/SSDT-4x0G2h.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/ALC282_HDEF.asl hotpatch/include/ALC282_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-4x0-G2.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G2.asl hotpatch/include/disable_EH01.asl build/SSDT-4x0G3s.aml : hotpatch/SSDT-4x0G3s.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP01_PEGP_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/CX20724_HDEF.asl hotpatch/include/disable_HECI.asl hotpatch/include/key86_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/key86_data.asl hotpatch/SSDT-KEY102.asl hotpatch/SSDT-USB-4x0-G3.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G4.asl hotpatch/SSDT-USBX.asl hotpatch/SSDT-ALS0.asl hotpatch/SSDT-USWE.asl build/SSDT-4x0G4k.aml : hotpatch/SSDT-4x0G4k.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP01_PXSX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/CX8200_HDEF.asl hotpatch/include/disable_HECI.asl hotpatch/include/key86_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/key86_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-4x0-G4.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G4.asl hotpatch/SSDT-USBX.asl hotpatch/SSDT-ALS0.asl hotpatch/SSDT-USWE.asl build/SSDT-4x30.aml : hotpatch/SSDT-4x30.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76d1_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY102.asl hotpatch/SSDT-USB-4x30s.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl hotpatch/SSDT-BATT.asl build/SSDT-4x40.aml : hotpatch/SSDT-4x40.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76d9_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY102.asl hotpatch/SSDT-USB-4x40s.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl build/SSDT-5x30.aml : hotpatch/SSDT-5x30.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_7605_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-BATT.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl build/SSDT-6x0G1h.aml : hotpatch/SSDT-6x0G1h.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76e0_HDEF.asl hotpatch/include/IDT_76e0_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-6x0-G1.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl hotpatch/include/disable_EH01-EH02.asl build/SSDT-6x0G2s.aml : hotpatch/SSDT-6x0G2s.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_PEGP_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/CX20724_HDEF.asl hotpatch/include/disable_HECI.asl hotpatch/include/key86_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/key86_data.asl hotpatch/SSDT-KEY102.asl hotpatch/SSDT-USB-640-G2.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G2.asl hotpatch/SSDT-USBX.asl hotpatch/SSDT-ALS0.asl hotpatch/SSDT-USWE.asl build/SSDT-6x60.aml : hotpatch/SSDT-6x60.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_7605_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-6x60.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl hotpatch/SSDT-BATT.asl build/SSDT-6x70.aml : hotpatch/SSDT-6x70.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_7605_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-6x70.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl build/SSDT-8x0G1h.aml : hotpatch/SSDT-8x0G1h.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76e0_HDEF.asl hotpatch/include/IDT_76e0_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-8x0-G1.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl hotpatch/include/disable_EH01.asl build/SSDT-8x0G1i.aml : hotpatch/SSDT-8x0G1i.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76e0_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY102.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl build/SSDT-8x0G2b.aml : hotpatch/SSDT-8x0G2b.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/ALC280_HDEF.asl hotpatch/include/ALC280_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-8x0-G2.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G2.asl hotpatch/include/disable_EH01.asl build/SSDT-8x0G2h.aml : hotpatch/SSDT-8x0G2h.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/ALC282_HDEF.asl hotpatch/include/ALC282_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY102.asl hotpatch/SSDT-USB-8x0-G2.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G2.asl hotpatch/include/disable_EH01.asl build/SSDT-8x0G3b.aml : hotpatch/SSDT-8x0G3b.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/ALC280_HDEF.asl hotpatch/include/ALC280_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-8x0-G2.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G3.asl hotpatch/include/disable_EH01.asl build/SSDT-8x0G3s.aml : hotpatch/SSDT-8x0G3s.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_PEGP_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/CX20724_HDEF.asl hotpatch/include/disable_HECI.asl hotpatch/include/key86_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/key86_data.asl hotpatch/SSDT-KEY102.asl hotpatch/SSDT-USB-8x0-G3.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G4.asl hotpatch/SSDT-USBX.asl hotpatch/SSDT-USWE.asl build/SSDT-8x0G4k.aml : hotpatch/SSDT-8x0G4k.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_PXSX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/CX8200_HDEF.asl hotpatch/include/disable_HECI.asl hotpatch/include/key86_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/key86_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-8x0-G4.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G4.asl hotpatch/SSDT-USBX.asl hotpatch/SSDT-USWE.asl build/SSDT-8x60.aml : hotpatch/SSDT-8x60.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_7605_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-8x60.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl hotpatch/SSDT-BATT.asl build/SSDT-8x70.aml : hotpatch/SSDT-8x70.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_7605_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-8x70.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl build/SSDT-9x70.aml : hotpatch/SSDT-9x70.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76e0_HDEF.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-9x70.asl hotpatch/SSDT-EH01.asl hotpatch/SSDT-EH02.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl build/SSDT-9x80.aml : hotpatch/SSDT-9x80.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/ALC280_HDEF.asl hotpatch/include/ALC280_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-9x80.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl hotpatch/include/disable_EH01.asl build/SSDT-zbG1h.aml : hotpatch/SSDT-zbG1h.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76e0_HDEF.asl hotpatch/include/IDT_76e0_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-ZBook-G1.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT.asl hotpatch/include/disable_EH01.asl build/SSDT-zbG2b.aml : hotpatch/SSDT-zbG2b.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/ALC280_HDEF.asl hotpatch/include/ALC280_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-ZBook-G2.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G2.asl hotpatch/include/disable_EH01.asl build/SSDT-zbG2h.aml : hotpatch/SSDT-zbG2h.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEGP_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/IDT_76e0_HDEF.asl hotpatch/include/IDT_76e0_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-ZBook-G2.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G2.asl hotpatch/include/disable_EH01-EH02.asl build/SSDT-zbG2hA.aml : hotpatch/SSDT-zbG2hA.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-RP05_DGFX_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/ALC280_HDEF.asl hotpatch/include/ALC280_HDAU.asl hotpatch/include/standard_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-ZBook-G2.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G2.asl hotpatch/include/disable_EH01-EH02.asl build/SSDT-zbG3s.aml : hotpatch/SSDT-zbG3s.dsl hotpatch/SSDT-RMCF.asl hotpatch/SSDT-PEG0_PEGP_RDSS.asl hotpatch/SSDT-HACK.asl hotpatch/include/CX20724_HDEF.asl hotpatch/include/disable_HECI.asl hotpatch/include/key86_PS2K.asl hotpatch/include/standard_PS2K_data.asl hotpatch/include/key86_data.asl hotpatch/SSDT-KEY87.asl hotpatch/SSDT-USB-ZBook-G3.asl hotpatch/SSDT-XHC.asl hotpatch/SSDT-BATT-G4.asl hotpatch/SSDT-USBX.asl hotpatch/SSDT-USWE.asl ================================================ FILE: merge_plist.sh ================================================ #!/bin/bash # set -x # $1 is keypath to merge # $2 is source plist # #3 is dest plist /usr/libexec/PlistBuddy -x -c "Print \"$1\"" "$2" >/tmp/org_rehabman_temp.plist /usr/libexec/PlistBuddy -c "Merge /tmp/org_rehabman_temp.plist \"$1\"" "$3" ================================================ FILE: pre-patch_hda.sh ================================================ #!/bin/bash #set -x unpatched=/System/Library/Extensions echo "Type your password if requested (to mount EFI partition, and to patch $unpatched/AppleHDA.kext binary)" # AppleHDA patching function function prepatchAppleHDAbinary() { echo "Patching $unpatched/AppleHDA.kext..." efi=`sudo ./mount_efi.sh /` # patch binary using AppleHDA patches in config.plist/KernelAndKextPatches/KextsToPatch bin=$unpatched/AppleHDA.kext/Contents/MacOS/AppleHDA config=$efi/EFI/CLOVER/config.plist echo $config for ((patch=0; 1; patch++)); do comment=`/usr/libexec/PlistBuddy -c "Print :KernelAndKextPatches:KextsToPatch:$patch:Comment" $config 2>&1` if [[ "$comment" == *"Does Not Exist"* ]]; then break fi name=`/usr/libexec/PlistBuddy -c "Print :KernelAndKextPatches:KextsToPatch:$patch:Name" $config 2>&1` if [[ "$name" == "com.apple.driver.AppleHDA" ]]; then disabled=`/usr/libexec/PlistBuddy -c "Print :KernelAndKextPatches:KextsToPatch:$patch:Disabled" $config 2>&1` if [[ "$disabled" != "true" ]]; then printf "Comment: %s\n" "$comment" find=`/usr/libexec/PlistBuddy -x -c "Print :KernelAndKextPatches:KextsToPatch:$patch:Find" $config 2>&1` repl=`/usr/libexec/PlistBuddy -x -c "Print :KernelAndKextPatches:KextsToPatch:$patch:Replace" $config` find=$([[ "$find" =~ \(.*)\<\/data\> ]] && echo ${BASH_REMATCH[1]}) repl=$([[ "$repl" =~ \(.*)\<\/data\> ]] && echo ${BASH_REMATCH[1]}) find=`echo $find | base64 --decode | xxd -p | tr '\n' ' '` repl=`echo $repl | base64 --decode | xxd -p | tr '\n' ' '` sudo ./tools/binpatch "$find" "$repl" $bin fi fi done echo "Done." } # patch the binary prepatchAppleHDAbinary # update kernel cache sudo touch /System/Library/Extensions && sudo kextcache -u /