Store name in GigabyteSuperIORGBController to avoid setting it in detector
This commit is contained in:
parent
2535ac3edf
commit
327edf2a6b
4 changed files with 47 additions and 38 deletions
|
|
@ -12,15 +12,22 @@
|
|||
#include "GigabyteSuperIORGBController.h"
|
||||
#include "super_io.h"
|
||||
|
||||
GigabyteSuperIORGBController::GigabyteSuperIORGBController(int sioaddr)
|
||||
GigabyteSuperIORGBController::GigabyteSuperIORGBController(int sioaddr, std::string dev_name)
|
||||
{
|
||||
gig_sioaddr = sioaddr;
|
||||
name = dev_name;
|
||||
}
|
||||
|
||||
GigabyteSuperIORGBController::~GigabyteSuperIORGBController()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
std::string GigabyteSuperIORGBController::GetDeviceName()
|
||||
{
|
||||
return(name);
|
||||
}
|
||||
|
||||
void GigabyteSuperIORGBController::ChipEntry()
|
||||
{
|
||||
/*--------------------------------*\
|
||||
|
|
@ -36,6 +43,7 @@ void GigabyteSuperIORGBController::ChipEntry()
|
|||
\*_-------------------------------*/
|
||||
superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_CHIPSELECT_REGISTER_1, GIGABYTE_SUPERIO_CHIPSELECT_VALUE_1);
|
||||
}
|
||||
|
||||
void GigabyteSuperIORGBController::ChipExit()
|
||||
{
|
||||
/*-----------------------------------------------------------------------------------*\
|
||||
|
|
@ -44,6 +52,7 @@ void GigabyteSuperIORGBController::ChipExit()
|
|||
\*_----------------------------------------------------------------------------------*/
|
||||
superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_CHIPEXIT_REGISTER_1, GIGABYTE_SUPERIO_CHIPEXIT_VALUE_1);
|
||||
}
|
||||
|
||||
void GigabyteSuperIORGBController::SetColor(unsigned int red, unsigned int green, unsigned int blue)
|
||||
{
|
||||
/*--------------------------------*\
|
||||
|
|
@ -75,11 +84,11 @@ void GigabyteSuperIORGBController::SetMode(int new_mode)
|
|||
ChipEntry();
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
/*-----------------------------------------------------*\
|
||||
| Write the colors to the color sequence registers |
|
||||
\*-----------------------------------------------------*/
|
||||
switch (new_mode)
|
||||
{
|
||||
{
|
||||
case GIGABYTE_MODE1_STATIC:
|
||||
superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_STATIC_REGISTER_1, GIGABYTE_SUPERIO_STATIC_VALUE_1);
|
||||
superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_STATIC_REGISTER_2, GIGABYTE_SUPERIO_STATIC_VALUE_2);
|
||||
|
|
@ -117,7 +126,8 @@ void GigabyteSuperIORGBController::SetMode(int new_mode)
|
|||
superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_FLASHING_REGISTER_5, GIGABYTE_SUPERIO_FLASHING_VALUE_5);
|
||||
superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_FLASHING_REGISTER_6, GIGABYTE_SUPERIO_FLASHING_VALUE_6);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(new_mode>=GIGABYTE_MODE1_STATIC && new_mode<=GIGABYTE_MODE1_FLASHING)
|
||||
{
|
||||
ChipExit();
|
||||
|
|
|
|||
|
|
@ -132,11 +132,10 @@ enum
|
|||
class GigabyteSuperIORGBController
|
||||
{
|
||||
public:
|
||||
GigabyteSuperIORGBController(int sioaddr);
|
||||
GigabyteSuperIORGBController(int sioaddr, std::string dev_name);
|
||||
~GigabyteSuperIORGBController();
|
||||
|
||||
std::string GetDeviceName();
|
||||
std::string GetDeviceLocation();
|
||||
|
||||
unsigned int GetMode();
|
||||
void SetMode(int new_mode);
|
||||
|
|
@ -145,5 +144,6 @@ public:
|
|||
void ChipEntry();
|
||||
void ChipExit();
|
||||
private:
|
||||
int gig_sioaddr;
|
||||
int gig_sioaddr;
|
||||
std::string name;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -29,13 +29,13 @@ static gig_device compatible_devices[] =
|
|||
|
||||
void DetectGigabyteSuperIORGBControllers()
|
||||
{
|
||||
int sio_addrs[2] = {0x2E, 0x4E};
|
||||
int sio_addrs[2] = {0x2E, 0x4E};
|
||||
|
||||
DMIInfo board;
|
||||
std::string board_dmi = board.getMainboard();
|
||||
std::string manufacturer = board.getManufacturer();
|
||||
std::string board_dmi = board.getMainboard();
|
||||
std::string manufacturer = board.getManufacturer();
|
||||
|
||||
if (manufacturer != "Gigabyte Technology Co., Ltd.")
|
||||
if(manufacturer != "Gigabyte Technology Co., Ltd.")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -53,11 +53,10 @@ void DetectGigabyteSuperIORGBControllers()
|
|||
case SIO_ITE8688_ID:
|
||||
for(unsigned int i = 0; i < NUM_COMPATIBLE_DEVICES; i++)
|
||||
{
|
||||
if (board_dmi.find(std::string(compatible_devices[i].name)) != std::string::npos)
|
||||
if(board_dmi.find(std::string(compatible_devices[i].name)) != std::string::npos)
|
||||
{
|
||||
GigabyteSuperIORGBController* controller = new GigabyteSuperIORGBController(sioaddr);
|
||||
GigabyteSuperIORGBController* controller = new GigabyteSuperIORGBController(sioaddr, "Gigabyte " + board_dmi);
|
||||
RGBController_GigabyteSuperIORGB* rgb_controller = new RGBController_GigabyteSuperIORGB(controller);
|
||||
rgb_controller->name = "Gigabyte " + board_dmi;
|
||||
|
||||
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -87,46 +87,46 @@
|
|||
|
||||
RGBController_GigabyteSuperIORGB::RGBController_GigabyteSuperIORGB(GigabyteSuperIORGBController* controller_ptr)
|
||||
{
|
||||
controller = controller_ptr;
|
||||
controller = controller_ptr;
|
||||
|
||||
name = "Gigabyte SuperIO Compatible Motherboard";
|
||||
vendor = "Gigabyte";
|
||||
type = DEVICE_TYPE_MOTHERBOARD;
|
||||
description = "Gigabyte SuperIO RGB Device";
|
||||
name = controller->GetDeviceName();
|
||||
vendor = "Gigabyte";
|
||||
type = DEVICE_TYPE_MOTHERBOARD;
|
||||
description = "Gigabyte SuperIO RGB Device";
|
||||
|
||||
mode Direct;
|
||||
Direct.name = "Direct";
|
||||
Direct.value = 0;
|
||||
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
|
||||
Direct.color_mode = MODE_COLORS_PER_LED;
|
||||
Direct.name = "Direct";
|
||||
Direct.value = 0;
|
||||
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
|
||||
Direct.color_mode = MODE_COLORS_PER_LED;
|
||||
modes.push_back(Direct);
|
||||
|
||||
mode Static;
|
||||
Static.name = "Static";
|
||||
Static.value = GIGABYTE_MODE1_STATIC;
|
||||
Static.flags = MODE_FLAG_HAS_PER_LED_COLOR;
|
||||
Static.color_mode = MODE_COLORS_PER_LED;
|
||||
Static.name = "Static";
|
||||
Static.value = GIGABYTE_MODE1_STATIC;
|
||||
Static.flags = MODE_FLAG_HAS_PER_LED_COLOR;
|
||||
Static.color_mode = MODE_COLORS_PER_LED;
|
||||
modes.push_back(Static);
|
||||
|
||||
mode Rainbow;
|
||||
Rainbow.name = "Rainbow";
|
||||
Rainbow.value = GIGABYTE_MODE1_RAINBOW;
|
||||
Rainbow.flags = MODE_FLAG_HAS_PER_LED_COLOR;
|
||||
Rainbow.color_mode = MODE_COLORS_PER_LED;
|
||||
Rainbow.name = "Rainbow";
|
||||
Rainbow.value = GIGABYTE_MODE1_RAINBOW;
|
||||
Rainbow.flags = MODE_FLAG_HAS_PER_LED_COLOR;
|
||||
Rainbow.color_mode = MODE_COLORS_PER_LED;
|
||||
modes.push_back(Rainbow);
|
||||
|
||||
mode Breathing;
|
||||
Breathing.name = "Breathing";
|
||||
Breathing.value = GIGABYTE_MODE1_BREATHING;
|
||||
Breathing.name = "Breathing";
|
||||
Breathing.value = GIGABYTE_MODE1_BREATHING;
|
||||
Breathing.flags = MODE_FLAG_HAS_PER_LED_COLOR;
|
||||
Breathing.color_mode = MODE_COLORS_PER_LED;
|
||||
modes.push_back(Breathing);
|
||||
|
||||
mode Flashing;
|
||||
Flashing.name = "Flashing";
|
||||
Flashing.value = GIGABYTE_MODE1_FLASHING;
|
||||
Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR;
|
||||
Flashing.color_mode = MODE_COLORS_PER_LED;
|
||||
Flashing.name = "Flashing";
|
||||
Flashing.value = GIGABYTE_MODE1_FLASHING;
|
||||
Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR;
|
||||
Flashing.color_mode = MODE_COLORS_PER_LED;
|
||||
modes.push_back(Flashing);
|
||||
|
||||
SetupZones();
|
||||
|
|
@ -149,7 +149,7 @@ void RGBController_GigabyteSuperIORGB::SetupZones()
|
|||
zones.push_back(gig_zone);
|
||||
|
||||
led gig_led;
|
||||
gig_led.name = "LED_C1";
|
||||
gig_led.name = "LED_C1";
|
||||
leds.push_back(gig_led);
|
||||
|
||||
SetupColors();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue