<div dir="ltr"><div>Hello<br><br>After studying thinkpad-acpi.c subdrivers, here are the ACPI entries which are<br>missing in src/ec/lenovo/h8/acpi/ec.asl to enable a proper rfkill support on a<br>X60 (which will be created by thinkpad-acpi) :<br> - GWAN<br> - SWAN<br> - GBDC<br> - SBDC<br><br>Why? Because for example with thinkpad-acpi bluetooth subdriver, bluetooth_init will do:<br>        acpi_evalf(hkey_handle, &status, "GBDC", "qd");<br><br>If GBDC does not return the proper status, bluetooth is supposed to not be present.<br>If it returns the correct status,  the proper rfkill entry will be created:<br>        res = tpacpi_new_rfkill(TPACPI_RFK_BLUETOOTH_SW_ID,<br>                                &bluetooth_tprfk_ops,<br>                                RFKILL_TYPE_BLUETOOTH,<br>                                TPACPI_RFK_BLUETOOTH_SW_NAME,<br>                                true);<br><br>As these 4 ACPI entries are missing, bluetooth rfkill is provided by the bluetooth driver instead of thinkpad-acpi.<br><br>Why is that bad? Because thinkpad-acpi would use SBDC to set the status and actually save power (also toggling the bluetooth led which is nice)<br><br>The same thing applies to WWAN, only with GBDC/SBDC. Also, it's then much more important, as a GPS module consume more power than Bluetooth.<br><br></div>All that is quite clear. The next part is not so clear, as it came from my understanding of the original DSDT.<br><br>The ACPI entries seem to be handled this way:<br><div><br>GWAN: get wwan status -> WGFL and WPWS-> H8DR-> _SB.PCI0.LPC.EC.DCWW || ShiftRight (And (\RBEC (0x3A), 0x40), 0x06)<br><br>SWAN: set wwan status -> WPWC (and the power-on default is stored in NVRAM: WGSV)<br><br>GBDC: get bluetooth status -> WGFL and BPWS-> H8DR-> _SB.PCI0.LPC.EC.DCBD || ShiftRight (And (\RBEC (0x3A), 0x10), 0x04)<br><br>SBDC: set bluetooth status -> BPWC (and the power-on default is stored in NVRAM: BLTH)<br><br>WGFL seems to be some bitmask for bluetooth (0x20) and wwan (0x02), maybe to store their current status?<br>It affects _SB.PCI0.LPC.EC.HKEY.BPWC and _SB.PCI0.LPC.EC.HKEY.WPWC<br><br>The function of _SB.PCI0.LPC.EC.HKEY.BPWC/_SB.PCI0.LPC.EC.HKEY.WPWC and _SB.PCI0.LPC.EC.DCWW/_SB.PCI0.LPC.EC.DCBD is unclear to be. I guess it control the module power and the LED state.<br><br></div><div>I hope the above can be useful to someone to fix src/ec/lenovo/h8/acpi/ec.asl</div><div><br>BTW, the KBLT entry is present in ec.asl,  but shouldn't be always on, as there is no thinklight on the x60t (only on the X60 proper IIRC)<br><br></div></div>