Jump to content

Lenovo y580 - need help with sleep/shutdown


strus
 Share

10 posts in this topic

Recommended Posts

I recently installed and configured Sierra 10.12 on Lenovo y580. I have a problem with sleep/shutdown not working (laptop just restarts), and I need help with it, because I don't know what else I can do:

Configuration:

  • 1366x768 display
  • Intel Core i5-3230M
  • Intel HD4000
  • Nvidia GTX660M
  • Audio RealTek ALC272

What I managed to make work:

  • LAN
  • USB 3.0
  • Bluetooth
  • Display
  • HD4000
  • Battery
  • Power Management
  • Webcam
  • Audio
  • Display backlight
  • Keyboard and touchpad

If no one knows how to fix this I would appreciate a tip how to acquire logs from sleep/shutdown proccess, because I searched all system logs I could find and I cannot find anything useful, I suppose I am missing something.
 

Below are my configs, used kexts, DSDT fixes etc.:

Kexts
YyCCj3p.png

Clover's config.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>#DisableDrivers</key>
	<array>
		<string>CsmVideoDxe</string>
		<string>VBoxExt4</string>
	</array>
	<key>ACPI</key>
	<dict>
		<key>#DropMCFG</key>
		<false/>
		<key>#PatchAPIC</key>
		<false/>
		<key>#ResetAddress</key>
		<string>0x64</string>
		<key>#ResetValue</key>
		<string>0xFE</string>
		<key>#SortedOrder</key>
		<array>
			<string>SSDT-3.aml</string>
			<string>SSDT-1.aml</string>
			<string>SSDT-2.aml</string>
		</array>
		<key>#smartUPS</key>
		<false/>
		<key>DSDT</key>
		<dict>
			<key>#DropOEM_DSM</key>
			<dict>
				<key>ATI</key>
				<true/>
				<key>Firewire</key>
				<true/>
				<key>HDA</key>
				<true/>
				<key>HDMI</key>
				<true/>
				<key>IDE</key>
				<true/>
				<key>IntelGFX</key>
				<true/>
				<key>LAN</key>
				<true/>
				<key>LPC</key>
				<false/>
				<key>NVidia</key>
				<true/>
				<key>SATA</key>
				<true/>
				<key>SmBUS</key>
				<false/>
				<key>USB</key>
				<true/>
				<key>WIFI</key>
				<true/>
			</dict>
			<key>#Patches</key>
			<array>
				<dict>
					<key>Comment</key>
					<string>Remove battery device from desktop</string>
					<key>Find</key>
					<data>
					W4IeQkFUMQhfSElEDEHQDAoIX1VJRAEUCF9T
					VEEApAA=
					</data>
					<key>Replace</key>
					<data>
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>Add _SUN property for GIGE</string>
					<key>Find</key>
					<data>
					UFhTWAhfQURSAAhfUFJXEgYC
					</data>
					<key>Replace</key>
					<data>
					UFhTWAhfQURSAAhfU1VOCgQIX1BSVxIGAg==
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>Rename GFX0 to IGPU</string>
					<key>Find</key>
					<data>
					R0ZYMA==
					</data>
					<key>Replace</key>
					<data>
					SUdQVQ==
					</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>Rename HDEF to AZAL</string>
					<key>Find</key>
					<data>
					SERFRg==
					</data>
					<key>Replace</key>
					<data>
					QVpBTA==
					</data>
				</dict>
			</array>
			<key>#Rtc8Allowed</key>
			<false/>
			<key>#SuspendOverride</key>
			<false/>
			<key>Debug</key>
			<false/>
			<key>Fixes</key>
			<dict>
				<key>AddDTGP_0001</key>
				<true/>
				<key>AddHDMI_8000000</key>
				<true/>
				<key>AddIMEI_80000</key>
				<false/>
				<key>AddMCHC_0008</key>
				<false/>
				<key>AddPNLF_1000000</key>
				<true/>
				<key>DeleteUnused_400000</key>
				<true/>
				<key>FIX_ACST_4000000</key>
				<true/>
				<key>FIX_ADP1_800000</key>
				<true/>
				<key>FIX_INTELGFX_100000</key>
				<true/>
				<key>FIX_RTC_20000</key>
				<true/>
				<key>FIX_S3D_2000000</key>
				<true/>
				<key>FIX_TMR_40000</key>
				<true/>
				<key>FIX_WAK_200000</key>
				<true/>
				<key>FakeLPC_0020</key>
				<false/>
				<key>FixAirport_4000</key>
				<true/>
				<key>FixDarwin_0002</key>
				<true/>
				<key>FixDisplay_0100</key>
				<true/>
				<key>FixFirewire_0800</key>
				<true/>
				<key>FixHDA_8000</key>
				<true/>
				<key>FixHPET_0010</key>
				<true/>
				<key>FixIDE_0200</key>
				<false/>
				<key>FixIPIC_0040</key>
				<true/>
				<key>FixLAN_2000</key>
				<true/>
				<key>FixRegions_10000000</key>
				<true/>
				<key>FixSATA_0400</key>
				<false/>
				<key>FixSBUS_0080</key>
				<true/>
				<key>FixShutdown_0004</key>
				<true/>
				<key>FixUSB_1000</key>
				<true/>
				<key>NewWay_80000000</key>
				<true/>
			</dict>
			<key>Name</key>
			<string>DSDT.aml</string>
			<key>ReuseFFFF</key>
			<false/>
		</dict>
		<key>DisableASPM</key>
		<false/>
		<key>DropTables</key>
		<array>
			<dict>
				<key>Signature</key>
				<string>DMAR</string>
			</dict>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>CpuPm</string>
			</dict>
			<dict>
				<key>#Length</key>
				<integer>720</integer>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>Cpu0Ist</string>
			</dict>
		</array>
		<key>HaltEnabler</key>
		<true/>
		<key>SSDT</key>
		<dict>
			<key>#C3Latency</key>
			<string>0x03E7</string>
			<key>#DoubleFirstState</key>
			<true/>
			<key>#DropOem</key>
			<true/>
			<key>#EnableC2</key>
			<false/>
			<key>#EnableC4</key>
			<false/>
			<key>#EnableC6</key>
			<true/>
			<key>#EnableC7</key>
			<false/>
			<key>#MaxMultiplier</key>
			<integer>12</integer>
			<key>#MinMultiplier</key>
			<integer>8</integer>
			<key>#PLimitDict</key>
			<integer>1</integer>
			<key>#PluginType</key>
			<integer>0</integer>
			<key>#UnderVoltStep</key>
			<integer>1</integer>
			<key>#UseSystemIO</key>
			<false/>
			<key>Generate</key>
			<dict>
				<key>CStates</key>
				<true/>
				<key>PStates</key>
				<true/>
			</dict>
		</dict>
	</dict>
	<key>Boot</key>
	<dict>
		<key>##Arguments</key>
		<string>kext-dev-mode=1 rootless=0</string>
		<key>#Arguments</key>
		<string>-v arch=x86_64 slide=0 darkwake=0</string>
		<key>#LegacyBiosDefaultEntry</key>
		<integer>0</integer>
		<key>#XMPDetection</key>
		<string>-1</string>
		<key>Arguments</key>
		<string>-v -alcbeta</string>
		<key>Debug</key>
		<false/>
		<key>DefaultLoader</key>
		<string>boot.efi</string>
		<key>DefaultVolume</key>
		<string>LastBootedVolume</string>
		<key>DisableCloverHotkeys</key>
		<false/>
		<key>Fast</key>
		<false/>
		<key>Legacy</key>
		<string>PBR</string>
		<key>NeverDoRecovery</key>
		<true/>
		<key>NeverHibernate</key>
		<false/>
		<key>SkipHibernateTimeout</key>
		<false/>
		<key>StrictHibernate</key>
		<false/>
		<key>Timeout</key>
		<integer>5</integer>
	</dict>
	<key>BootGraphics</key>
	<dict>
		<key>#DefaultBackgroundColor</key>
		<string>0xF0F0F0</string>
		<key>EFILoginHiDPI</key>
		<integer>1</integer>
		<key>UIScale</key>
		<integer>1</integer>
	</dict>
	<key>CPU</key>
	<dict>
		<key>#BusSpeedkHz</key>
		<integer>133330</integer>
		<key>#FrequencyMHz</key>
		<integer>3140</integer>
		<key>#HWPEnable</key>
		<true/>
		<key>#QPI</key>
		<integer>4800</integer>
		<key>#SavingMode</key>
		<integer>7</integer>
		<key>#TDP</key>
		<integer>95</integer>
		<key>#TurboDisable</key>
		<true/>
		<key>#Type</key>
		<string>0x0201</string>
		<key>#UseARTFrequency</key>
		<true/>
	</dict>
	<key>Devices</key>
	<dict>
		<key>#AddProperties</key>
		<array>
			<dict>
				<key>Device</key>
				<string>NVidia</string>
				<key>Key</key>
				<string>AAPL,HasPanel</string>
				<key>Value</key>
				<data>
				AQAAAA==
				</data>
			</dict>
			<dict>
				<key>Device</key>
				<string>NVidia</string>
				<key>Key</key>
				<string>AAPL,Haslid</string>
				<key>Value</key>
				<data>
				AQAAAA==
				</data>
			</dict>
		</array>
		<key>#ForceHPET</key>
		<false/>
		<key>#Inject</key>
		<false/>
		<key>#Properties</key>
		<string>7a00000001000000010000006e0000000200000002010c00d041030a0000000001010600001b7fff040028000000500069006e0043006f006e00660069006700750072006100740069006f006e00730000000800000001080100180000006c00610079006f00750074002d00690064000000080000000c000000</string>
		<key>#SetIntelBacklight</key>
		<false/>
		<key>Audio</key>
		<dict>
			<key>Inject</key>
			<string>29</string>
		</dict>
		<key>FakeID</key>
		<dict>
			<key>#ATI</key>
			<string>0x67501002</string>
			<key>#IMEI</key>
			<string>0x1e208086</string>
			<key>#IntelGFX</key>
			<string>0x01268086</string>
			<key>#LAN</key>
			<string>0x100E8086</string>
			<key>#NVidia</key>
			<string>0x11de10de</string>
			<key>#SATA</key>
			<string>0x25628086</string>
			<key>#WIFI</key>
			<string>0x431214e4</string>
			<key>#XHCI</key>
			<string>0x0</string>
		</dict>
		<key>NoDefaultProperties</key>
		<false/>
		<key>USB</key>
		<dict>
			<key>AddClockID</key>
			<true/>
			<key>FixOwnership</key>
			<true/>
			<key>HighCurrent</key>
			<false/>
			<key>Inject</key>
			<true/>
		</dict>
		<key>UseIntelHDMI</key>
		<true/>
	</dict>
	<key>GUI</key>
	<dict>
		<key>#ConsoleMode</key>
		<string>0</string>
		<key>#Custom</key>
		<dict>
			<key>Entries</key>
			<array>
				<dict>
					<key>AddArguments</key>
					<string>-v</string>
					<key>Arguments</key>
					<string>Kernel=mach_kernel</string>
					<key>Disabled</key>
					<true/>
					<key>Hidden</key>
					<false/>
					<key>Hotkey</key>
					<string>M</string>
					<key>InjectKexts</key>
					<true/>
					<key>NoCaches</key>
					<false/>
					<key>Path</key>
					<string>\EFI\BOOT\BOOTX64.efi</string>
					<key>Title</key>
					<string>MyCustomEntry</string>
					<key>Type</key>
					<string>OSXRecovery</string>
					<key>Volume</key>
					<string>D68F1885-571C-4441-8DD5-F14803EFEF54</string>
				</dict>
				<dict>
					<key>Hidden</key>
					<false/>
					<key>InjectKexts</key>
					<true/>
					<key>NoCaches</key>
					<false/>
					<key>SubEntries</key>
					<array>
						<dict>
							<key>AddArguments</key>
							<string>-v</string>
							<key>Title</key>
							<string>Boot OS X 10.8.5 (12F36) Mountain Lion in Verbose Mode</string>
						</dict>
					</array>
					<key>Title</key>
					<string>OS X 10.8.5 (12F36) Mountain Lion</string>
					<key>Type</key>
					<string>OSX</string>
					<key>Volume</key>
					<string>454794AC-760D-46E8-8F77-D6EB23D2FD32</string>
				</dict>
			</array>
			<key>Legacy</key>
			<array>
				<dict>
					<key>Disabled</key>
					<true/>
					<key>Hidden</key>
					<false/>
					<key>Hotkey</key>
					<string>L</string>
					<key>Title</key>
					<string>MyLegacyEntry</string>
					<key>Type</key>
					<string>Windows</string>
					<key>Volume</key>
					<string>89433CD3-21F2-4D3C-95FC-722C48066D3A</string>
				</dict>
			</array>
			<key>Tool</key>
			<array>
				<dict>
					<key>Arguments</key>
					<string>-b</string>
					<key>Disabled</key>
					<false/>
					<key>Hidden</key>
					<false/>
					<key>Hotkey</key>
					<string>S</string>
					<key>Path</key>
					<string>\EFI\CLOVER\TOOLS\Shell64-v1.efi</string>
					<key>Title</key>
					<string>MyCustomShell</string>
					<key>Volume</key>
					<string>D68F1885-571C-4441-8DD5-F14803EFEF54</string>
				</dict>
			</array>
		</dict>
		<key>#CustomIcons</key>
		<false/>
		<key>#Hide</key>
		<array>
			<string>Windows</string>
			<string>BOOTX64.EFI</string>
		</array>
		<key>#Language</key>
		<string>ru:0</string>
		<key>#Mouse</key>
		<dict>
			<key>Enabled</key>
			<true/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>2</integer>
		</dict>
		<key>#Scan</key>
		<dict>
			<key>Entries</key>
			<true/>
			<key>Legacy</key>
			<false/>
			<key>Tool</key>
			<true/>
		</dict>
		<key>#TextOnly</key>
		<false/>
		<key>ScreenResolution</key>
		<string>1280x1024</string>
		<key>Theme</key>
		<string>embedded</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>#Connectors</key>
		<array/>
		<key>#DualLink</key>
		<integer>0</integer>
		<key>#FBName</key>
		<string>Makakakakala</string>
		<key>#LoadVBios</key>
		<false/>
		<key>#NVCAP</key>
		<string>04000000000003000C0000000000000A00000000</string>
		<key>#NvidiaGeneric</key>
		<true/>
		<key>#NvidiaSingle</key>
		<false/>
		<key>#PatchVBios</key>
		<false/>
		<key>#PatchVBiosBytes</key>
		<array>
			<dict>
				<key>Find</key>
				<data>
				gAeoAqAF
				</data>
				<key>Replace</key>
				<data>
				gAeoAjgE
				</data>
			</dict>
		</array>
		<key>#VRAM</key>
		<integer>1024</integer>
		<key>#VideoPorts</key>
		<integer>2</integer>
		<key>#display-cfg</key>
		<string>03010300FFFF0001</string>
		<key>EDID</key>
		<dict>
			<key>Custom</key>
			<data>
			AP///////wAGEPKcAAAAABoVAQSVGg54Au8Fl1dUkiciUFQAAAAB
			AQEBAQEBAQEBAQEBAQEBOB1W1FAAFjAwICUAWMIQAAAZAAAA/ABD
			b2xvciBMQ0QKICAgAAAA/gBTQU1TVU5HCiBMo0FUAAAA/gBMVE4x
			NTZBVDI0TDAxABM=
			</data>
			<key>Inject</key>
			<true/>
			<key>ProductID</key>
			<string>0x9CF2</string>
			<key>VendorID</key>
			<string>0x0610</string>
		</dict>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<true/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>ig-platform-id</key>
		<string>0x01660003</string>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>#ATIConnectorsController</key>
		<string>6000</string>
		<key>#ATIConnectorsData</key>
		<string>000400000403000000010000210302040400000014020000000100000000040310000000100000000001000000000001</string>
		<key>#ATIConnectorsPatch</key>
		<string>040000001402000000010000000004040004000004030000000100001102010500000000000000000000000000000000</string>
		<key>#FakeCPUID</key>
		<string>0x010676</string>
		<key>#KextsToPatch</key>
		<array>
			<dict>
				<key>Disabled</key>
				<true/>
				<key>Find</key>
				<data>
				SGVhZHBob25lcwA=
				</data>
				<key>Name</key>
				<string>VoodooHDA</string>
				<key>Replace</key>
				<data>
				VGVsZXBob25lcwA=
				</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>Patch_to_not_load_this_driver</string>
				<key>Find</key>
				<string>0x04020000</string>
				<key>InfoPlistPatch</key>
				<true/>
				<key>Name</key>
				<string>AppleHDAController</string>
				<key>Replace</key>
				<string>0x44220000</string>
			</dict>
			<dict>
				<key>Comment</key>
				<string>Make all drives to be internal</string>
				<key>Find</key>
				<data>
				RXh0ZXJuYWw=
				</data>
				<key>Name</key>
				<string>AppleAHCIPort</string>
				<key>Replace</key>
				<data>
				SW50ZXJuYWw=
				</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>TRIM function for non-Apple SSDs</string>
				<key>Find</key>
				<data>
				QVBQTEUgU1NEAA==
				</data>
				<key>Name</key>
				<string>IOAHCIBlockStorage</string>
				<key>Replace</key>
				<data>
				AAAAAAAAAAAAAA==
				</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>Second Stage patch 1</string>
				<key>Find</key>
				<data>
				hcB0XUg=
				</data>
				<key>Name</key>
				<string>IOGraphicsFamily</string>
				<key>Replace</key>
				<data>
				McB0W0g=
				</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>Second Stage patch 2</string>
				<key>Find</key>
				<data>
				QYjE6wM=
				</data>
				<key>Name</key>
				<string>IOGraphicsFamily</string>
				<key>Replace</key>
				<data>
				QYjE6yM=
				</data>
			</dict>
		</array>
		<key>AppleRTC</key>
		<true/>
		<key>AsusAICPUPM</key>
		<true/>
		<key>Debug</key>
		<false/>
		<key>ForceKextsToLoad</key>
		<array>
			<string>\System\Library\Extensions\IONetworkingFamily.kext</string>
		</array>
		<key>KernelCpu</key>
		<false/>
		<key>KernelHaswellE</key>
		<false/>
		<key>KernelLapic</key>
		<false/>
		<key>KernelPm</key>
		<false/>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>BooterConfig</key>
		<string>0x28</string>
		<key>CsrActiveConfig</key>
		<string>0x67</string>
		<key>MLB</key>
		<string>C02032109R5DC771H</string>
		<key>ROM</key>
		<string>edited</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>#BoardType</key>
		<integer>10</integer>
		<key>#BoardVersion</key>
		<string>Proto1</string>
		<key>#ChassisAssetTag</key>
		<string>LatitudeD420</string>
		<key>#ChassisManufacturer</key>
		<string>Apple Inc.</string>
		<key>#ChassisType</key>
		<integer>16</integer>
		<key>#FirmwareFeatures</key>
		<string>0xC0001403</string>
		<key>#LocationInChassis</key>
		<string>MLB</string>
		<key>#Memory</key>
		<dict>
			<key>Channels</key>
			<integer>2</integer>
			<key>Modules</key>
			<array>
				<dict>
					<key>Frequency</key>
					<integer>1333</integer>
					<key>Part</key>
					<string>C0001403</string>
					<key>Serial</key>
					<string>00001001</string>
					<key>Size</key>
					<integer>4096</integer>
					<key>Slot</key>
					<integer>0</integer>
					<key>Type</key>
					<string>DDR3</string>
					<key>Vendor</key>
					<string>Kingston</string>
				</dict>
				<dict>
					<key>Frequency</key>
					<integer>1333</integer>
					<key>Part</key>
					<string>C0001404</string>
					<key>Serial</key>
					<string>00001002</string>
					<key>Size</key>
					<integer>4096</integer>
					<key>Slot</key>
					<integer>2</integer>
					<key>Type</key>
					<string>DDR3</string>
					<key>Vendor</key>
					<string>Kingston</string>
				</dict>
			</array>
			<key>SlotCount</key>
			<integer>4</integer>
		</dict>
		<key>#Mobile</key>
		<true/>
		<key>#PlatformFeature</key>
		<integer>3</integer>
		<key>#Slots</key>
		<array>
			<dict>
				<key>Device</key>
				<string>ATI</string>
				<key>ID</key>
				<integer>1</integer>
				<key>Name</key>
				<string>PCIe Slot 0</string>
				<key>Type</key>
				<integer>16</integer>
			</dict>
			<dict>
				<key>Device</key>
				<string>WIFI</string>
				<key>ID</key>
				<integer>0</integer>
				<key>Name</key>
				<string>Airport</string>
				<key>Type</key>
				<integer>1</integer>
			</dict>
		</array>
		<key>#Trust</key>
		<true/>
		<key>#Version</key>
		<string>1.0</string>
		<key>BiosReleaseDate</key>
		<string>21/03/12</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>MBP91.88Z.00D3.B00.1203211536</string>
		<key>Board-ID</key>
		<string>Mac-6F01561E16C75D06</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>BoardSerialNumber</key>
		<string>edited</string>
		<key>Family</key>
		<string>MacBook Pro</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>ProductName</key>
		<string>MacBookPro9,2</string>
		<key>SerialNumber</key>
		<string>edited</string>
		<key>SmUUID</key>
		<string>edited</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>#BacklightLevel</key>
		<string>0x0501</string>
		<key>#CustomUUID</key>
		<string>511CE201-1000-4000-9999-010203040506</string>
		<key>#NvidiaWeb</key>
		<false/>
		<key>InjectKexts</key>
		<string>Yes</string>
		<key>InjectSystemID</key>
		<true/>
	</dict>
