mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-01-21 13:38:20 -05:00
add support for manli RTX 4090 gallardo issue #4168
This commit is contained in:
61
Controllers/ManliGPUController/ManliGPUControllerDetect.cpp
Normal file
61
Controllers/ManliGPUController/ManliGPUControllerDetect.cpp
Normal file
@@ -0,0 +1,61 @@
|
||||
/*---------------------------------------------------------*\
|
||||
| ManliGPUControllerDetect.cpp |
|
||||
| |
|
||||
| Detector for Manli GPU |
|
||||
| |
|
||||
| Based on ZotacV2GPUControllerDetect |
|
||||
| Adapted for Manli RTX 4090 Gallardo |
|
||||
| |
|
||||
| This file is part of the OpenRGB project |
|
||||
| SPDX-License-Identifier: GPL-2.0-or-later |
|
||||
\*---------------------------------------------------------*/
|
||||
|
||||
#include "Detector.h"
|
||||
#include "ManliGPUController.h"
|
||||
#include "RGBController_ManliGPU.h"
|
||||
#include "i2c_smbus.h"
|
||||
#include "pci_ids.h"
|
||||
#include "LogManager.h"
|
||||
|
||||
/******************************************************************************************\
|
||||
* *
|
||||
* DetectManliGPUControllers *
|
||||
* *
|
||||
* Detect Manli GPU RGB controllers on the enumerated I2C busses *
|
||||
* at address 0x49. *
|
||||
* *
|
||||
* bus - pointer to i2c_smbus_interface where RGB device is connected *
|
||||
* dev - I2C address of RGB device *
|
||||
* *
|
||||
\******************************************************************************************/
|
||||
|
||||
void DetectManliGPUControllers(i2c_smbus_interface* bus, u8 i2c_addr, const std::string& name)
|
||||
{
|
||||
u8 data_pkt[] = { MANLI_GPU_REG_RGB, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
if(bus->i2c_write_block(i2c_addr, sizeof(data_pkt), data_pkt) < 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
u8 rdata_pkt[I2C_SMBUS_BLOCK_MAX] = { 0x00 };
|
||||
int rdata_len = sizeof(rdata_pkt);
|
||||
|
||||
if(bus->i2c_read_block(i2c_addr, &rdata_len, rdata_pkt) >= 0)
|
||||
{
|
||||
ManliGPUController* controller = new ManliGPUController(bus, i2c_addr, name);
|
||||
RGBController_ManliGPU* rgb_controller = new RGBController_ManliGPU(controller);
|
||||
|
||||
if(rgb_controller->config.numberOfZones > 0)
|
||||
{
|
||||
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_ERROR("[%s] RGB controller not registered - invalid zone count: %d", name.c_str(), rgb_controller->config.numberOfZones);
|
||||
delete rgb_controller;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
REGISTER_I2C_PCI_DETECTOR("MANLI GeForce RTX 4090 Gallardo", DetectManliGPUControllers, NVIDIA_VEN, NVIDIA_RTX4090_DEV, NVIDIA_SUB_VEN, MANLI_RTX4090_GALLARDO_SUB_DEV, 0x49);
|
||||
|
||||
Reference in New Issue
Block a user