From 61d3bc0e989b0e66727cbf4d7433f399586ca4d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Mal=C3=BD?= Date: Sun, 30 Nov 2025 10:24:53 +0100 Subject: [PATCH] On Linux include both the I2C/SMBus bus name and device path in the device_name --- i2c_smbus/Linux/i2c_smbus_linux.cpp | 2 +- i2c_smbus/i2c_amd_gpu.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/i2c_smbus/Linux/i2c_smbus_linux.cpp b/i2c_smbus/Linux/i2c_smbus_linux.cpp index d93be68e..a887fd0c 100644 --- a/i2c_smbus/Linux/i2c_smbus_linux.cpp +++ b/i2c_smbus/Linux/i2c_smbus_linux.cpp @@ -232,7 +232,7 @@ bool i2c_smbus_linux_detect() } bus = new i2c_smbus_linux(); - strcpy(bus->device_name, device_string); + snprintf(bus->device_name, sizeof(bus->device_name), "%s (%s)", device_string, device_path); bus->handle = test_fd; bus->pci_device = pci_device; bus->pci_vendor = pci_vendor; diff --git a/i2c_smbus/i2c_amd_gpu.h b/i2c_smbus/i2c_amd_gpu.h index fa1ad992..b3e35d14 100644 --- a/i2c_smbus/i2c_amd_gpu.h +++ b/i2c_smbus/i2c_amd_gpu.h @@ -30,7 +30,8 @@ inline bool is_amd_gpu_i2c_bus(const i2c_smbus_interface *bus) size_t idx = 0; while((name = RECOGNIZED_I2C_BUS_NAMES[idx++]) != nullptr) { - if(std::strcmp(name, bus->device_name) == 0) + const char *pos = std::strstr(bus->device_name, name); + if(pos == bus->device_name) { return true; }