into definitionblock label DSDT insert begin External(\_RPL._PS0, MethodObj) // Optimus On\n External(\_RPL._PS3, MethodObj) // Optimus Off\n \n Method(NVOF, 0, NotSerialized)\n {\n \_RPL._DSM (Buffer (0x10)\n {\n /* 0000 */ 0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,\n /* 0008 */ 0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0\n }, 0x0100, 0x1A, Buffer (0x04)\n {\n 0x01, 0x00, 0x00, 0x03\n })\n \_RPL._PS3 ()\n }\n \n Method(NVON, 0, NotSerialized)\n {\n \_RPL._PS0 ()\n }\n end; # Turn off Optimus at beginning of _INI into method label _INI parent_label _SB.PCI0 code_regex ([\s\S]*) replace_matched begin NVOF ()\n %1 end; into method label _INI parent_label _SB code_regex ([\s\S]*) replace_matched begin NVOF ()\n %1 end; # Turn off Optimus when waking from sleep into method label _WAK parent_label DSDT code_regex ([\s\S]*) replace_matched begin NVOF ()\n %1 end; # Turn ON Optimus when preparing for sleep (for safety) into method label _PTS parent_label DSDT code_regex ([\s\S]*) replace_matched begin NVON ()\n %1 end; # Fixup NVOP Method Call into_all method label _DSM code_regex Return\s\(NVOP\) replace_matched begin Return (NVOP (Arg0, Arg1, Arg2, Arg3)) end; into_all method label _DSM code_regex (\s+Arg0\s+Arg1\s+Arg2\s+Arg3\s+) remove_matched; into definitionblock label DSDT code_regex External\s\(NVOP,\sIntObj\) replace_matched begin External (NVOP, MethodObj) end;