mirror of
https://github.com/wessel-novacustom/clevo-keyboard.git
synced 2024-11-15 03:34:01 +01:00
Check available steps for white only
This commit is contained in:
parent
fafba11817
commit
4dbaa4a83d
|
@ -41,9 +41,12 @@
|
||||||
#define CLEVO_CMD_GET_EVENT 0x01
|
#define CLEVO_CMD_GET_EVENT 0x01
|
||||||
|
|
||||||
#define CLEVO_CMD_GET_SPECS 0x0D // Returns buffer -> only works with clevo_evaluate_method2
|
#define CLEVO_CMD_GET_SPECS 0x0D // Returns buffer -> only works with clevo_evaluate_method2
|
||||||
#define CLEVO_CMD_GET_BIOS_FEATURES 0x52
|
#define CLEVO_CMD_GET_BIOS_FEATURES_1 0x52
|
||||||
#define CLEVO_CMD_GET_BIOS_FEATURES_SUB_WHITE_ONLY_KB 0x40000000
|
#define CLEVO_CMD_GET_BIOS_FEATURES_1_SUB_WHITE_ONLY_KB 0x40000000
|
||||||
#define CLEVO_CMD_GET_BIOS_FEATURES_SUB_3_ZONE_RGB_KB 0x00400000
|
#define CLEVO_CMD_GET_BIOS_FEATURES_1_SUB_3_ZONE_RGB_KB 0x00400000
|
||||||
|
|
||||||
|
#define CLEVO_CMD_GET_BIOS_FEATURES_2 0x7A
|
||||||
|
#define CLEVO_CMD_GET_BIOS_FEATURES_2_SUB_WHITE_ONLY_KB_MAX_5 0x4000
|
||||||
|
|
||||||
// The clevo set commands expect a parameter
|
// The clevo set commands expect a parameter
|
||||||
#define CLEVO_CMD_SET_FANSPEED_VALUE 0x68
|
#define CLEVO_CMD_SET_FANSPEED_VALUE 0x68
|
||||||
|
|
|
@ -52,7 +52,7 @@ void clevo_leds_set_color_extern(u32 color);
|
||||||
|
|
||||||
#define CLEVO_KBD_BRIGHTNESS_WHITE_MIN 0x00
|
#define CLEVO_KBD_BRIGHTNESS_WHITE_MIN 0x00
|
||||||
#define CLEVO_KBD_BRIGHTNESS_WHITE_MAX 0x02 // White only keyboards can only be off, half, or full brightness
|
#define CLEVO_KBD_BRIGHTNESS_WHITE_MAX 0x02 // White only keyboards can only be off, half, or full brightness
|
||||||
#define CLEVO_KBD_BRIGHTNESS_WHITE_MAX_OLD_DEVS 0x05 // Devices <= Intel 7th gen had a different white control with 5 brightness values + off
|
#define CLEVO_KBD_BRIGHTNESS_WHITE_MAX_5 0x05 // Devices <= Intel 7th gen had a different white control with 5 brightness values + off
|
||||||
#define CLEVO_KBD_BRIGHTNESS_WHITE_DEFAULT (CLEVO_KBD_BRIGHTNESS_WHITE_MAX * 0.5)
|
#define CLEVO_KBD_BRIGHTNESS_WHITE_DEFAULT (CLEVO_KBD_BRIGHTNESS_WHITE_MAX * 0.5)
|
||||||
|
|
||||||
#define CLEVO_KB_COLOR_DEFAULT_RED 0xff
|
#define CLEVO_KB_COLOR_DEFAULT_RED 0xff
|
||||||
|
@ -273,23 +273,33 @@ int clevo_leds_init(struct platform_device *dev)
|
||||||
ACPI_FREE(result);
|
ACPI_FREE(result);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pr_notice("CLEVO_CMD_GET_SPECS does not exist on this device or failed, trying CLEVO_CMD_GET_BIOS_FEATURES\n");
|
pr_notice("CLEVO_CMD_GET_SPECS does not exist on this device or failed, trying CLEVO_CMD_GET_BIOS_FEATURES_1\n");
|
||||||
}
|
}
|
||||||
if (status) {
|
if (status) {
|
||||||
// check for devices <= Intel 7th gen (only white only, 3 zone RGB, or no backlight on these devices)
|
// check for devices <= Intel 7th gen (only white only, 3 zone RGB, or no backlight on these devices)
|
||||||
status = clevo_evaluate_method(CLEVO_CMD_GET_BIOS_FEATURES, 0, &result_fallback);
|
status = clevo_evaluate_method(CLEVO_CMD_GET_BIOS_FEATURES_1, 0, &result_fallback);
|
||||||
if (!status) {
|
if (!status) {
|
||||||
pr_debug("CLEVO_CMD_GET_BIOS_FEATURES result_fallback: 0x%08x\n", result_fallback);
|
pr_debug("CLEVO_CMD_GET_BIOS_FEATURES_1 result_fallback: 0x%08x\n", result_fallback);
|
||||||
if (result_fallback & CLEVO_CMD_GET_BIOS_FEATURES_SUB_3_ZONE_RGB_KB) {
|
if (result_fallback & CLEVO_CMD_GET_BIOS_FEATURES_1_SUB_3_ZONE_RGB_KB) {
|
||||||
clevo_kb_backlight_type = CLEVO_KB_BACKLIGHT_TYPE_3_ZONE_RGB;
|
clevo_kb_backlight_type = CLEVO_KB_BACKLIGHT_TYPE_3_ZONE_RGB;
|
||||||
}
|
}
|
||||||
else if (result_fallback & CLEVO_CMD_GET_BIOS_FEATURES_SUB_WHITE_ONLY_KB) {
|
else if (result_fallback & CLEVO_CMD_GET_BIOS_FEATURES_1_SUB_WHITE_ONLY_KB) {
|
||||||
clevo_kb_backlight_type = CLEVO_KB_BACKLIGHT_TYPE_FIXED_COLOR;
|
clevo_kb_backlight_type = CLEVO_KB_BACKLIGHT_TYPE_FIXED_COLOR;
|
||||||
clevo_led_cdev.max_brightness = CLEVO_KBD_BRIGHTNESS_WHITE_MAX_OLD_DEVS;
|
|
||||||
|
status = clevo_evaluate_method(CLEVO_CMD_GET_BIOS_FEATURES_2, 0, &result_fallback);
|
||||||
|
if (!status) {
|
||||||
|
pr_debug("CLEVO_CMD_GET_BIOS_FEATURES_2 result_fallback: 0x%08x\n", result_fallback);
|
||||||
|
if (result_fallback & CLEVO_CMD_GET_BIOS_FEATURES_2_SUB_WHITE_ONLY_KB_MAX_5) {
|
||||||
|
clevo_led_cdev.max_brightness = CLEVO_KBD_BRIGHTNESS_WHITE_MAX_5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pr_notice("CLEVO_CMD_GET_BIOS_FEATURES does not exist on this device or failed\n");
|
pr_notice("CLEVO_CMD_GET_BIOS_FEATURES_2 does not exist on this device or failed\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
pr_notice("CLEVO_CMD_GET_BIOS_FEATURES_1 does not exist on this device or failed\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pr_debug("Keyboard backlight type: 0x%02x\n", clevo_kb_backlight_type);
|
pr_debug("Keyboard backlight type: 0x%02x\n", clevo_kb_backlight_type);
|
||||||
|
|
Loading…
Reference in a new issue