Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Core] Optimisation - Add RGB LED colour set check in drivers #21134

Merged
merged 2 commits into from
Jun 8, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
lint
Xelus22 committed Jun 5, 2023
commit 89e67b9f308960f8e9c35859965903a640fc9ea4
4 changes: 1 addition & 3 deletions drivers/led/aw20216.c
Original file line number Diff line number Diff line change
@@ -145,9 +145,7 @@ void AW20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
aw_led led;
memcpy_P(&led, (&g_aw_leds[index]), sizeof(led));

if (g_pwm_buffer[led.driver][led.r] == red &&
g_pwm_buffer[led.driver][led.g] == green &&
g_pwm_buffer[led.driver][led.b] == blue) {
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
return;
}
g_pwm_buffer[led.driver][led.r] = red;
4 changes: 1 addition & 3 deletions drivers/led/ckled2001.c
Original file line number Diff line number Diff line change
@@ -150,9 +150,7 @@ void CKLED2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led));

if (g_pwm_buffer[led.driver][led.r] == red &&
g_pwm_buffer[led.driver][led.g] == green &&
g_pwm_buffer[led.driver][led.b] == blue) {
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
return;
}
g_pwm_buffer[led.driver][led.r] = red;
5 changes: 1 addition & 4 deletions drivers/led/issi/is31fl3218.c
Original file line number Diff line number Diff line change
@@ -72,10 +72,7 @@ void IS31FL3218_init(void) {
}

void IS31FL3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
if (g_pwm_buffer[index * 3 + 0] == red &&
g_pwm_buffer[index * 3 + 1] == green &&
g_pwm_buffer[index * 3 + 2] == blue
) {
if (g_pwm_buffer[index * 3 + 0] == red && g_pwm_buffer[index * 3 + 1] == green && g_pwm_buffer[index * 3 + 2] == blue) {
return;
}
g_pwm_buffer[index * 3 + 0] = red;
5 changes: 1 addition & 4 deletions drivers/led/issi/is31fl3731.c
Original file line number Diff line number Diff line change
@@ -184,10 +184,7 @@ void IS31FL3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));

// Subtract 0x24 to get the second index of g_pwm_buffer
if (g_pwm_buffer[led.driver][led.r - 0x24] == red &&
g_pwm_buffer[led.driver][led.g - 0x24] == green &&
g_pwm_buffer[led.driver][led.b - 0x24] == blue
) {
if (g_pwm_buffer[led.driver][led.r - 0x24] == red && g_pwm_buffer[led.driver][led.g - 0x24] == green && g_pwm_buffer[led.driver][led.b - 0x24] == blue) {
return;
}
g_pwm_buffer[led.driver][led.r - 0x24] = red;
2 changes: 1 addition & 1 deletion drivers/led/issi/is31fl3733-simple.c
Original file line number Diff line number Diff line change
@@ -196,7 +196,7 @@ void IS31FL3733_set_value(int index, uint8_t value) {
if (index >= 0 && index < LED_MATRIX_LED_COUNT) {
is31_led led = g_is31_leds[index];

if(g_pwm_buffer[led.driver][led.v] == value) {
if (g_pwm_buffer[led.driver][led.v] == value) {
return;
}
g_pwm_buffer[led.driver][led.v] = value;
4 changes: 1 addition & 3 deletions drivers/led/issi/is31fl3733.c
Original file line number Diff line number Diff line change
@@ -189,9 +189,7 @@ void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));

if (g_pwm_buffer[led.driver][led.r] == red &&
g_pwm_buffer[led.driver][led.g] == green &&
g_pwm_buffer[led.driver][led.b] == blue) {
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
return;
}
g_pwm_buffer[led.driver][led.r] = red;
4 changes: 1 addition & 3 deletions drivers/led/issi/is31fl3736.c
Original file line number Diff line number Diff line change
@@ -169,9 +169,7 @@ void IS31FL3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));

if (g_pwm_buffer[led.driver][led.r] == red &&
g_pwm_buffer[led.driver][led.g] == green &&
g_pwm_buffer[led.driver][led.b] == blue) {
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
return;
}
g_pwm_buffer[led.driver][led.r] = red;
4 changes: 1 addition & 3 deletions drivers/led/issi/is31fl3737.c
Original file line number Diff line number Diff line change
@@ -176,9 +176,7 @@ void IS31FL3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));

if (g_pwm_buffer[led.driver][led.r] == red &&
g_pwm_buffer[led.driver][led.g] == green &&
g_pwm_buffer[led.driver][led.b] == blue) {
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
return;
}
g_pwm_buffer[led.driver][led.r] = red;
5 changes: 1 addition & 4 deletions drivers/led/issi/is31fl3741.c
Original file line number Diff line number Diff line change
@@ -180,10 +180,7 @@ void IS31FL3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));

if (g_pwm_buffer[led.driver][led.r] == red &&
g_pwm_buffer[led.driver][led.g] == green &&
g_pwm_buffer[led.driver][led.b] == blue
) {
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
return;
}
g_pwm_buffer_update_required[led.driver] = true;
4 changes: 1 addition & 3 deletions drivers/led/issi/is31flcommon.c
Original file line number Diff line number Diff line change
@@ -139,9 +139,7 @@ void IS31FL_set_manual_scaling_buffer(void) {
if (scale.driver >= 0 && scale.driver < RGB_MATRIX_LED_COUNT) {
is31_led led = g_is31_leds[scale.driver];

if (g_scaling_buffer[led.driver][led.r] = scale.r &&
g_scaling_buffer[led.driver][led.g] = scale.g &&
g_scaling_buffer[led.driver][led.b] = scale.b) {
if (g_scaling_buffer[led.driver][led.r] = scale.r && g_scaling_buffer[led.driver][led.g] = scale.g && g_scaling_buffer[led.driver][led.b] = scale.b) {
return;
}
g_scaling_buffer[led.driver][led.r] = scale.r;