Skip to content

Commit b87691f

Browse files
Add detection of specific model of HyperX DRAM - Fury or Predator - and use that name if all sticks are the same type
1 parent 5841b2c commit b87691f

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

Controllers/HyperXDRAMController/HyperXDRAMControllerDetect.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ void DetectHyperXDRAMControllers(std::vector<i2c_smbus_interface*> &busses, std:
6363
for (unsigned int bus = 0; bus < busses.size(); bus++)
6464
{
6565
unsigned char slots_valid = 0x00;
66+
bool fury_detected = false;
67+
bool pred_detected = false;
6668

6769
IF_DRAM_SMBUS(busses[bus]->pci_vendor, busses[bus]->pci_device)
6870
{
@@ -82,6 +84,15 @@ void DetectHyperXDRAMControllers(std::vector<i2c_smbus_interface*> &busses, std:
8284
&&(busses[bus]->i2c_smbus_read_byte_data(slot_addr, 0x41) == 0x98))
8385
{
8486
slots_valid |= (1 << (slot_addr - 0x50));
87+
88+
if(busses[bus]->i2c_smbus_read_byte_data(slot_addr, 0x67) == 0x01)
89+
{
90+
fury_detected = true;
91+
}
92+
else
93+
{
94+
pred_detected = true;
95+
}
8596
}
8697

8798
std::this_thread::sleep_for(1ms);
@@ -91,6 +102,16 @@ void DetectHyperXDRAMControllers(std::vector<i2c_smbus_interface*> &busses, std:
91102
{
92103
new_hyperx = new HyperXDRAMController(busses[bus], 0x27, slots_valid);
93104
new_controller = new RGBController_HyperXDRAM(new_hyperx);
105+
106+
if(fury_detected && !pred_detected)
107+
{
108+
new_controller->name = "HyperX Fury RGB";
109+
}
110+
else if(!fury_detected && pred_detected)
111+
{
112+
new_controller->name = "HyperX Predator RGB";
113+
}
114+
94115
rgb_controllers.push_back(new_controller);
95116
}
96117
}

0 commit comments

Comments
 (0)