/* SPDX-License-Identifier: GPL-2.0-only */ Name (FLAP, 0x40) /* Flag indicating device is in laptop mode */ /* Virtual events */ Name (VTBL, 0xcc) /* Tablet Mode */ Name (VLAP, 0xcd) /* Laptop Mode */ Device (VBTN) { Name (_HID, "INT33D6") Name (_UID, 1) Name (_DDN, "Intel Virtual Button Driver") /* * This method is called at driver probe time and must exist or * the driver will not load. */ Method (VBDL) { } /* * This method returns flags indicating tablet and dock modes. * It is called at driver probe time so the OS knows what the * state of the device is at boot. */ Method (VGBS) { Local0 = 0 If (CKLP ()) { Local0 |= ^^FLAP } Return (Local0) } Method (_STA, 0) { Return (0xF) } Method (CKLP, 0) { /* 120 = GPP_D4 */ If (\_SB.PCI0.GRXS (120)) { Printf ("VBTN: tablet mode") Return (0) /* Tablet mode */ } Else { Printf ("VBTN: laptop mode") Return (1) /* Laptop mode */ } } Method (NTFY, 0) { /* Notify the new state */ If (CKLP ()) { Notify (^^VBTN, ^^VLAP) } Else { Notify (^^VBTN, ^^VTBL) } } }