Add EVGA v2 controller for RTX2080 XC GAMING, only supports Off and Direct mode for now

This commit is contained in:
Adam Honse
2020-09-13 20:12:50 -05:00
parent 62488cbc1e
commit 2d53a2c7f1
10 changed files with 331 additions and 29 deletions

View File

@@ -1,7 +1,9 @@
#include "Detector.h"
#include "EVGAGPUv1Controller.h"
#include "EVGAGPUv2Controller.h"
#include "RGBController.h"
#include "RGBController_EVGAGPUv1.h"
#include "RGBController_EVGAGPUv2.h"
#include "i2c_smbus.h"
#include <vector>
#include <stdio.h>
@@ -16,6 +18,7 @@
| NVidia device IDs |
\*-----------------------------------------------------*/
#define NVIDIA_GTX1070_DEV 0x1B81
#define NVIDIA_RTX2080_DEV 0x1E87
/*-----------------------------------------------------*\
| EVGA sub-vendor ID |
@@ -26,6 +29,13 @@
| EVGA sub-device IDs |
\*-----------------------------------------------------*/
#define EVGA_GTX1070_FTW_SUB_DEV 0x6276
#define EVGA_RTX2080_XC_GAMING_SUB_DEV 0x2182
enum
{
EVGA_RGB_V1,
EVGA_RGB_V2,
};
typedef struct
{
@@ -33,6 +43,7 @@ typedef struct
int pci_device;
int pci_subsystem_vendor;
int pci_subsystem_device;
int gpu_rgb_version;
const char * name;
} gpu_pci_device;
@@ -40,7 +51,8 @@ typedef struct
static const gpu_pci_device device_list[] =
{
{ NVIDIA_VEN, NVIDIA_GTX1070_DEV, EVGA_SUB_VEN, EVGA_GTX1070_FTW_SUB_DEV, "EVGA GeForce GTX 1070 FTW" },
{ NVIDIA_VEN, NVIDIA_GTX1070_DEV, EVGA_SUB_VEN, EVGA_GTX1070_FTW_SUB_DEV, EVGA_RGB_V1, "EVGA GeForce GTX 1070 FTW" },
{ NVIDIA_VEN, NVIDIA_RTX2080_DEV, EVGA_SUB_VEN, EVGA_RTX2080_XC_GAMING_SUB_DEV, EVGA_RGB_V2, "EVGA GeForce RTX 2080 XC GAMING" },
};
/******************************************************************************************\
@@ -70,13 +82,32 @@ void DetectEVGAGPUControllers(std::vector<i2c_smbus_interface*>& busses, std::ve
busses[bus]->pci_subsystem_vendor == device_list[dev_idx].pci_subsystem_vendor &&
busses[bus]->pci_subsystem_device == device_list[dev_idx].pci_subsystem_device)
{
EVGAGPUv1Controller* new_controller;
RGBController_EVGAGPUv1* new_rgbcontroller;
switch(device_list[dev_idx].gpu_rgb_version)
{
case EVGA_RGB_V1:
{
EVGAGPUv1Controller* new_controller;
RGBController_EVGAGPUv1* new_rgbcontroller;
new_controller = new EVGAGPUv1Controller(busses[bus], 0x49);
new_rgbcontroller = new RGBController_EVGAGPUv1(new_controller);
new_rgbcontroller->name = device_list[dev_idx].name;
rgb_controllers.push_back(new_rgbcontroller);
new_controller = new EVGAGPUv1Controller(busses[bus], 0x49);
new_rgbcontroller = new RGBController_EVGAGPUv1(new_controller);
new_rgbcontroller->name = device_list[dev_idx].name;
rgb_controllers.push_back(new_rgbcontroller);
}
break;
case EVGA_RGB_V2:
{
EVGAGPUv2Controller* new_controller;
RGBController_EVGAGPUv2* new_rgbcontroller;
new_controller = new EVGAGPUv2Controller(busses[bus], 0x49);
new_rgbcontroller = new RGBController_EVGAGPUv2(new_controller);
new_rgbcontroller->name = device_list[dev_idx].name;
rgb_controllers.push_back(new_rgbcontroller);
}
break;
}
}
}
}