From c57d58d49b94d4696182b1622776651eac90c6d8 Mon Sep 17 00:00:00 2001 From: RedBlackAka Date: Mon, 17 Feb 2025 15:46:33 +0000 Subject: [PATCH] Miscellaneous cleanups --- .gitlab/issue_templates/New Device.md | 4 +-- .../ColorfulGPUControllerDetect.cpp | 16 ++++----- .../ENESMBusControllerDetect.cpp | 2 +- .../EVGAGP102GPUControllerDetect.cpp | 8 ++--- .../GainwardGPUControllerDetect.cpp | 2 +- .../GalaxGPUControllerDetect.cpp | 2 +- .../GigabyteRGBFusionGPUControllerDetect.cpp | 2 +- .../LogitechControllerDetect.cpp | 3 +- ...AIlluminationControllerDetect_Windows_Linux.cpp | 6 ++-- .../RGBController_NvidiaESA.cpp | 2 +- .../SonyGamepadControllerDetect.cpp | 8 ++--- i2c_smbus/i2c_smbus_linux.cpp | 2 +- i2c_smbus/i2c_smbus_nvapi.cpp | 4 +-- i2c_smbus/i2c_smbus_nvapi.h | 2 +- pci_ids/pci_ids.h | 38 ++++++++++----------- scripts/banner.bmp | Bin 85896 -> 85894 bytes 16 files changed, 50 insertions(+), 51 deletions(-) diff --git a/.gitlab/issue_templates/New Device.md b/.gitlab/issue_templates/New Device.md index a8d78925..8bd84ff2 100644 --- a/.gitlab/issue_templates/New Device.md +++ b/.gitlab/issue_templates/New Device.md @@ -23,9 +23,9 @@ Please add a link to the manufacturer's product page beneath this line ~"DeviceType::IDK" ~"DeviceType::USB" ~"DeviceType::GPU::AMD" -~"DeviceType::GPU::NVidia" +~"DeviceType::GPU::Nvidia" ~"DeviceType::SMBus" -~"DeviceType::WMI" +~"DeviceType::WMI" diff --git a/Controllers/ColorfulGPUController/ColorfulGPUControllerDetect.cpp b/Controllers/ColorfulGPUController/ColorfulGPUControllerDetect.cpp index 3f45f3f8..ecad91ea 100644 --- a/Controllers/ColorfulGPUController/ColorfulGPUControllerDetect.cpp +++ b/Controllers/ColorfulGPUController/ColorfulGPUControllerDetect.cpp @@ -51,21 +51,21 @@ REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Ultra W OC 12G L-V", Detec REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Ultra W OC 12G L-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3060_ULTRAW_OC_12G_2, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Ti Ultra W OC LHR-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3060_ULTRAW_OC_12G_2, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Ti Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_ADVANCED_OCV, 0x61); -REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Ti Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3060_TI_ADVANCED_OC, 0x61); +REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Ti Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3060TI_ADVANCED_OC, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_ADVANCED_OCV, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_ADVANCED_OCV2, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Ultra W OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_ULTRAW_OC, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Ultra W OC LHR", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_ULTRAW_OC, 0x61); -REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Ti Ultra W OC LHR", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_TI_ULTRAW_OC, 0x61); -REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Ti Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_TI_ADVANCED_OCV2, 0x61); +REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Ti Ultra W OC LHR", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070TI_ULTRAW_OC, 0x61); +REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Ti Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070TI_ADVANCED_OCV2, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3080 Advanced OC 10G-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3080_ADVANCED_OC_10G, 0x61); -REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3080 Ti Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3080_TI_ADVANCED_OCV2, 0x61); +REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3080 Ti Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3080TI_ADVANCED_OCV2, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3080 Ultra W OC 10G LHR-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3080_ULTRAW_OC_10G, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3080 Ultra W OC 10G LHR-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3080_ULTRAW_OC_10G_2, 0x61); -REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4070 Ti Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4070_TI_ADVANCED_OCV, 0x61); -REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4070 Ti SUPER Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TIS_AD102_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4070_TI_SUPER_ADVANCED_OCV2, 0x61); -REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4070 Ti SUPER Ultra W 16GB", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TIS_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4070_TI_SUPER_ULTRA_W_16GB, 0x61); -REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4070 SUPER Ultra W OC 12GB", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070S_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4070_SUPER_ULTRA_W_OC_12GB, 0x61); +REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4070 Ti Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4070TI_ADVANCED_OCV, 0x61); +REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4070 Ti SUPER Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TIS_AD102_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4070TI_SUPER_ADVANCED_OCV2, 0x61); +REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4070 Ti SUPER Ultra W", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TIS_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4070TI_SUPER_ULTRA_W, 0x61); +REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4070 SUPER Ultra W OC", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070S_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4070_SUPER_ULTRA_W_OC, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4070 Vulcan OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4070_VULCAN_OCV, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4070 SUPER Ultra W OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070S_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4070S_ULTRAW_OCV, 0x61); REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4080 Ultra W OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4080_ULTRAW_OCV, 0x61); diff --git a/Controllers/ENESMBusController/ENESMBusControllerDetect.cpp b/Controllers/ENESMBusController/ENESMBusControllerDetect.cpp index 7c4291fb..a4037e86 100644 --- a/Controllers/ENESMBusController/ENESMBusControllerDetect.cpp +++ b/Controllers/ENESMBusController/ENESMBusControllerDetect.cpp @@ -356,7 +356,7 @@ REGISTER_I2C_PCI_DETECTOR("ASUS TUF GeForce RTX 3060 Ti OC", REGISTER_I2C_PCI_DETECTOR("ASUS KO GeForce RTX 3060 Ti Gaming OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_DEV, ASUS_SUB_VEN, ASUS_KO_RTX3060TI_O8G_GAMING, 0x67); REGISTER_I2C_PCI_DETECTOR("ASUS KO GeForce RTX 3060 Ti Gaming OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_DEV, ASUS_SUB_VEN, ASUS_KO_RTX3060TI_08G_GAMING_2, 0x67); REGISTER_I2C_PCI_DETECTOR("ASUS TUF GeForce RTX 3060 Ti Gaming OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_3060TI_O8G_OC, 0x67); -REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX GeForce RTX 3060 Ti OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_3060TI_O8G_OC, 0x67); +REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX GeForce RTX 3060 Ti OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_RTX_3060TI_O8G_OC, 0x67); REGISTER_I2C_PCI_DETECTOR("ASUS TUF GeForce RTX 3060 Ti OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_3060TI_O8G_OC_V2, 0x67); REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX GeForce RTX 3060 Ti V2 OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_RTX_3060TI_O8G_V2_GAMING, 0x67); REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX GeForce RTX 3070 OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_RTX_3070_OC, 0x67); diff --git a/Controllers/EVGAGP102GPUController/EVGAGP102GPUControllerDetect.cpp b/Controllers/EVGAGP102GPUController/EVGAGP102GPUControllerDetect.cpp index 17a77106..710ca081 100644 --- a/Controllers/EVGAGP102GPUController/EVGAGP102GPUControllerDetect.cpp +++ b/Controllers/EVGAGP102GPUController/EVGAGP102GPUControllerDetect.cpp @@ -34,10 +34,10 @@ static const gpu_pci_device device_list[] = { NVIDIA_VEN, NVIDIA_GTX1080_DEV, EVGA_SUB_VEN, EVGA_GTX1080_FTW2_SUB_DEV, "EVGA GeForce GTX 1080 FTW2 Gaming" }, { NVIDIA_VEN, NVIDIA_GTX1080_DEV, EVGA_SUB_VEN, EVGA_GTX1080_FTW2_11G_SUB_DEV, "EVGA GeForce GTX 1080 FTW2 11G" }, { NVIDIA_VEN, NVIDIA_GTX1080_DEV, EVGA_SUB_VEN, EVGA_GTX1080_FTW2_DT_SUB_DEV, "EVGA GeForce GTX 1080 FTW2 DT" }, - { NVIDIA_VEN, NVIDIA_GTX1080TI_DEV, EVGA_SUB_VEN, EVGA_GTX1080TI_SC2_GAMING_SUB_DEV, "EVGA GeForce GTX 1080 Ti SC2 Gaming" }, - { NVIDIA_VEN, NVIDIA_GTX1080TI_DEV, EVGA_SUB_VEN, EVGA_GTX1080TI_FTW3_SUB_DEV, "EVGA GeForce GTX 1080 Ti FTW3" }, - { NVIDIA_VEN, NVIDIA_GTX1080TI_DEV, EVGA_SUB_VEN, EVGA_GTX1080TI_FTW3_HYBRID_SUB_DEV, "EVGA GeForce GTX 1080 Ti FTW3 Hybrid" }, - { NVIDIA_VEN, NVIDIA_GTX1080TI_DEV, EVGA_SUB_VEN, EVGA_GTX1080TI_KINGPIN_SUB_DEV, "EVGA GeForce GTX 1080 Ti K|NGP|N" }, + { NVIDIA_VEN, NVIDIA_GTX1080TI_DEV, EVGA_SUB_VEN, EVGA_GTX1080TI_SC2_GAMING_SUB_DEV, "EVGA GeForce GTX 1080 Ti SC2 Gaming" }, + { NVIDIA_VEN, NVIDIA_GTX1080TI_DEV, EVGA_SUB_VEN, EVGA_GTX1080TI_FTW3_SUB_DEV, "EVGA GeForce GTX 1080 Ti FTW3" }, + { NVIDIA_VEN, NVIDIA_GTX1080TI_DEV, EVGA_SUB_VEN, EVGA_GTX1080TI_FTW3_HYBRID_SUB_DEV, "EVGA GeForce GTX 1080 Ti FTW3 Hybrid" }, + { NVIDIA_VEN, NVIDIA_GTX1080TI_DEV, EVGA_SUB_VEN, EVGA_GTX1080TI_KINGPIN_SUB_DEV, "EVGA GeForce GTX 1080 Ti K|NGP|N" }, }; /******************************************************************************************\ * * diff --git a/Controllers/GainwardGPUController/GainwardGPUControllerDetect.cpp b/Controllers/GainwardGPUController/GainwardGPUControllerDetect.cpp index 509864d9..a49da401 100644 --- a/Controllers/GainwardGPUController/GainwardGPUControllerDetect.cpp +++ b/Controllers/GainwardGPUController/GainwardGPUControllerDetect.cpp @@ -102,7 +102,7 @@ void DetectGainwardGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, co } /* DetectGainwardGPUControllers() */ REGISTER_I2C_PCI_DETECTOR("Gainward GeForce GTX 1080 Phoenix", DetectGainwardGPUControllers, NVIDIA_VEN, NVIDIA_GTX1080_DEV, GAINWARD_SUB_VEN, GAINWARD_GTX_1080_PHOENIX, 0x08); -REGISTER_I2C_PCI_DETECTOR("Gainward GeForce GTX 1080 Ti Phoenix", DetectGainwardGPUControllers, NVIDIA_VEN, NVIDIA_GTX1080TI_DEV, GAINWARD_SUB_VEN, GAINWARD_GTX_1080_TI_PHOENIX, 0x08); +REGISTER_I2C_PCI_DETECTOR("Gainward GeForce GTX 1080 Ti Phoenix", DetectGainwardGPUControllers, NVIDIA_VEN, NVIDIA_GTX1080TI_DEV, GAINWARD_SUB_VEN, GAINWARD_GTX_1080TI_PHOENIX, 0x08); REGISTER_I2C_PCI_DETECTOR("Gainward GeForce GTX 1660 SUPER Ghost", DetectGainwardGPUControllers, NVIDIA_VEN, NVIDIA_GTX1660S_DEV, NVIDIA_VEN, NVIDIA_GTX1660S_DEV, 0x49); REGISTER_I2C_PCI_DETECTOR("Gainward GeForce RTX 2070 SUPER Phantom", DetectGainwardGPUControllers, NVIDIA_VEN, NVIDIA_RTX2070S_OC_DEV, GAINWARD_SUB_VEN, NVIDIA_RTX2070S_OC_DEV, 0x49); REGISTER_I2C_PCI_DETECTOR("Gainward GeForce RTX 2080 Phoenix GS", DetectGainwardGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080_DEV, GAINWARD_SUB_VEN, NVIDIA_RTX2080_A_DEV, 0x49); diff --git a/Controllers/GalaxGPUController/GalaxGPUControllerDetect.cpp b/Controllers/GalaxGPUController/GalaxGPUControllerDetect.cpp index cfc9a276..a25eb5ec 100644 --- a/Controllers/GalaxGPUController/GalaxGPUControllerDetect.cpp +++ b/Controllers/GalaxGPUController/GalaxGPUControllerDetect.cpp @@ -65,4 +65,4 @@ REGISTER_I2C_PCI_DETECTOR("KFA2 GeForce RTX 2070 OC", Dete REGISTER_I2C_PCI_DETECTOR("GALAX GeForce RTX 2070 SUPER EX Gamer Black", DetectGalaxGPUControllers, NVIDIA_VEN, NVIDIA_RTX2070S_OC_DEV, NVIDIA_SUB_VEN, GALAX_RTX_2070S_EX_GAMER_BLACK_SUB_DEV, 0x23); REGISTER_I2C_PCI_DETECTOR("KFA2 GeForce RTX 2080 EX OC", DetectGalaxGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080_DEV, NVIDIA_SUB_VEN, KFA2_RTX_2080_EX_OC_SUB_DEV, 0x23); REGISTER_I2C_PCI_DETECTOR("KFA2 GeForce RTX 2080 SUPER EX OC", DetectGalaxGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080S_DEV, NVIDIA_SUB_VEN, KFA2_RTX_2080_SUPER_EX_OC_SUB_DEV, 0x23); -REGISTER_I2C_PCI_DETECTOR("KFA2 GeForce RTX 2080 Ti EX OC", DetectGalaxGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080TI_DEV, NVIDIA_SUB_VEN, KFA2_RTX_2080_TI_EX_OC_SUB_DEV, 0x23); +REGISTER_I2C_PCI_DETECTOR("KFA2 GeForce RTX 2080 Ti EX OC", DetectGalaxGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080TI_DEV, NVIDIA_SUB_VEN, KFA2_RTX_2080TI_EX_OC_SUB_DEV, 0x23); diff --git a/Controllers/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUControllerDetect.cpp b/Controllers/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUControllerDetect.cpp index 7792ae80..cdbb4494 100644 --- a/Controllers/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUControllerDetect.cpp +++ b/Controllers/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUControllerDetect.cpp @@ -149,7 +149,7 @@ REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 2070 SUPER Gaming OC 3X", REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 2070 SUPER Gaming OC 3X White", DetectGigabyteRGBFusionGPUControllers, NVIDIA_VEN, NVIDIA_RTX2070S_OC_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX2070S_GAMING_OC_3X_WHITE_SUB_DEV, 0x47); REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 2080 Gaming OC", DetectGigabyteRGBFusionGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX2080_GAMING_OC_SUB_DEV, 0x47); REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 2080 Gaming OC", DetectGigabyteRGBFusionGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080_A_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX2080_A_GAMING_OC_SUB_DEV, 0x47); -REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 2080 Ti GAMING OC", DetectGigabyteRGBFusionGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080TI_A_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX2080_TI_GAMING_OC_SUB_DEV, 0x47); +REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 2080 Ti GAMING OC", DetectGigabyteRGBFusionGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080TI_A_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX2080TI_GAMING_OC_SUB_DEV, 0x47); REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 2080 SUPER Gaming OC", DetectGigabyteRGBFusionGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX2080S_GAMING_OC_SUB_DEV, 0x47); REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3050 Gaming OC", DetectGigabyteRGBFusionGPUControllers, NVIDIA_VEN, NVIDIA_RTX3050_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3050_GAMING_OC_8GB_SUB_DEV, 0x62); REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3060 EAGLE OC", DetectGigabyteRGBFusionGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060_EAGLE_OC_12GB_SUB_DEV, 0x63); diff --git a/Controllers/LogitechController/LogitechControllerDetect.cpp b/Controllers/LogitechController/LogitechControllerDetect.cpp index ea8687ba..08472a72 100644 --- a/Controllers/LogitechController/LogitechControllerDetect.cpp +++ b/Controllers/LogitechController/LogitechControllerDetect.cpp @@ -681,7 +681,7 @@ REGISTER_HID_DETECTOR_IPU("Logitech G203 Lightsync", Dete REGISTER_HID_DETECTOR_IP ("Logitech G303 Daedalus Apex", DetectLogitechMouseG303, LOGITECH_VID, LOGITECH_G303_PID, 1, 0xFF00); REGISTER_HID_DETECTOR_IP ("Logitech G403 HERO", DetectLogitechMouseG403, LOGITECH_VID, LOGITECH_G403_HERO_PID, 1, 0xFF00); REGISTER_HID_DETECTOR_IP ("Logitech G Pro Gaming Mouse", DetectLogitechMouseGPRO, LOGITECH_VID, LOGITECH_G_PRO_PID, 1, 0xFF00); -REGISTER_HID_DETECTOR_IP ("Logitech G Pro HERO Gaming Mouse", DetectLogitechMouseGPRO, LOGITECH_VID, LOGITECH_G_PRO_HERO_PID, 1, 0xFF00); +REGISTER_HID_DETECTOR_IP ("Logitech G Pro HERO Gaming Mouse", DetectLogitechMouseGPRO, LOGITECH_VID, LOGITECH_G_PRO_HERO_PID, 1, 0xFF00); /*-------------------------------------------------------------------------------------------------------------------------------------------------*\ | Speakers | \*-------------------------------------------------------------------------------------------------------------------------------------------------*/ @@ -913,7 +913,6 @@ REGISTER_HID_DETECTOR_IPU("Logitech Powerplay Mat", \*-------------------------------------------------------------------------------------------------------------------------------------------------*/ REGISTER_HID_DETECTOR_IPU("Logitech G502 Proteus Spectrum Gaming Mouse", DetectLogitechWired, LOGITECH_VID, LOGITECH_G502_PROTEUS_SPECTRUM_PID, 1, 0xFF00, 2); REGISTER_HID_DETECTOR_IPU("Logitech G502 HERO Gaming Mouse", DetectLogitechWired, LOGITECH_VID, LOGITECH_G502_HERO_PID, 1, 0xFF00, 2); - REGISTER_HID_DETECTOR_IPU("Logitech G403 Prodigy Gaming Mouse", DetectLogitechWired, LOGITECH_VID, LOGITECH_G403_PID, 1, 0xFF00, 2); REGISTER_HID_DETECTOR_IPU("Logitech G403 Wireless Gaming Mouse (wired)", DetectLogitechWired, LOGITECH_VID, LOGITECH_G403_LIGHTSPEED_PID, 1, 0xFF00, 2); REGISTER_HID_DETECTOR_IPU("Logitech G502 Wireless Gaming Mouse (wired)", DetectLogitechWired, LOGITECH_VID, LOGITECH_G502_LIGHTSPEED_PID, 1, 0xFF00, 2); diff --git a/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp b/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp index 1c713b56..0294177a 100644 --- a/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp +++ b/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp @@ -54,7 +54,7 @@ static const nv_gpu_pci_device device_list[] = {NVIDIA_VEN, NVIDIA_RTX3060_LHR_DEV, NVIDIA_VEN, NVIDIA_RTX3060_LHR_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGB, "Palit GeForce RTX 3060 LHR" }, {NVIDIA_VEN, NVIDIA_RTX3060_LHR_DEV, PNY_SUB_VEN, PNY_RTX_3060_XLR8_REVEL_EPIC_X_SUB_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGB, "PNY GeForce RTX 3060 XLR8 REVEL EPIC-X" }, {NVIDIA_VEN, NVIDIA_RTX3060_GA104_DEV, PNY_SUB_VEN, PNY_RTX_3060_XLR8_REVEL_EPIC_X_SUB_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGB, "PNY GeForce RTX 3060 XLR8 REVEL EPIC-X" }, - {NVIDIA_VEN, NVIDIA_RTX3060_GA104_DEV, NVIDIA_VEN, NVIDIA_RTX3060_GA104_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGB, "Palit GeForce RTX 3060 LHR (GA104)" }, + {NVIDIA_VEN, NVIDIA_RTX3060_GA104_DEV, NVIDIA_VEN, NVIDIA_RTX3060_GA104_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGB, "Palit GeForce RTX 3060 LHR" }, {NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, PNY_SUB_VEN, PNY_RTX_3060TI_XLR8_REVEL_EPIC_X_SUB_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGB, "PNY GeForce RTX 3060 Ti XLR8 REVEL EPIC-X" }, {NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, NVIDIA_VEN, PNY_RTX_3060TI_XLR8_REVEL_EPIC_X_SUB_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGB, "PNY GeForce RTX 3060 Ti XLR8 REVEL EPIC-X" }, {NVIDIA_VEN, NVIDIA_RTX3060TI_V1_LHR_DEV, NVIDIA_VEN, NVIDIA_RTX3060TI_V1_LHR_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGB, "NVIDIA GeForce RTX 3060 Ti V1 LHR" }, @@ -106,7 +106,7 @@ void DetectNVIDIAIllumGPUs() pci_subsystem_vendor == device_list[dev_idx].pci_subsystem_vendor && pci_subsystem_device == device_list[dev_idx].pci_subsystem_device) { - LOG_DEBUG("[%s] NVidia NvAPI Illumination GPU found", device_list[dev_idx].name); + LOG_DEBUG("[%s] Nvidia NvAPI Illumination GPU found", device_list[dev_idx].name); switch(device_list[dev_idx].gpu_rgb_version) { case NVIDIA_ILLUMINATION_V1: @@ -126,4 +126,4 @@ void DetectNVIDIAIllumGPUs() } } -REGISTER_DETECTOR("NVidia NvAPI Illumination", DetectNVIDIAIllumGPUs); +REGISTER_DETECTOR("Nvidia NvAPI Illumination", DetectNVIDIAIllumGPUs); diff --git a/Controllers/NvidiaESAController/RGBController_NvidiaESA.cpp b/Controllers/NvidiaESAController/RGBController_NvidiaESA.cpp index b4ad441e..3e15e205 100644 --- a/Controllers/NvidiaESAController/RGBController_NvidiaESA.cpp +++ b/Controllers/NvidiaESAController/RGBController_NvidiaESA.cpp @@ -14,7 +14,7 @@ #include "RGBController_NvidiaESA.h" /**------------------------------------------------------------------*\ - @name NVidia ESA + @name Nvidia ESA @category Case @type USB @save :x: diff --git a/Controllers/SonyGamepadController/SonyGamepadControllerDetect.cpp b/Controllers/SonyGamepadController/SonyGamepadControllerDetect.cpp index 892d95a4..d9f0bbf5 100644 --- a/Controllers/SonyGamepadController/SonyGamepadControllerDetect.cpp +++ b/Controllers/SonyGamepadController/SonyGamepadControllerDetect.cpp @@ -48,7 +48,7 @@ void DetectSonyDualSenseControllers(hid_device_info* info, const std::string&) } } -REGISTER_HID_DETECTOR("Sony PlayStation DualShock 4", DetectSonyDS4Controllers, SONY_VID, SONY_DS4_V1_PID); -REGISTER_HID_DETECTOR("Sony PlayStation DualShock 4", DetectSonyDS4Controllers, SONY_VID, SONY_DS4_V2_PID); -REGISTER_HID_DETECTOR("Sony PlayStation DualShock 4", DetectSonyDS4Controllers, SONY_VID, SONY_DS4_RECEIVER_PID); -REGISTER_HID_DETECTOR("Sony PlayStation DualSense", DetectSonyDualSenseControllers, SONY_VID, SONY_DUALSENSE_PID); +REGISTER_HID_DETECTOR("Sony DualShock 4", DetectSonyDS4Controllers, SONY_VID, SONY_DS4_V1_PID); +REGISTER_HID_DETECTOR("Sony DualShock 4", DetectSonyDS4Controllers, SONY_VID, SONY_DS4_V2_PID); +REGISTER_HID_DETECTOR("Sony DualShock 4", DetectSonyDS4Controllers, SONY_VID, SONY_DS4_RECEIVER_PID); +REGISTER_HID_DETECTOR("Sony DualSense", DetectSonyDualSenseControllers, SONY_VID, SONY_DUALSENSE_PID); diff --git a/i2c_smbus/i2c_smbus_linux.cpp b/i2c_smbus/i2c_smbus_linux.cpp index 5afe958e..1f0e57ab 100644 --- a/i2c_smbus/i2c_smbus_linux.cpp +++ b/i2c_smbus/i2c_smbus_linux.cpp @@ -126,7 +126,7 @@ bool i2c_smbus_linux_detect() pci_subsystem_device = 0; port_id = 0; - // Get port ID for NVidia GPUs + // Get port ID for Nvidia GPUs sscanf(device_string, "NVIDIA i2c adapter %hu at", &port_id); // Get device path diff --git a/i2c_smbus/i2c_smbus_nvapi.cpp b/i2c_smbus/i2c_smbus_nvapi.cpp index b62c3f93..2bf5f9bd 100644 --- a/i2c_smbus/i2c_smbus_nvapi.cpp +++ b/i2c_smbus/i2c_smbus_nvapi.cpp @@ -1,7 +1,7 @@ /*---------------------------------------------------------*\ | i2c_smbus_nvapi.cpp | | | -| NVidia NvAPI I2C driver | +| Nvidia NvAPI I2C driver | | | | Adam Honse (CalcProgrammer1) 21 Feb 2020 | | | @@ -182,7 +182,7 @@ bool i2c_smbus_nvapi_detect() { i2c_smbus_nvapi * nvapi_bus = new i2c_smbus_nvapi(gpu_handles[gpu_idx]); - snprintf(nvapi_bus->device_name, 512, "NVidia NvAPI I2C on GPU %d", gpu_idx); + snprintf(nvapi_bus->device_name, 512, "Nvidia NvAPI I2C on GPU %d", gpu_idx); res = NvAPI_GPU_GetPCIIdentifiers(gpu_handles[gpu_idx], &device_id, &sub_system_id, &revision_id, &ext_device_id); diff --git a/i2c_smbus/i2c_smbus_nvapi.h b/i2c_smbus/i2c_smbus_nvapi.h index 698e2362..09d2be2c 100644 --- a/i2c_smbus/i2c_smbus_nvapi.h +++ b/i2c_smbus/i2c_smbus_nvapi.h @@ -1,7 +1,7 @@ /*---------------------------------------------------------*\ | i2c_smbus_nvapi.h | | | -| NVidia NvAPI I2C driver | +| Nvidia NvAPI I2C driver | | | | Adam Honse (CalcProgrammer1) 21 Feb 2020 | | | diff --git a/pci_ids/pci_ids.h b/pci_ids/pci_ids.h index eda82960..98e7aa87 100644 --- a/pci_ids/pci_ids.h +++ b/pci_ids/pci_ids.h @@ -226,7 +226,7 @@ #define ASUS_KO_RTX3060TI_O8G_V2_GAMING 0x883E #define ASUS_TUF_RTX_3060TI_O8G 0x88AC #define ASUS_TUF_RTX_3060TI_O8G_OC 0x87C6 -#define ASUS_ROG_STRIX_3060TI_O8G_OC 0x87BA +#define ASUS_ROG_STRIX_RTX_3060TI_O8G_OC 0x87BA #define ASUS_ROG_STRIX_RTX_3060TI_O8G_V2_GAMING 0x8834 #define ASUS_TUF_RTX_3060TI_O8G_OC_V2 0x8827 #define ASUS_ROG_STRIX_RTX_3070_OC 0x87B8 @@ -305,21 +305,21 @@ #define ASUS_TUF_RTX_4080_16G_GAMING_2 0x88CB #define ASUS_TUF_RTX_4080_O16G_GAMING 0x88CA #define ASUS_TUF_RTX_4080_O16G_OC_GAMING 0x88A1 -#define ASUS_TUF_RTX_4080S_16G_GAMING 0x8963 -#define ASUS_TUF_RTX_4080S_O16G_OC_GAMING 0x8962 -#define ASUS_TUF_RTX_4090_O24G_OC_GAMING 0x889A -#define ASUS_TUF_RTX_4090_O24G_GAMING 0x889B -#define ASUS_TUF_RTX_4090_O24G_GAMING_2 0x88E2 -#define ASUS_TUF_RTX_4090_O24G_GAMING_3 0x88E3 -#define ASUS_TUF_RTX_4090_O24G_OG_OC_GAMING 0x88E6 #define ASUS_ROG_STRIX_RTX_4080_16G_GAMING 0x88C0 #define ASUS_ROG_STRIX_RTX_4080_16G_GAMING_WHITE 0x88C9 #define ASUS_ROG_STRIX_RTX_4080_O16G_GAMING_WHITE 0x88C8 #define ASUS_ROG_STRIX_RTX_4080_O16G_GAMING 0x88BF #define ASUS_ROG_STRIX_RTX_4080_O16G_GAMING_2 0x889F +#define ASUS_TUF_RTX_4080S_16G_GAMING 0x8963 +#define ASUS_TUF_RTX_4080S_O16G_OC_GAMING 0x8962 #define ASUS_ROG_STRIX_RTX_4080S_016G_GAMING 0x8964 #define ASUS_ROG_STRIX_RTX_4080S_16G_GAMING_WHITE 0x8969 #define ASUS_ROG_STRIX_RTX_4080S_016G_GAMING_WHITE 0x8968 +#define ASUS_TUF_RTX_4090_O24G_OC_GAMING 0x889A +#define ASUS_TUF_RTX_4090_O24G_GAMING 0x889B +#define ASUS_TUF_RTX_4090_O24G_GAMING_2 0x88E2 +#define ASUS_TUF_RTX_4090_O24G_GAMING_3 0x88E3 +#define ASUS_TUF_RTX_4090_O24G_OG_OC_GAMING 0x88E6 #define ASUS_ROG_STRIX_LC_RTX_4090_O24G_GAMING 0x88E8 #define ASUS_ROG_STRIX_RTX_4090_24G_GAMING 0x889D #define ASUS_ROG_STRIX_RTX_4090_O24G_GAMING 0x889C @@ -379,22 +379,22 @@ #define COLORFUL_IGAME_RTX_3060_ADVANCED_OC_12G_LV 0x140A #define COLORFUL_IGAME_RTX_3060_ULTRAW_OC_12G 0x150A #define COLORFUL_IGAME_RTX_3060_ULTRAW_OC_12G_2 0x1501 -#define COLORFUL_IGAME_RTX_3060_TI_ADVANCED_OC 0x1401 +#define COLORFUL_IGAME_RTX_3060TI_ADVANCED_OC 0x1401 #define COLORFUL_IGAME_RTX_3070_ADVANCED_OCV 0x140A #define COLORFUL_IGAME_RTX_3070_ADVANCED_OCV2 0x1401 #define COLORFUL_IGAME_RTX_3070_ULTRAW_OC 0x150A -#define COLORFUL_IGAME_RTX_3070_TI_ULTRAW_OC 0x1581 -#define COLORFUL_IGAME_RTX_3070_TI_ADVANCED_OCV2 0x1400 +#define COLORFUL_IGAME_RTX_3070TI_ULTRAW_OC 0x1581 +#define COLORFUL_IGAME_RTX_3070TI_ADVANCED_OCV2 0x1400 #define COLORFUL_IGAME_RTX_3080_ADVANCED_OC_10G 0x1401 -#define COLORFUL_IGAME_RTX_3080_TI_ADVANCED_OCV2 0x1401 +#define COLORFUL_IGAME_RTX_3080TI_ADVANCED_OCV2 0x1401 #define COLORFUL_IGAME_RTX_3080_ULTRAW_OC_10G 0x1501 #define COLORFUL_IGAME_RTX_3080_ULTRAW_OC_10G_2 0x150A #define COLORFUL_IGAME_RTX_4070_VULCAN_OCV 0x1200 -#define COLORFUL_IGAME_RTX_4070_SUPER_ULTRA_W_OC_12GB 0x1500 +#define COLORFUL_IGAME_RTX_4070_SUPER_ULTRA_W_OC 0x1500 #define COLORFUL_IGAME_RTX_4070S_ULTRAW_OCV 0x1500 -#define COLORFUL_IGAME_RTX_4070_TI_ADVANCED_OCV 0x1400 -#define COLORFUL_IGAME_RTX_4070_TI_SUPER_ADVANCED_OCV2 0x1400 -#define COLORFUL_IGAME_RTX_4070_TI_SUPER_ULTRA_W_16GB 0x1500 +#define COLORFUL_IGAME_RTX_4070TI_ADVANCED_OCV 0x1400 +#define COLORFUL_IGAME_RTX_4070TI_SUPER_ADVANCED_OCV2 0x1400 +#define COLORFUL_IGAME_RTX_4070TI_SUPER_ULTRA_W 0x1500 #define COLORFUL_IGAME_RTX_4080_ULTRAW_OCV 0x1500 #define COLORFUL_IGAME_RTX_4080_ULTRAW_OCV2 0x1501 #define COLORFUL_IGAME_RTX_4090_ADVANCED_OCV 0x1400 @@ -504,7 +504,7 @@ | Gainward Sub-Device IDs | \*-----------------------------------------------------*/ #define GAINWARD_GTX_1080_PHOENIX 0x1B80 -#define GAINWARD_GTX_1080_TI_PHOENIX 0x1B06 +#define GAINWARD_GTX_1080TI_PHOENIX 0x1B06 #define GAINWARD_RTX3050_SUB_DEV 0x2507 #define GAINWARD_RTX_3070_PHANTOM 0xF279 #define GAINWARD_RTX_4070_GHOST_SUB_DEV 0xF303 @@ -517,7 +517,7 @@ #define GALAX_RTX_2070S_EX_GAMER_BLACK_SUB_DEV 0x139F #define KFA2_RTX_2080_EX_OC_SUB_DEV 0x12B0 #define KFA2_RTX_2080_SUPER_EX_OC_SUB_DEV 0x13A1 -#define KFA2_RTX_2080_TI_EX_OC_SUB_DEV 0x1323 +#define KFA2_RTX_2080TI_EX_OC_SUB_DEV 0x1323 /*-----------------------------------------------------*\ | Gigabyte (Aorus) Sub-Device IDs | @@ -569,7 +569,7 @@ #define GIGABYTE_RTX2070S_GAMING_OC_3X_SUB_DEV 0x4008 #define GIGABYTE_RTX2070S_GAMING_OC_3X_WHITE_SUB_DEV 0x400D #define GIGABYTE_RTX2080_A_GAMING_OC_SUB_DEV 0x37A7 -#define GIGABYTE_RTX2080_TI_GAMING_OC_SUB_DEV 0x37A9 +#define GIGABYTE_RTX2080TI_GAMING_OC_SUB_DEV 0x37A9 #define GIGABYTE_RTX2080_GAMING_OC_SUB_DEV 0x37D6 #define GIGABYTE_AORUS_RTX2080_SUB_DEV_H 0x37B2 #define GIGABYTE_AORUS_RTX2080_SUB_DEV_P 0x37B3 diff --git a/scripts/banner.bmp b/scripts/banner.bmp index 654eb347c904f4e738679761add4e5a7569a6403..a46a9e5a18035cf9e8d4289d721cf4d642c247e6 100644 GIT binary patch literal 85894 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 Xm1T4J$NDpJ2mv7=1cbl~Oo09k3Jm8w literal 85896 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