</dict>
</plist>

DSDT fixes

#NEEDED FOR COMPILATION ERROR
#Maintained by: RehabMan for: Laptop Patches
#fix_TNOT.txt

#  TNOT fix
into definitionblock code_regex External\s+\(\\TNOT\) remove_matched;
into_all all code_regex CondRefOf\s+\(\\TNOT\) replaceall_matched begin CondRefOf(TNOT) end;

#MHCF fix - brought to you by Jessers123 =P
into method label MHCF code_regex And\s+\(Local0,\s+0x60\) replace_matched begin And (Local0, 0x60, Local0) end;

#ALSO NEEDED FOR GRAPHICS
#Maintained by: RehabMan for: Laptop Patches
#graphics_Rename-GFX0.txt

# Note: Most DSDT/SSDTs use GFX0 for the integrated graphics device,
#  but there are few renegades that use VID or AGP1.
#  If your DSDT uses VID or AGP1 instead of GFX0, see the 
#  alternate patch "Rename VID/AGP1 to IGPU"

# sometimes there is already IGPU used for other things
into_all all code_regex IGPU, replaceall_matched begin IGFX, end;

# rename GFX0 -> IGPU for better power management
into_all all code_regex GFX0\. replaceall_matched begin IGPU. end;
into_all all code_regex \.GFX0 replaceall_matched begin .IGPU end;
into_all all code_regex \sGFX0, replaceall_matched begin IGPU, end;
into_all all code_regex \(GFX0 replaceall_matched begin (IGPU end;
into_all all label GFX0 set_label begin IGPU end;
into_all all label _SB.PCI0.GFX0 set_label begin _SB.PCI0.IGPU end;
into_all all label \_SB.PCI0.GFX0 set_label begin \_SB.PCI0.IGPU end;
into_all all label _SB.PCI0.GFX0.DD02 set_label begin _SB.PCI0.IGPU.DD02 end;
into_all all label \_SB.PCI0.GFX0.DD02 set_label begin \_SB.PCI0.IGPU.DD02 end;
into_all all label ^^GFX0 set_label begin ^^IGPU end;
into_all all label ^GFX0 set_label begin ^IGPU end;

#THIS IS ALSO NEEDED FOR GRAPHICS
#Maintained by: RehabMan for: Laptop Patches
#graphics_PNLF_ivy_sandy.txt

# This patch enables the brightness slider in SysPrefs->Displays
# and will also enable activation of sleep mode by closing
# the laptop lid.
#
# This particular version is intended to be used with ACPIBacklight.kext
# although it can also be used with AppleBacklight.kext,
# provided AppleBacklight.kext is patched to recognize your 
# display or an injector is used to set brightness levels.
#
#
# See this thread for more information:
#     http://www.tonymacx86.com/hp-probook-mavericks/121031-native-brightness-working-without-blinkscreen-using-patched-applebacklight-kext.html
# (also read any linked threads)
#

#
# Note: This patch assumes you have already applied "Rename GFX0 to IGPU"
# and that the IGPU device is accessible.  For some computers this should
# be applied to one of the SSDTs, not DSDT.
#

into device label IGPU code_regex (OperationRegion\s\(IGD2,\sPCI_Config[^\}]*\}) remove_matched;
into device label IGPU code_regex (OperationRegion\s\(IGDP,\sPCI_Config[^\}]*\}) replace_matched
begin
%1\n
OperationRegion (IGD2, PCI_Config, 0x10, 4)\n
Field (IGD2, AnyAcc, NoLock, Preserve)\n
{\n
	BAR1,32,\n
}\n
end;

