static ssize_t buttons_led_status_write(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { unsigned int data; if (sscanf(buf, "%u\n", &data) != 1) { pr_info("%s: input error\n", __FUNCTION__); return size; } if (data == 1) { if(!bln_suspended){ buttons_led_enabled = true; bln_power_on(); bln_enable_backlights(gen_all_leds_mask()); } } else if (data == 0) { if(!bln_suspended){ buttons_led_enabled = false; bln_disable_backlights(gen_all_leds_mask()); } } else { pr_info("%s: wrong input %u\n", __FUNCTION__, data); } return size; }
static ssize_t blink_control_write(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { unsigned int data; if (!bln_ongoing) return size; if (sscanf(buf, "%u\n", &data) != 1) { pr_info("%s: input error\n", __FUNCTION__); return size; } /* reversed logic: * 1 = leds off * 0 = leds on */ if (data == 1) { bln_blink_state = 1; bln_disable_backlights(get_led_mask()); } else if (data == 0) { bln_blink_state = 0; bln_enable_backlights(get_led_mask()); } else { pr_info("%s: wrong input %u\n", __FUNCTION__, data); } return size; }
static void disable_led_notification(void) { if (bln_suspended && bln_ongoing) { bln_disable_backlights(gen_all_leds_mask()); bln_power_off(); } reset_bln_states(); pr_info("%s: notification led disabled\n", __FUNCTION__); }
static void disable_led_notification(void) { pr_info("%s: notification led disabled\n", __FUNCTION__); bln_blink_state = 0; bln_ongoing = false; if (bln_suspended) bln_disable_backlights(); if (in_kernel_blink) del_timer(&blink_timer); }
static void blink_callback(struct work_struct *blink_work) { if (--blink_count == 0) { pr_info("%s: notification timed out\n", __FUNCTION__); bln_enable_backlights(); del_timer(&blink_timer); return; } if (bln_blink_state) bln_enable_backlights(); else bln_disable_backlights(); bln_blink_state = !bln_blink_state; }
static ssize_t blink_control_write(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { unsigned int data; if (!bln_ongoing) return size; if (sscanf(buf, "%u\n", &data) == 1) { if (data == 1) { bln_blink_state = 1; bln_disable_backlights(); } else if (data == 0) { bln_blink_state = 0; bln_enable_backlights(); } else { pr_info("%s: wrong input %u\n", __FUNCTION__, data); } } else { pr_info("%s: input error\n", __FUNCTION__); } return size; }