Use resource manager to register I2C interfaces and log them

This commit is contained in:
Adam Honse 2021-03-24 01:22:48 -05:00
parent ec90f4678b
commit 69cb7a0d9e
8 changed files with 20 additions and 19 deletions

View file

@ -74,7 +74,8 @@ ResourceManager::~ResourceManager()
void ResourceManager::RegisterI2CBus(i2c_smbus_interface *bus)
{
LOG_NOTICE("Registering an I2C bus: %s", bus->device_name);
std::string bus_name = bus->device_name;
LOG_NOTICE("Registering I2C interface: %s", bus_name.c_str());
busses.push_back(bus);
}
@ -486,20 +487,20 @@ void ResourceManager::DetectDevicesThreadFunction()
detection_percent = 0;
/*-------------------------------------------------*\
| Detect i2c busses |
| Detect i2c interfaces |
\*-------------------------------------------------*/
LOG_NOTICE("Detecting I2C/SMBus busses");
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](busses);
i2c_bus_detectors[i2c_bus_detector_idx]();
I2CBusListChanged();
}
/*-------------------------------------------------*\
| Detect i2c devices |
\*-------------------------------------------------*/
LOG_NOTICE("Detecting I2C/SMBus devices");
LOG_NOTICE("Detecting I2C devices");
for(unsigned int i2c_detector_idx = 0; i2c_detector_idx < i2c_device_detectors.size() && detection_is_required.load(); i2c_detector_idx++)
{

View file

@ -32,7 +32,7 @@
struct hid_device_info;
typedef std::function<void(std::vector<i2c_smbus_interface*>&)> I2CBusDetectorFunction;
typedef std::function<void()> I2CBusDetectorFunction;
typedef std::function<void(std::vector<RGBController*>&)> DeviceDetectorFunction;
typedef std::function<void(std::vector<i2c_smbus_interface*>&)> I2CDeviceDetectorFunction;
typedef std::function<void(hid_device_info*, const std::string&)> HIDDeviceDetectorFunction;

View file

@ -178,7 +178,7 @@ s32 i2c_smbus_amdadl::i2c_smbus_xfer(u8 addr, char read_write, u8 command, int s
#include "Detector.h"
void i2c_smbus_amdadl_detect(std::vector<i2c_smbus_interface*> &busses)
void i2c_smbus_amdadl_detect()
{
int adl_status;
int gpu_count = 0;
@ -193,7 +193,7 @@ void i2c_smbus_amdadl_detect(std::vector<i2c_smbus_interface*> &busses)
else
{
i2c_smbus_amdadl * adl_bus = new i2c_smbus_amdadl(context);
busses.push_back(adl_bus);
ResourceManager::get()->RegisterI2CBus(adl_bus);
}
}
} /* DetectAMDADLI2CBusses() */

View file

@ -486,7 +486,7 @@ s32 i2c_smbus_i801::i2c_smbus_xfer(u8 addr, char read_write, u8 command, int siz
#include "Detector.h"
#include "wmi.h"
void i2c_smbus_i801_detect(std::vector<i2c_smbus_interface*> &busses)
void i2c_smbus_i801_detect()
{
i2c_smbus_interface * bus;
HRESULT hres;
@ -553,7 +553,7 @@ void i2c_smbus_i801_detect(std::vector<i2c_smbus_interface*> &busses)
bus->pci_subsystem_device = sbd_id;
strcpy(bus->device_name, i["Description"].c_str());
((i2c_smbus_i801 *)bus)->i801_smba = IORangeStart;
busses.push_back(bus);
ResourceManager::get()->RegisterI2CBus(bus);
}
}
}

View file

@ -34,7 +34,7 @@ s32 i2c_smbus_linux::i2c_smbus_xfer(u8 addr, char read_write, u8 command, int si
#include <dirent.h>
#include <string.h>
void i2c_smbus_linux_detect(std::vector<i2c_smbus_interface*> &busses)
void i2c_smbus_linux_detect()
{
i2c_smbus_linux * bus;
char device_string[1024];
@ -154,7 +154,7 @@ void i2c_smbus_linux_detect(std::vector<i2c_smbus_interface*> &busses)
bus->pci_subsystem_device = pci_subsystem_device;
bus->pci_subsystem_vendor = pci_subsystem_vendor;
bus->port_id = port_id;
busses.push_back(bus);
ResourceManager::get()->RegisterI2CBus(bus);
}
}
}

View file

@ -191,7 +191,7 @@ s32 i2c_smbus_nct6775::i2c_smbus_xfer(u8 addr, char read_write, u8 command, int
#include "Detector.h"
#include "super_io.h"
void i2c_smbus_nct6775_detect(std::vector<i2c_smbus_interface*> &busses)
void i2c_smbus_nct6775_detect()
{
i2c_smbus_interface* bus;
int sioaddr = 0x2E;
@ -240,7 +240,7 @@ void i2c_smbus_nct6775_detect(std::vector<i2c_smbus_interface*> &busses)
break;
}
busses.push_back(bus);
ResourceManager::get()->RegisterI2CBus(bus);
}
}

View file

@ -98,7 +98,7 @@ s32 i2c_smbus_nvapi::i2c_smbus_xfer(u8 addr, char read_write, u8 command, int si
#include "Detector.h"
void i2c_smbus_nvapi_detect(std::vector<i2c_smbus_interface*> &busses)
void i2c_smbus_nvapi_detect()
{
static NV_PHYSICAL_GPU_HANDLE gpu_handles[64];
static NV_S32 gpu_count = 0;
@ -129,7 +129,7 @@ void i2c_smbus_nvapi_detect(std::vector<i2c_smbus_interface*> &busses)
nvapi_bus->port_id = 1;
}
busses.push_back(nvapi_bus);
ResourceManager::get()->RegisterI2CBus(nvapi_bus);
}
} /* DetectNvAPII2CBusses() */

View file

@ -180,7 +180,7 @@ s32 i2c_smbus_piix4::i2c_smbus_xfer(u8 addr, char read_write, u8 command, int si
#include "Detector.h"
#include "wmi.h"
void i2c_smbus_piix4_detect(std::vector<i2c_smbus_interface*> &busses)
void i2c_smbus_piix4_detect()
{
i2c_smbus_interface * bus;
HRESULT hres;
@ -229,7 +229,7 @@ void i2c_smbus_piix4_detect(std::vector<i2c_smbus_interface*> &busses)
strcpy(bus->device_name, i["Description"].c_str());
strcat(bus->device_name, " at 0x0B00");
((i2c_smbus_piix4 *)bus)->piix4_smba = 0x0B00;
busses.push_back(bus);
ResourceManager::get()->RegisterI2CBus(bus);
bus = new i2c_smbus_piix4();
bus->pci_vendor = ven_id;
@ -239,7 +239,7 @@ void i2c_smbus_piix4_detect(std::vector<i2c_smbus_interface*> &busses)
((i2c_smbus_piix4 *)bus)->piix4_smba = 0x0B20;
strcpy(bus->device_name, i["Description"].c_str());
strcat(bus->device_name, " at 0x0B20");
busses.push_back(bus);
ResourceManager::get()->RegisterI2CBus(bus);
}
}
}