# duplicated for case it is in separate scope
into scope label _SB.PCI0.IGPU code_regex (OperationRegion\s\(IGD2,\sPCI_Config[^\}]*\}) remove_matched;
into scope label _SB.PCI0.IGPU code_regex (OperationRegion\s\(IGDP,\sPCI_Config[^\}]*\}) replace_matched
begin
%1\n
OperationRegion (IGD2, PCI_Config, 0x10, 4)\n
Field (IGD2, AnyAcc, NoLock, Preserve)\n
{\n
	BAR1,32,\n
}\n
end;

into device label PNLF remove_entry;
into definitionblock code_regex . insert
begin
Scope (\_SB)\n
{\n
    Device (PNLF)\n
    {\n
        // normal PNLF declares (note some of this probably not necessary)\n
        Name (_HID, EisaId ("APP0002"))\n
        Name (_CID, "backlight")\n
        Name (_UID, 10)\n
        Name (_STA, 0x0B)\n
        //define hardware register access for brightness\n
        // you can see BAR1 value in RW-Everything under Bus00,02 Intel VGA controler PCI\n
        // Note: Not sure which one is right here... for now, going with BAR1 masked\n
        //OperationRegion (BRIT, SystemMemory, Subtract(\_SB.PCI0.IGPU.BAR1, 4), 0xe1184)\n
        OperationRegion (BRIT, SystemMemory, And(\_SB.PCI0.IGPU.BAR1, Not(0xF)), 0xe1184)\n
        Field (BRIT, AnyAcc, Lock, Preserve)\n
        {\n
            Offset(0x48250),\n
            LEV2, 32,\n
            LEVL, 32,\n
            Offset(0x70040),\n
            P0BL, 32,\n
            Offset(0xc8250),\n
            LEVW, 32,\n
            LEVX, 32,\n
            Offset(0xe1180),\n
            PCHL, 32,\n
        }\n
        // DEB1 special for setting KLVX at runtime...\n
        //Method (DEB1, 1, NotSerialized)\n
        //{\n
        //    Store(Arg0, KLVX)\n
        //}\n
        Name(KPCH, 0)\n
        // _INI deals with differences between native setting and desired\n
        Method (_INI, 0, NotSerialized)\n
        {\n
            Store(PCHL, KPCH)\n
            Store(ShiftRight(KLVX,16), Local0)\n
            Store(ShiftRight(LEVX,16), Local1)\n
            if (LNotEqual(Local0, Local1))\n
            {\n
                Divide(Multiply(LEVL, Local0), Local1,, Local0)\n
                //Store(P0BL, Local1)\n
                //While(LEqual (P0BL, Local1)) {}\n
                Store(Local0, LEVL)\n
                Store(KLVX, LEVX)\n
            }\n
        }\n
        // _BCM/_BQC: set/get for brightness level\n
        Method (_BCM, 1, NotSerialized)\n
        {\n
            // initialize for consistent backlight level before/after sleep\n
            if (LNotEqual(PCHL, KPCH)) { Store(KPCH, PCHL) }\n
            If (LNotEqual(LEVW, 0x80000000)) { Store (0x80000000, LEVW) }\n
            If (LNotEqual(LEVX, KLVX)) { Store (KLVX, LEVX) }\n
            // store new backlight level\n
            Store(Match(_BCL, MGE, Arg0, MTR, 0, 2), Local0)\n
            If (LEqual(Local0, Ones)) { Subtract(SizeOf(_BCL), 1, Local0) }\n
            If (LNotEqual(LEV2, 0x80000000)) { Store(0x80000000, LEV2) }\n
            Store(DerefOf(Index(_BCL, Local0)), LEVL)\n
        }\n
        Method (_BQC, 0, NotSerialized)\n
        {\n
            Store(Match(_BCL, MGE, LEVL, MTR, 0, 2), Local0)\n
            If (LEqual(Local0, Ones)) { Subtract(SizeOf(_BCL), 1, Local0) }\n
            Return(DerefOf(Index(_BCL, Local0)))\n
        }\n
        Method (_DOS, 1, NotSerialized)\n
        {\n
            ^^PCI0.IGPU._DOS(Arg0)\n
        }\n
        // extended _BCM/_BQC for setting "in between" levels\n
        Method (XBCM, 1, NotSerialized)\n
        {\n
            // initialize for consistent backlight level before/after sleep\n
            if (LNotEqual(PCHL, KPCH)) { Store(KPCH, PCHL) }\n
            If (LNotEqual(LEVW, 0x80000000)) { Store (0x80000000, LEVW) }\n
            If (LNotEqual(LEVX, KLVX)) { Store (KLVX, LEVX) }\n
            // store new backlight level\n
            If (LGreater(Arg0, XRGH)) { Store(XRGH, Arg0) }\n
            If (LAnd(Arg0, LLess(Arg0, XRGL))) { Store(XRGL, Arg0) }\n
            If (LNotEqual(LEV2, 0x80000000)) { Store(0x80000000, LEV2) } \n
            Store(Arg0, LEVL)\n
        }\n
        Method (XBQC, 0, NotSerialized)\n
        {\n
            Store(LEVL, Local0)\n
            If (LGreater(Local0, XRGH)) { Store(XRGH, Local0) }\n
            If (LAnd(Local0, LLess(Local0, XRGL))) { Store(XRGL, Local0) }\n
            Return(Local0)\n
        }\n
    }\n
}\n
end;

