Revert change disabling redetection of i2c interfaces and fix disconnected WMI failure by always reconnecting before query

This commit is contained in:
Adam Honse 2021-05-24 18:38:26 -05:00
parent 2a3a736f09
commit 33b840b2b9
2 changed files with 27 additions and 10 deletions

View file

@ -474,6 +474,15 @@ void ResourceManager::Cleanup()
delete rgb_controller;
}
std::vector<i2c_smbus_interface *> busses_copy = busses;
busses.clear();
for(i2c_smbus_interface* bus : busses_copy)
{
delete bus;
}
/*-------------------------------------------------*\
| Cleanup HID interface |
\*-------------------------------------------------*/
@ -636,18 +645,14 @@ void ResourceManager::DetectDevicesThreadFunction()
detection_percent = 0;
/*-------------------------------------------------*\
| Detect i2c interfaces - only perform on first |
| detection |
| Detect i2c interfaces |
\*-------------------------------------------------*/
if(busses.empty())
{
LOG_NOTICE("Detecting I2C interfaces");
LOG_NOTICE("Detecting I2C interfaces");
for(unsigned int i2c_bus_detector_idx = 0; i2c_bus_detector_idx < i2c_bus_detectors.size() && detection_is_required.load(); i2c_bus_detector_idx++)
{
i2c_bus_detectors[i2c_bus_detector_idx]();
I2CBusListChanged();
}
for(unsigned int i2c_bus_detector_idx = 0; i2c_bus_detector_idx < i2c_bus_detectors.size() && detection_is_required.load(); i2c_bus_detector_idx++)
{
i2c_bus_detectors[i2c_bus_detector_idx]();
I2CBusListChanged();
}
/*-------------------------------------------------*\