Don't delete i2c bus list on redetect, as WMI query issues prevent them from being redetected

This commit is contained in:
Adam Honse 2021-05-24 17:00:18 -05:00
parent 8ada7cd6da
commit 2a3a736f09
3 changed files with 12 additions and 15 deletions

View file

@ -474,15 +474,6 @@ 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 |
\*-------------------------------------------------*/
@ -645,14 +636,18 @@ void ResourceManager::DetectDevicesThreadFunction()
detection_percent = 0;
/*-------------------------------------------------*\
| Detect i2c interfaces |
| Detect i2c interfaces - only perform on first |
| detection |
\*-------------------------------------------------*/
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++)
if(busses.empty())
{
i2c_bus_detectors[i2c_bus_detector_idx]();
I2CBusListChanged();
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();
}
}
/*-------------------------------------------------*\

View file

@ -507,6 +507,7 @@ void i2c_smbus_i801_detect()
if (hres)
{
LOG_NOTICE("WMI query failed, i801 I2C bus detection aborted");
return;
}

View file

@ -201,6 +201,7 @@ void i2c_smbus_piix4_detect()
if (hres)
{
LOG_NOTICE("WMI query failed, piix4 I2C bus detection aborted");
return;
}