into device label PNLF code_regex Name\s\(_BCL,\sPackage[^\}]*\}\) remove_matched;
into device label PNLF code_regex Name\s\(XOPT,.*\)\n removeall_matched;
into device label PNLF code_regex Name\s\(XRGL,.*\)\n removeall_matched;
into device label PNLF code_regex Name\s\(XRGH,.*\)\n removeall_matched;
into device label PNLF code_regex Name\s\(KLVX,.*\)\n removeall_matched;
into device label PNLF code_regex . insert
begin
    // Set XOPT bit 0 to disable smooth transitions\n
    // Set XOPT bit 1 to wait for native BacklightHandler\n
    Name (XOPT, 0x06)\n
    // XRGL/XRGH: defines the valid range\n
    Name (XRGL, 40)\n
    Name (XRGH, 1808)\n
    // KLVX is initialization value for LEVX\n
    Name (KLVX, 0x7100000)\n
    // _BCL: returns list of valid brightness levels\n
    // first two entries describe ac/battery power levels\n
    Name (_BCL, Package()\n
    {\n
        1808,\n
        479,\n
        0,\n
        53, 55, 57, 59,\n
        62, 66, 71, 77,\n
        83, 91, 99, 108,\n
        119, 130, 142, 154,\n
        168, 183, 198, 214,\n
        232, 250, 269, 289,\n
        309, 331, 354, 377,\n
        401, 426, 453, 479,\n
        507, 536, 566, 596,\n
        627, 660, 693, 727,\n
        762, 797, 834, 872,\n
        910, 949, 990, 1031,\n
        1073, 1115, 1159, 1204,\n
        1249, 1296, 1343, 1391,\n
        1440, 1490, 1541, 1592,\n
        1645, 1698, 1753, 1808,\n
    })\n
