tdehwlib: Add event device classification according to the provided switches.

This will resolve event device detection on special hardware, for example,
the LID switch on Pinebook Pro.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
(cherry picked from commit f68fadda81)
r14.0.x
Slávek Banko 5 years ago
parent f3cd325032
commit 1945986691
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -3432,13 +3432,19 @@ void TDEHardwareDevices::updateExistingDeviceInformation(TDEGenericDevice* exist
if (device->type() == TDEGenericDeviceType::Event) { if (device->type() == TDEGenericDeviceType::Event) {
// Try to obtain as much type information about this event device as possible // Try to obtain as much type information about this event device as possible
TDEEventDevice* edevice = dynamic_cast<TDEEventDevice*>(device); TDEEventDevice* edevice = dynamic_cast<TDEEventDevice*>(device);
if (edevice->systemPath().contains("PNP0C0D")) { TDESwitchType::TDESwitchType edevice_switches = edevice->providedSwitches();
if (edevice->systemPath().contains("PNP0C0D")
|| (edevice_switches & TDESwitchType::Lid)) {
edevice->internalSetEventType(TDEEventDeviceType::ACPILidSwitch); edevice->internalSetEventType(TDEEventDeviceType::ACPILidSwitch);
} }
else if (edevice->systemPath().contains("PNP0C0E") || edevice->systemPath().contains("/LNXSLPBN")) { else if (edevice->systemPath().contains("PNP0C0E")
|| edevice->systemPath().contains("/LNXSLPBN")
|| (edevice_switches & TDESwitchType::SleepButton)) {
edevice->internalSetEventType(TDEEventDeviceType::ACPISleepButton); edevice->internalSetEventType(TDEEventDeviceType::ACPISleepButton);
} }
else if (edevice->systemPath().contains("PNP0C0C") || edevice->systemPath().contains("/LNXPWRBN")) { else if (edevice->systemPath().contains("PNP0C0C")
|| edevice->systemPath().contains("/LNXPWRBN")
|| (edevice_switches & TDESwitchType::PowerButton)) {
edevice->internalSetEventType(TDEEventDeviceType::ACPIPowerButton); edevice->internalSetEventType(TDEEventDeviceType::ACPIPowerButton);
} }
else if (edevice->systemPath().contains("_acpi")) { else if (edevice->systemPath().contains("_acpi")) {

Loading…
Cancel
Save