diff --git a/Controllers/ZotacV2GPUController/RGBController_ZotacV2GPU.cpp b/Controllers/ZotacV2GPUController/RGBController_ZotacV2GPU.cpp index cd570615..b04aee58 100644 --- a/Controllers/ZotacV2GPUController/RGBController_ZotacV2GPU.cpp +++ b/Controllers/ZotacV2GPUController/RGBController_ZotacV2GPU.cpp @@ -14,11 +14,12 @@ std::map ZOTAC_V2_GPU_CONFIG = { { "N653E-1013", { 2, false } }, // ZOTAC GAMING GeForce RTX 3070 Ti Trinity OC - { "N612E-1011", { 2, false } }, // ZOTAC GAMING GeForce RTX 3080 Trinity OC LHR 12GB + { "N612E-1011", { 2, false } }, // ZOTAC GAMING GeForce RTX 3080 Trinity OC LHR 12GB & 3090 Trinity { "N612A-1012", { 2, false } }, // ZOTAC GAMING GeForce RTX 3080 Ti AMP Holo { "N618A-1015", { 4, true } }, // ZOTAC GAMING GeForce RTX 3090 AMP Extreme Holo { "N696E-1040", { 1, false } }, // ZOTAC GAMING GeForce RTX 4070 Ti Trinity OC { "N675E-1019", { 1, true } }, // ZOTAC GAMING GeForce RTX 4090 Trinity OC + { "N675E-1062", { 1, true } }, // ZOTAC GAMING GeForce RTX 4090 Trinity OC Alternate Controller Version { "N675A-1019", { 5, true } }, // ZOTAC GAMING GeForce RTX 4090 AMP Extreme AIRO & 4080 16GB AMP Extreme AIRO }; @@ -70,6 +71,10 @@ std::vector> ZOTAC_V2_GPU_DUET_PRESETS = The read data `0x4E 0x36 0x31 0x32 0x45 0x2D 0x31 0x30 0x31 0x31` converts to Unicode `N612E-1011` + Cards with correct entries in `pci_ids/pci_ids.h` and `Controllers/ZotacV2GPUController/ZotacV2GPUControllerDetect.cpp` + but not in `Controllers/ZotacV2GPUController/RGBController_ZotacV2GPU.cpp` + should produce a log error with the controller version read from the card. + The LED configuration is the number of independently configurable zones followed by a bool representing support for external led stip. These can be determined by looking at the Spectra tab in Firestorm. @@ -85,7 +90,16 @@ RGBController_ZotacV2GPU::RGBController_ZotacV2GPU(ZotacV2GPUController* control location = controller->GetDeviceLocation(); type = DEVICE_TYPE_GPU; - config = ZOTAC_V2_GPU_CONFIG.at(controller->GetVersion()); + if(ZOTAC_V2_GPU_CONFIG.count(controller->GetVersion()) > 0) + { + config = ZOTAC_V2_GPU_CONFIG.at(controller->GetVersion()); + } + else + { + LOG_ERROR("[%s] Unrecognized controller version %s", name.c_str(), controller->GetVersion().c_str()); + config = { 0, false }; + } + version += std::to_string(config.numberOfZones) + " zones, " + (config.supportsExternalLEDStrip ? "with" : "without") + " external LED strip support"; diff --git a/Controllers/ZotacV2GPUController/ZotacV2GPUControllerDetect.cpp b/Controllers/ZotacV2GPUController/ZotacV2GPUControllerDetect.cpp index 0c25b6d5..33ae1cca 100644 --- a/Controllers/ZotacV2GPUController/ZotacV2GPUControllerDetect.cpp +++ b/Controllers/ZotacV2GPUController/ZotacV2GPUControllerDetect.cpp @@ -4,6 +4,7 @@ #include "RGBController_ZotacV2GPU.h" #include "i2c_smbus.h" #include "pci_ids.h" +#include "LogManager.h" /******************************************************************************************\ * * @@ -31,6 +32,10 @@ void DetectZotacV2GPUControllers(i2c_smbus_interface* bus, u8 i2c_addr, const st { ResourceManager::get()->RegisterRGBController(rgb_controller); } + else + { + LOG_ERROR("[%s] RGB controller not registered.", name.c_str()); + } } } @@ -38,6 +43,7 @@ REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 3070 Ti Trinity OC", REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 3080 Trinity OC LHR 12GB", DetectZotacV2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_12G_LHR_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX3080_12G_LHR_TRINITY_SUB_DEV, 0x49); REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 3080 Ti AMP Holo", DetectZotacV2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX3080TI_AMP_SUB_DEV, 0x49); REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 3090 AMP Extreme Holo", DetectZotacV2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3090_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX3090_AMP_SUB_DEV, 0x49); +REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 3090 Trinity", DetectZotacV2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3090_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX3090_TRINITY_SUB_DEV, 0x49); REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 4070 Ti Trinity OC", DetectZotacV2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX4070TI_TRINITY_SUB_DEV, 0x49); REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 4080 16GB AMP Extreme AIRO", DetectZotacV2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX4080_AMP_SUB_DEV, 0x49); REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 4090 Trinity OC", DetectZotacV2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4090_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX4090_TRINITY_SUB_DEV, 0x49); diff --git a/pci_ids/pci_ids.h b/pci_ids/pci_ids.h index c44033dc..efe03863 100644 --- a/pci_ids/pci_ids.h +++ b/pci_ids/pci_ids.h @@ -642,6 +642,7 @@ #define ZOTAC_RTX3080_12G_LHR_TRINITY_SUB_DEV 0xB612 #define ZOTAC_RTX3080TI_AMP_SUB_DEV 0x2612 #define ZOTAC_RTX3090_AMP_SUB_DEV 0x1619 +#define ZOTAC_RTX3090_TRINITY_SUB_DEV 0x1613 #define ZOTAC_RTX4070TI_TRINITY_SUB_DEV 0x1696 #define ZOTAC_RTX4080_AMP_SUB_DEV 0x1688 #define ZOTAC_RTX4090_TRINITY_SUB_DEV 0x3675