end;

#Maintained by: RehabMan for: Laptop Patches
#battery_Lenovo-y580.txt

# created by RehabMan 2013-09-23
# created originally for korapi

# works for:
#  Lenovo y580

into definitionblock code_regex External\s+\(\\TNOT\) remove_matched;

into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized) { Return (Or (Arg0, ShiftLeft (Arg1, 8))) }\n
end;

# 16-bit EC

into device label EC0 code_regex ENIB,\s+16 replace_matched begin ENI0,8,ENI1,8 end;
into device label EC0 code_regex ERIB,\s+16 replace_matched begin ERI0,8,ERI1,8 end;

into method label _TMP code_regex Store\s+\(0x8400,\s+\\_SB\.PCI0\.LPCB\.EC0\.ENIB\) replace_matched 
begin 
Store(0x84, \\_SB.PCI0.LPCB.EC0.ENI1) Store(Zero, \\_SB.PCI0.LPCB.EC0.ENI0)
end;

into method label FANG code_regex Store\s+\(Arg0,\s+ERIB\) replace_matched 
begin
Store(ShiftRight(Arg0, 8), ERI1) Store(Arg0, ERI0)
end;

into method label FANW code_regex Store\s+\(Arg0,\s+ERIB\) replace_matched
begin
Store(ShiftRight(Arg0, 8), ERI1) Store(Arg0, ERI0)
end;


