kbd_info
static struct kbd_info kbd_info;
static int kbd_get_info(struct kbd_info *info)
if (kbd_info.levels != 0)
return kbd_info.levels;
if (kbd_info.levels != 0)
if (kbd_info.levels != 0) {
ret = kbd_get_info(&kbd_info);
if (kbd_info.seconds > 63)
kbd_info.seconds = 63;
if (kbd_info.minutes > 63)
kbd_info.minutes = 63;
if (kbd_info.hours > 63)
kbd_info.hours = 63;
if (kbd_info.days > 63)
kbd_info.days = 63;
kbd_info.modes &= ~BIT(KBD_MODE_BIT_ON);
ffs(kbd_info.modes & ~BIT(KBD_MODE_BIT_OFF));
if (kbd_info.modes & (BIT(KBD_MODE_BIT_ALS) |
if (kbd_info.modes & (
if (kbd_is_level_mode_bit(i) && (BIT(i) & kbd_info.modes))
if (BIT(i) & kbd_info.modes) {
if ((ret == 0 && (kbd_info.levels != 0 || kbd_mode_levels_count >= 2))
if (value > kbd_info.seconds)
if (value > kbd_info.minutes)
if (value > kbd_info.hours)
if (value > kbd_info.days)
if (value <= kbd_info.seconds && kbd_info.seconds) {
} else if (value / 60 <= kbd_info.minutes && kbd_info.minutes) {
} else if (value / (60 * 60) <= kbd_info.hours && kbd_info.hours) {
} else if (value / (60 * 60 * 24) <= kbd_info.days && kbd_info.days) {
if (!(kbd_info.triggers & BIT(i)))
if ((kbd_info.triggers & new_state.triggers) !=
if (!(kbd_info.modes & BIT(new_state.mode_bit))) {
if (!(kbd_info.triggers & BIT(i)))
if (!(kbd_info.modes & BIT(new_state.mode_bit))) {