168 lines
14 KiB
C
168 lines
14 KiB
C
#ifndef EVGA_CARD_H
|
|
#define EVGA_CARD_H
|
|
|
|
#define NVIDIA_VEN 0x10DE
|
|
|
|
#define NVIDIA_RTX3060_DEV 0x2503
|
|
#define NVIDIA_RTX3060_GA104_DEV 0x2487
|
|
#define NVIDIA_RTX3060_GA106_DEV 0x2503
|
|
#define NVIDIA_RTX3060_LHR_DEV 0x2504
|
|
#define NVIDIA_RTX3060TI_DEV 0x2486
|
|
#define NVIDIA_RTX3060TI_GDDR6X_DEV 0x24C9
|
|
#define NVIDIA_RTX3060TI_LHR_DEV 0x2489
|
|
#define NVIDIA_RTX3060TI_V1_LHR_DEV 0x2414
|
|
#define NVIDIA_RTX3070_DEV 0x2484
|
|
#define NVIDIA_RTX3070_LHR_DEV 0x2488
|
|
#define NVIDIA_RTX3070TI_DEV 0x2482
|
|
#define NVIDIA_RTX3070TI_GA102_DEV 0x2207
|
|
#define NVIDIA_RTX3080_DEV 0x2206
|
|
#define NVIDIA_RTX3080_LHR_DEV 0x2216
|
|
#define NVIDIA_RTX3080_12G_LHR_DEV 0x220A
|
|
#define NVIDIA_RTX3080TI_DEV 0x2208
|
|
#define NVIDIA_RTX3090_DEV 0x2204
|
|
#define NVIDIA_RTX3090TI_DEV 0x2203
|
|
|
|
#define EVGA_SUB_VEN 0x3842
|
|
|
|
#define EVGA_RTX3060TI_FTW3_GAMING_SUB_DEV 0x3665
|
|
#define EVGA_RTX3060TI_FTW3_ULTRA_SUB_DEV 0x3667
|
|
#define EVGA_RTX3060TI_FTW3_ULTRA_KL_SUB_DEV 0x4667
|
|
#define EVGA_RTX3070_XC3_BLACK_SUB_DEV 0x3751
|
|
#define EVGA_RTX3070_XC3_GAMING_SUB_DEV 0x3753
|
|
#define EVGA_RTX3070_XC3_ULTRA_SUB_DEV 0x3755
|
|
#define EVGA_RTX3070_XC3_ULTRA_LHR_SUB_DEV 0x4755
|
|
#define EVGA_RTX3070_XC3_ULTRA_GAMING_LHR_SUB_DEV 0x4455
|
|
#define EVGA_RTX3070_FTW3_ULTRA_SUB_DEV 0x3767
|
|
#define EVGA_RTX3070_FTW3_ULTRA_LHR_SUB_DEV 0x4767
|
|
#define EVGA_RTX3070TI_XC3_GAMING_SUB_DEV 0x3783
|
|
#define EVGA_RTX3070TI_XC3_ULTRA_SUB_DEV 0x3785
|
|
#define EVGA_RTX3070TI_XC3_ULTRA_V2_SUB_DEV 0x3485
|
|
#define EVGA_RTX3070TI_FTW3_ULTRA_SUB_DEV 0x3797
|
|
#define EVGA_RTX3070TI_FTW3_ULTRA_V2_SUB_DEV 0x3497
|
|
#define EVGA_RTX3080_XC3_BLACK_SUB_DEV 0x3881
|
|
#define EVGA_RTX3080_XC3_BLACK_LHR_SUB_DEV 0x4881
|
|
#define EVGA_RTX3080_XC3_GAMING_SUB_DEV 0x3883
|
|
#define EVGA_RTX3080_XC3_GAMING_LHR_SUB_DEV 0x4883
|
|
#define EVGA_RTX3080_XC3_ULTRA_SUB_DEV 0x3885
|
|
#define EVGA_RTX3080_XC3_ULTRA_LHR_SUB_DEV 0x4885
|
|
#define EVGA_RTX3080_XC3_ULTRA_HYBRID_SUB_DEV 0x3888
|
|
#define EVGA_RTX3080_XC3_ULTRA_HYBRID_LHR_SUB_DEV 0x4888
|
|
#define EVGA_RTX3080_XC3_ULTRA_HC_SUB_DEV 0x3889
|
|
#define EVGA_RTX3080_FTW3_GAMING_SUB_DEV 0x3895
|
|
#define EVGA_RTX3080_FTW3_ULTRA_SUB_DEV 0x3897
|
|
#define EVGA_RTX3080_FTW3_ULTRA_LHR_SUB_DEV 0x4897
|
|
#define EVGA_RTX3080_FTW3_ULTRA_LHR_V2_SUB_DEV 0x4297
|
|
#define EVGA_RTX3080_FTW3_ULTRA_HYBRID_SUB_DEV 0x3898
|
|
#define EVGA_RTX3080_FTW3_ULTRA_HYBRID_LHR_SUB_DEV 0x4898
|
|
#define EVGA_RTX3080_FTW3_ULTRA_HYBRID_GAMING_SUB_DEV 0x4878
|
|
#define EVGA_RTX3080_FTW3_ULTRA_HC_SUB_DEV 0x3899
|
|
#define EVGA_RTX3080_12G_XC3_ULTRA_SUB_DEV 0x4865
|
|
#define EVGA_RTX3080_12G_FTW3_ULTRA_SUB_DEV 0x4877
|
|
#define EVGA_RTX3080_12G_FTW3_ULTRA_HC_SUB_DEV 0x4879
|
|
#define EVGA_RTX3080TI_XC3_GAMING_SUB_DEV 0x3953
|
|
#define EVGA_RTX3080TI_XC3_ULTRA_GAMING_SUB_DEV 0x3955
|
|
#define EVGA_RTX3080TI_XC3_GAMING_HYBRID_SUB_DEV 0x3958
|
|
#define EVGA_RTX3080TI_XC3_GAMING_HC_SUB_DEV 0x3959
|
|
#define EVGA_RTX3080TI_FTW3_ULTRA_SUB_DEV 0x3967
|
|
#define EVGA_RTX3080TI_FTW3_ULTRA_HYBRID_SUB_DEV 0x3968
|
|
#define EVGA_RTX3080TI_FTW3_ULTRA_HC_SUB_DEV 0x3969
|
|
#define EVGA_RTX3090_XC3_BLACK_SUB_DEV 0x3971
|
|
#define EVGA_RTX3090_XC3_GAMING_SUB_DEV 0x3973
|
|
#define EVGA_RTX3090_XC3_ULTRA_SUB_DEV 0x3975
|
|
#define EVGA_RTX3090_XC3_ULTRA_HYBRID_SUB_DEV 0x3978
|
|
#define EVGA_RTX3090_XC3_ULTRA_HC_SUB_DEV 0x3979
|
|
#define EVGA_RTX3090_FTW3_GAMING_SUB_DEV 0x3985
|
|
#define EVGA_RTX3090_FTW3_ULTRA_SUB_DEV 0x3987
|
|
#define EVGA_RTX3090_FTW3_ULTRA_V2_SUB_DEV 0x3982
|
|
#define EVGA_RTX3090_FTW3_ULTRA_V3_SUB_DEV 0x3387
|
|
#define EVGA_RTX3090_FTW3_ULTRA_HYBRID_SUB_DEV 0x3988
|
|
#define EVGA_RTX3090_FTW3_ULTRA_HC_SUB_DEV 0x3989
|
|
#define EVGA_RTX3090_KINGPIN_HYBRID_SUB_DEV 0x3998
|
|
#define EVGA_RTX3090_KINGPIN_HC_SUB_DEV 0x3999
|
|
#define EVGA_RTX3090TI_FTW3_BLACK_SUB_DEV 0x4981
|
|
#define EVGA_RTX3090TI_FTW3_GAMING_SUB_DEV 0x4983
|
|
#define EVGA_RTX3090TI_FTW3_ULTRA_GAMING_SUB_DEV 0x4985
|
|
|
|
struct card_info {
|
|
char *card_name;
|
|
char *pci_id;
|
|
char *i2c_dev_path;
|
|
int i2c_fd;
|
|
int product_id;
|
|
};
|
|
|
|
struct gpu_pci_info {
|
|
char *card_name;
|
|
unsigned short vendor_id;
|
|
unsigned short device_id;
|
|
unsigned short subvendor_id;
|
|
unsigned short subdevice_id;
|
|
};
|
|
|
|
static struct gpu_pci_info evga_pci_ids[] =
|
|
{
|
|
{"EVGA GeForce RTX 3060 Ti FTW3 Gaming" , NVIDIA_VEN, NVIDIA_RTX3060TI_DEV, EVGA_SUB_VEN, EVGA_RTX3060TI_FTW3_GAMING_SUB_DEV },
|
|
{"EVGA GeForce RTX 3060 Ti FTW3 Ultra" , NVIDIA_VEN, NVIDIA_RTX3060TI_DEV, EVGA_SUB_VEN, EVGA_RTX3060TI_FTW3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3060 Ti FTW3 Ultra LHR" , NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3060TI_FTW3_ULTRA_KL_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 Black Gaming" , NVIDIA_VEN, NVIDIA_RTX3070_DEV, EVGA_SUB_VEN, EVGA_RTX3070_XC3_BLACK_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 XC3 Gaming" , NVIDIA_VEN, NVIDIA_RTX3070_DEV, EVGA_SUB_VEN, EVGA_RTX3070_XC3_GAMING_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 XC3 Ultra" , NVIDIA_VEN, NVIDIA_RTX3070_DEV, EVGA_SUB_VEN, EVGA_RTX3070_XC3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 XC3 Ultra LHR" , NVIDIA_VEN, NVIDIA_RTX3070_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3070_XC3_ULTRA_LHR_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 XC3 Ultra Gaming" , NVIDIA_VEN, NVIDIA_RTX3070_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3070_XC3_ULTRA_GAMING_LHR_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 FTW3 Ultra" , NVIDIA_VEN, NVIDIA_RTX3070_DEV, EVGA_SUB_VEN, EVGA_RTX3070_FTW3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 FTW3 Ultra LHR" , NVIDIA_VEN, NVIDIA_RTX3070_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3070_FTW3_ULTRA_LHR_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 Ti XC3 Gaming" , NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, EVGA_SUB_VEN, EVGA_RTX3070TI_XC3_GAMING_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 Ti XC3 Ultra" , NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, EVGA_SUB_VEN, EVGA_RTX3070TI_XC3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 Ti XC3 Ultra v2" , NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, EVGA_SUB_VEN, EVGA_RTX3070TI_XC3_ULTRA_V2_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 Ti FTW3 Ultra" , NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, EVGA_SUB_VEN, EVGA_RTX3070TI_FTW3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3070 Ti FTW3 Ultra v2" , NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, EVGA_SUB_VEN, EVGA_RTX3070TI_FTW3_ULTRA_V2_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 XC3 Black" , NVIDIA_VEN, NVIDIA_RTX3080_DEV, EVGA_SUB_VEN, EVGA_RTX3080_XC3_BLACK_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 XC3 Black LHR" , NVIDIA_VEN, NVIDIA_RTX3080_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3080_XC3_BLACK_LHR_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 XC3 Gaming" , NVIDIA_VEN, NVIDIA_RTX3080_DEV, EVGA_SUB_VEN, EVGA_RTX3080_XC3_GAMING_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 XC3 Gaming LHR" , NVIDIA_VEN, NVIDIA_RTX3080_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3080_XC3_GAMING_LHR_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 XC3 Ultra" , NVIDIA_VEN, NVIDIA_RTX3080_DEV, EVGA_SUB_VEN, EVGA_RTX3080_XC3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 XC3 Ultra LHR" , NVIDIA_VEN, NVIDIA_RTX3080_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3080_XC3_ULTRA_LHR_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 XC3 Ultra Hybrid" , NVIDIA_VEN, NVIDIA_RTX3080_DEV, EVGA_SUB_VEN, EVGA_RTX3080_XC3_ULTRA_HYBRID_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 XC3 Ultra Hybrid LHR" , NVIDIA_VEN, NVIDIA_RTX3080_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3080_XC3_ULTRA_HYBRID_LHR_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 XC3 Ultra Hydro Copper" , NVIDIA_VEN, NVIDIA_RTX3080_DEV, EVGA_SUB_VEN, EVGA_RTX3080_XC3_ULTRA_HC_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 FTW3 Gaming" , NVIDIA_VEN, NVIDIA_RTX3080_DEV, EVGA_SUB_VEN, EVGA_RTX3080_FTW3_GAMING_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 FTW3 Ultra" , NVIDIA_VEN, NVIDIA_RTX3080_DEV, EVGA_SUB_VEN, EVGA_RTX3080_FTW3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 FTW3 Ultra v2 LHR" , NVIDIA_VEN, NVIDIA_RTX3080_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3080_FTW3_ULTRA_LHR_V2_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 FTW3 Ultra LHR" , NVIDIA_VEN, NVIDIA_RTX3080_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3080_FTW3_ULTRA_LHR_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 FTW3 Ultra Hybrid" , NVIDIA_VEN, NVIDIA_RTX3080_DEV, EVGA_SUB_VEN, EVGA_RTX3080_FTW3_ULTRA_HYBRID_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 FTW3 Ultra Hybrid LHR" , NVIDIA_VEN, NVIDIA_RTX3080_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3080_FTW3_ULTRA_HYBRID_LHR_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 FTW3 Ultra Hybrid Gaming LHR" , NVIDIA_VEN, NVIDIA_RTX3080_12G_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3080_FTW3_ULTRA_HYBRID_GAMING_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 FTW3 Ultra Hydro Copper" , NVIDIA_VEN, NVIDIA_RTX3080_DEV, EVGA_SUB_VEN, EVGA_RTX3080_FTW3_ULTRA_HC_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 XC3 Ultra 12G" , NVIDIA_VEN, NVIDIA_RTX3080_12G_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3080_12G_XC3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 FTW3 Ultra 12GB" , NVIDIA_VEN, NVIDIA_RTX3080_12G_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3080_12G_FTW3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 FTW3 Ultra Hydro Copper 12G" , NVIDIA_VEN, NVIDIA_RTX3080_12G_LHR_DEV, EVGA_SUB_VEN, EVGA_RTX3080_12G_FTW3_ULTRA_HC_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 Ti XC3 Gaming" , NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, EVGA_SUB_VEN, EVGA_RTX3080TI_XC3_GAMING_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 Ti XC3 Ultra Gaming" , NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, EVGA_SUB_VEN, EVGA_RTX3080TI_XC3_ULTRA_GAMING_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 Ti XC3 Gaming Hybrid" , NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, EVGA_SUB_VEN, EVGA_RTX3080TI_XC3_GAMING_HYBRID_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 Ti XC3 Gaming Hydro Copper" , NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, EVGA_SUB_VEN, EVGA_RTX3080TI_XC3_GAMING_HC_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 Ti FTW3 Ultra" , NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, EVGA_SUB_VEN, EVGA_RTX3080TI_FTW3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 Ti FTW3 Ultra Hybrid" , NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, EVGA_SUB_VEN, EVGA_RTX3080TI_FTW3_ULTRA_HYBRID_SUB_DEV },
|
|
{"EVGA GeForce RTX 3080 Ti FTW3 Ultra Hydro Copper" , NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, EVGA_SUB_VEN, EVGA_RTX3080TI_FTW3_ULTRA_HC_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 XC3 Black" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_XC3_BLACK_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 XC3 Gaming" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_XC3_GAMING_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 XC3 Ultra" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_XC3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 XC3 Ultra Hybrid" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_XC3_ULTRA_HYBRID_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 XC3 Ultra Hydro Copper" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_XC3_ULTRA_HC_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 FTW3 Ultra" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_FTW3_ULTRA_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 FTW3 Ultra v2" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_FTW3_ULTRA_V2_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 FTW3 Ultra v3" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_FTW3_ULTRA_V3_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 FTW3 Ultra Hybrid" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_FTW3_ULTRA_HYBRID_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 FTW3 Ultra Hydro Copper" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_FTW3_ULTRA_HC_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 K|NGP|N Hybrid" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_KINGPIN_HYBRID_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 K|NGP|N Hydro Copper" , NVIDIA_VEN, NVIDIA_RTX3090_DEV, EVGA_SUB_VEN, EVGA_RTX3090_KINGPIN_HC_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 Ti FTW3 Black Gaming" , NVIDIA_VEN, NVIDIA_RTX3090TI_DEV, EVGA_SUB_VEN, EVGA_RTX3090TI_FTW3_BLACK_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 Ti FTW3 Gaming" , NVIDIA_VEN, NVIDIA_RTX3090TI_DEV, EVGA_SUB_VEN, EVGA_RTX3090TI_FTW3_GAMING_SUB_DEV },
|
|
{"EVGA GeForce RTX 3090 Ti FTW3 Ultra Gaming" , NVIDIA_VEN, NVIDIA_RTX3090TI_DEV, EVGA_SUB_VEN, EVGA_RTX3090TI_FTW3_ULTRA_GAMING_SUB_DEV }
|
|
};
|
|
|
|
int find_evga_gpu_i2cs(struct card_info *infos, int max_gpus);
|
|
unsigned short read_pci_id(char *device_path, char *field);
|
|
char *read_nvidia_pci_address(char *device_path);
|
|
|
|
#endif
|