# deal with 256-bit SMD0

into device label EC0 code_regex SMD0,\s+256 replace_matched 
begin
//SMD0, 256,\n
SD00,8,SD01,8,SD02,8,SD03,8,\n
SD04,8,SD05,8,SD06,8,SD07,8,\n
SD08,8,SD09,8,SD0A,8,SD0B,8,\n
SD0C,8,SD0D,8,SD0E,8,SD0F,8,\n
SD10,8,SD11,8,SD12,8,SD13,8,\n
SD14,8,SD15,8,SD16,8,SD17,8,\n
SD18,8,SD19,8,SD1A,8,SD1B,8,\n
SD1C,8,SD1D,8,SD1E,8,SD1F,8
end;


into device label EC0 insert
begin
Method (RSMD, 0, Serialized)\n
{\n
    Name (TEMP, Buffer(0x20) { })\n
    Store (SD00, Index(TEMP, 0x00))\n
    Store (SD01, Index(TEMP, 0x01))\n
    Store (SD02, Index(TEMP, 0x02))\n
    Store (SD03, Index(TEMP, 0x03))\n
    Store (SD04, Index(TEMP, 0x04))\n
    Store (SD05, Index(TEMP, 0x05))\n
    Store (SD06, Index(TEMP, 0x06))\n
    Store (SD07, Index(TEMP, 0x07))\n
    Store (SD08, Index(TEMP, 0x08))\n
    Store (SD09, Index(TEMP, 0x09))\n
    Store (SD0A, Index(TEMP, 0x0A))\n
    Store (SD0B, Index(TEMP, 0x0B))\n
    Store (SD0C, Index(TEMP, 0x0C))\n
    Store (SD0D, Index(TEMP, 0x0D))\n
    Store (SD0E, Index(TEMP, 0x0E))\n
    Store (SD0F, Index(TEMP, 0x0F))\n
    Store (SD10, Index(TEMP, 0x10))\n
    Store (SD11, Index(TEMP, 0x11))\n
    Store (SD12, Index(TEMP, 0x12))\n
    Store (SD13, Index(TEMP, 0x13))\n
    Store (SD14, Index(TEMP, 0x14))\n
    Store (SD15, Index(TEMP, 0x15))\n
    Store (SD16, Index(TEMP, 0x16))\n
    Store (SD17, Index(TEMP, 0x17))\n
    Store (SD18, Index(TEMP, 0x18))\n
    Store (SD19, Index(TEMP, 0x19))\n
    Store (SD1A, Index(TEMP, 0x1A))\n
    Store (SD1B, Index(TEMP, 0x1B))\n
    Store (SD1C, Index(TEMP, 0x1C))\n
    Store (SD1D, Index(TEMP, 0x1D))\n
    Store (SD1E, Index(TEMP, 0x1E))\n
    Store (SD1F, Index(TEMP, 0x1F))\n
    Return (TEMP)\n
}\n
end;

