diff --git a/Changelog.md b/Changelog.md index 2ede481..34156d3 100644 --- a/Changelog.md +++ b/Changelog.md @@ -2,6 +2,7 @@ VoodooPS2 Changelog ============================ #### v2.3.7 - Fixed multiple PS2/SMBus devices attaching +- Fixed eratic pointer in bootpicker by disabling SMBus/PS2 devices on shutdown #### v2.3.6 - Lowered macOS requirements to 10.10 diff --git a/VoodooPS2Trackpad/VoodooPS2SMBusDevice.cpp b/VoodooPS2Trackpad/VoodooPS2SMBusDevice.cpp index 3680395..7b93823 100644 --- a/VoodooPS2Trackpad/VoodooPS2SMBusDevice.cpp +++ b/VoodooPS2Trackpad/VoodooPS2SMBusDevice.cpp @@ -53,6 +53,12 @@ bool ApplePS2SmbusDevice::start(IOService *provider) { return true; } +void ApplePS2SmbusDevice::stop(IOService *provider) { + _nub->uninstallPowerControlAction(); + resetDevice(); + super::stop(provider); +} + void ApplePS2SmbusDevice::free() { OSSafeReleaseNULL(_data); super::free(); diff --git a/VoodooPS2Trackpad/VoodooPS2SMBusDevice.h b/VoodooPS2Trackpad/VoodooPS2SMBusDevice.h index 26f386c..de3bfd7 100644 --- a/VoodooPS2Trackpad/VoodooPS2SMBusDevice.h +++ b/VoodooPS2Trackpad/VoodooPS2SMBusDevice.h @@ -30,6 +30,7 @@ class EXPORT ApplePS2SmbusDevice : public IOService { static ApplePS2SmbusDevice *withReset(bool resetNeeded, OSDictionary *data, uint8_t addr); bool start(IOService *provider) override; + void stop(IOService *provider) override; void free() override; private: