@@ -148,8 +148,11 @@ void PolychromeController::SetColorsAndSpeed(unsigned char led, unsigned char re
148148 /* -----------------------------------------------------*\
149149 | Select LED |
150150 \*-----------------------------------------------------*/
151- bus->i2c_smbus_write_block_data (dev, ASROCK_REG_LED_SELECT, 1 , select_led_pkt);
152- std::this_thread::sleep_for (1ms);
151+ if (active_mode != ASRLED_MODE_OFF)
152+ {
153+ bus->i2c_smbus_write_block_data (dev, ASROCK_REG_LED_SELECT, 1 , select_led_pkt);
154+ std::this_thread::sleep_for (1ms);
155+ }
153156
154157 switch (active_mode)
155158 {
@@ -192,8 +195,11 @@ void PolychromeController::SetColorsAndSpeed(unsigned char led, unsigned char re
192195 /* -----------------------------------------------------*\
193196 | Select LED |
194197 \*-----------------------------------------------------*/
195- bus->i2c_smbus_write_block_data (dev, ASROCK_REG_LED_SELECT, 1 , select_led_pkt);
196- std::this_thread::sleep_for (1ms);
198+ if (active_mode != ASRLED_MODE_OFF)
199+ {
200+ bus->i2c_smbus_write_block_data (dev, ASROCK_REG_LED_SELECT, 1 , select_led_pkt);
201+ std::this_thread::sleep_for (1ms);
202+ }
197203
198204 switch (active_mode)
199205 {
@@ -245,14 +251,24 @@ void PolychromeController::SetColorsAndSpeed(unsigned char led, unsigned char re
245251 /* -----------------------------------------------------*\
246252 | Select LED |
247253 \*-----------------------------------------------------*/
248- bus->i2c_smbus_write_block_data (dev, ASROCK_REG_LED_SELECT, 1 , select_led_pkt);
249- std::this_thread::sleep_for (1ms);
254+ switch (active_mode)
255+ {
256+ case POLYCHROME_V2_MODE_OFF:
257+ case POLYCHROME_V2_MODE_RAINBOW:
258+ case POLYCHROME_V2_MODE_SPECTRUM_CYCLE:
259+ break ;
250260
251- /* -----------------------------------------------------*\
252- | Polychrome firmware always writes color to fixed reg |
253- \*-----------------------------------------------------*/
254- bus->i2c_smbus_write_block_data (dev, POLYCHROME_V2_REG_COLOR, 3 , color_speed_pkt);
255- std::this_thread::sleep_for (1ms);
261+ default :
262+ bus->i2c_smbus_write_block_data (dev, ASROCK_REG_LED_SELECT, 1 , select_led_pkt);
263+ std::this_thread::sleep_for (1ms);
264+
265+ /* -----------------------------------------------------*\
266+ | Polychrome firmware always writes color to fixed reg |
267+ \*-----------------------------------------------------*/
268+ bus->i2c_smbus_write_block_data (dev, POLYCHROME_V2_REG_COLOR, 3 , color_speed_pkt);
269+ std::this_thread::sleep_for (1ms);
270+ break ;
271+ }
256272 break ;
257273 }
258274}
0 commit comments