into device label EC0 insert
begin
Method (WSMD, 1, Serialized)\n
{\n
    Name (TEMP, Buffer(0x20) { })\n
    Store (Arg0, TEMP)\n
    Store (DerefOf(Index(TEMP, 0x00)), SD00)\n
    Store (DerefOf(Index(TEMP, 0x01)), SD01)\n
    Store (DerefOf(Index(TEMP, 0x02)), SD02)\n
    Store (DerefOf(Index(TEMP, 0x03)), SD03)\n
    Store (DerefOf(Index(TEMP, 0x04)), SD04)\n
    Store (DerefOf(Index(TEMP, 0x05)), SD05)\n
    Store (DerefOf(Index(TEMP, 0x06)), SD06)\n
    Store (DerefOf(Index(TEMP, 0x07)), SD07)\n
    Store (DerefOf(Index(TEMP, 0x08)), SD08)\n
    Store (DerefOf(Index(TEMP, 0x09)), SD09)\n
    Store (DerefOf(Index(TEMP, 0x0A)), SD0A)\n
    Store (DerefOf(Index(TEMP, 0x0B)), SD0B)\n
    Store (DerefOf(Index(TEMP, 0x0C)), SD0C)\n
    Store (DerefOf(Index(TEMP, 0x0D)), SD0D)\n
    Store (DerefOf(Index(TEMP, 0x0E)), SD0E)\n
    Store (DerefOf(Index(TEMP, 0x0F)), SD0F)\n
    Store (DerefOf(Index(TEMP, 0x10)), SD10)\n
    Store (DerefOf(Index(TEMP, 0x11)), SD11)\n
    Store (DerefOf(Index(TEMP, 0x12)), SD12)\n
    Store (DerefOf(Index(TEMP, 0x13)), SD13)\n
    Store (DerefOf(Index(TEMP, 0x14)), SD14)\n
    Store (DerefOf(Index(TEMP, 0x15)), SD15)\n
    Store (DerefOf(Index(TEMP, 0x16)), SD16)\n
    Store (DerefOf(Index(TEMP, 0x17)), SD17)\n
    Store (DerefOf(Index(TEMP, 0x18)), SD18)\n
    Store (DerefOf(Index(TEMP, 0x19)), SD19)\n
    Store (DerefOf(Index(TEMP, 0x1A)), SD1A)\n
    Store (DerefOf(Index(TEMP, 0x1B)), SD1B)\n
    Store (DerefOf(Index(TEMP, 0x1C)), SD1C)\n
    Store (DerefOf(Index(TEMP, 0x1D)), SD1D)\n
    Store (DerefOf(Index(TEMP, 0x1E)), SD1E)\n
    Store (DerefOf(Index(TEMP, 0x1F)), SD1F)\n
}\n
end;

into method label CFUN code_regex Store\s+\(Zero,\s+SMD0\) replaceall_matched begin \\_SB.PCI0.LPCB.EC0.WSMD(Zero) end;
into method label CFUN code_regex Store\s+\(SMD0,\s+Local3\) replaceall_matched begin Store(\\_SB.PCI0.LPCB.EC0.RSMD(), Local3) end;

into method label MHPF code_regex Store\s+\(FB4,\s+SMD0\) replaceall_matched begin \\_SB.PCI0.LPCB.EC0.WSMD(FB4) end;
into method label MHPF code_regex Store\s+\(SMD0,\s+FB4\) replaceall_matched begin Store(\\_SB.PCI0.LPCB.EC0.RSMD(), FB4) end;

#NEEDED FOR SLEEP
#Maintained by: RehabMan for: Laptop Patches
#system_RTC.txt

#   RTC fix
into device name_hid PNP0B00 code_regex (IO\s\((?:\s*[^,]+,\s*(?:\/\/\s.*)?\s*\n)+\s*)(\dx\d+)(,\s*(?:\/\/\s.*)?\s*\n\s*\)) replace_matched begin %10x02%3 end;

#NEEDED FOR SLEEP:
#Maintained by: RehabMan for: Laptop Patches
#usb_prw_0x0d_xhc.txt

# remove _PRW methods to prevent instant wake

# delete any existing XHC1 device
into device label XHC1 name_adr 0x00140000 remove_entry;
# delete any existing USB2 device
into device label USB2 name_adr 0x001D0000 remove_entry;

# if _PRW objects are methods
into method label _PRW parent_adr 0x001D0000 remove_entry;
into method label _PRW parent_adr 0x001A0000 remove_entry;
into method label _PRW parent_adr 0x00140000 remove_entry;
into method label _PRW parent_adr 0x001B0000 remove_entry;
# some other LAN cards use 0x00190000
into method label _PRW parent_adr 0x00190000 remove_entry;

# if _PRW methods are stuffed into a separate scope
into method label _PRW parent_label _SB.PCI0.EHC1 remove_entry;
into method label _PRW parent_label _SB.PCI0.EHC2 remove_entry;
into method label _PRW parent_label _SB.PCI0.XHC remove_entry;
into method label _PRW parent_label \_SB.PCI0.EHC1 remove_entry;
into method label _PRW parent_label \_SB.PCI0.EHC2 remove_entry;
into method label _PRW parent_label \_SB.PCI0.XHC remove_entry;

# if _PRW objects are names
into device name_adr 0x001D0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001A0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00140000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001B0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00190000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched;
# some _PRW have three entries in the Package
into device name_adr 0x001D0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001A0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00140000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x001B0000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;
into device name_adr 0x00190000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched;

# seems to work better if _PRW is present, but returns 0 (original was 3) for sleep state
into device name_adr 0x001D0000 insert begin Name(_PRW, Package() { 0x0D, 0 }) end;
into device name_adr 0x001A0000 insert begin Name(_PRW, Package() { 0x0D, 0 }) end;
into device name_adr 0x00140000 insert begin Name(_PRW, Package() { 0x0D, 0 }) end;
into device name_adr 0x001B0000 insert begin Name(_PRW, Package() { 0x0D, 0 }) end;
into device name_adr 0x00190000 insert begin Name(_PRW, Package() { 0x0D, 0 }) end;
#NEEDED FOR SLEEP WHEN THE LID IS CLOSED
#Remove _PRW statement in LID0 - idea from RehabMan
#Fixes sleep issue, when lid is closed, because Mac thinks actually it should wake
#With this patch we remove that part.
#But Mac wouldn't know that the lid is opened, therefore you need to press a key to wake
into device label LID0 code_regex Name\s+\(_PRW,[\s\S]*\}\) remove_matched;

#NEEDED FOR AUDIO & SLEEP
#Maintained by: RehabMan for: Laptop Patches
#system_IRQ.txt

# This can fix non-working audio and also has an affect on HPET.
#
# Use this if you have issues with patched AppleHDA (required on almost all laptops)
# or if you have issues with HPET (restart after wake).

# IRQ fix
into device name_hid PNP0000 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0100 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0B00 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
into device name_hid PNP0103 code_regex IRQNoFlags\s\(\)\n\s+\{.*\} removeall_matched;
into device name_hid PNP0103 code_regex Name\s\(([^,]+),\sResourceTemplate\s\(\).*\n\s+\{((?:.|\n)*)\}\) replace_matched
begin
Name (%1, ResourceTemplate()\n
{\n
    IRQNoFlags() { 0, 8, 11, 15 }\n
%2
})\n
end;
into method label _Q11 replace_content
begin
// Brightness Down\n
Notify(\_SB.PCI0.LPCB.PS2K, 0x0405)\n
end;
into method label _Q12 replace_content
begin
// Brightness Up\n
Notify(\_SB.PCI0.LPCB.PS2K, 0x0406)\n
end;

SSDT fixes

#Maintained by: RehabMan for: Laptop Patches
#graphics_SSDT-disable-cleanup.txt

# These patches can be used to clean common errors in SSDTs
# commonly used by laptops with switched dual-GPU setups.

into device label WMI1 remove_entry;
into_all method label MXMX remove_entry;
into_all method label _DSM remove_entry;
into_all method label HDSM remove_entry;
into_all method label HGAS remove_entry;
into_all method label HNOT remove_entry;
into_all method label HDOS remove_entry;

# rename GFX0
into_all all code_regex \.GFX0 replaceall_matched begin .IGPU end;
into_all all label \_SB.PCI0.GFX0 set_label begin \_SB.PCI0.IGPU end;
Link to comment
Share on other sites

 Share

×
×
  • Create New...