static void omap_pwm_led_work(struct work_struct *work) { pr_debug("%s%s: \n", PASS1,__func__); struct omap_pwm_led *led = work_to_omap_pwm_led(work); if (led->brightness != LED_OFF) { omap_pwm_led_power_on(led); omap_pwm_led_set_pwm_cycle(led, led->brightness); } else { omap_pwm_led_power_off(led); } }
static void omap_pwm_led_set(struct led_classdev *led_cdev, enum led_brightness value) { struct omap_pwm_led *led = cdev_to_omap_pwm_led(led_cdev); if (value != LED_OFF) { omap_pwm_led_power_on(led); omap_pwm_led_set_pwm_cycle(led, value); } else { omap_pwm_led_power_off(led); } }
static void omap_pwm_led_work(struct work_struct *work) { struct omap_pwm_led *led = work_to_omap_pwm_led(work); if (led->brightness != LED_OFF) { omap_pwm_led_power_on(led); omap_pwm_led_set_pwm_cycle(led, led->brightness); } else { omap_pwm_led_power_on(led); omap_pwm_led_set_pwm_cycle(led, led->brightness); omap_pwm_led_power_off(led); } }
static void omap_pwm_led_set(struct led_classdev *led_cdev, enum led_brightness value) { struct omap_pwm_led *led = cdev_to_omap_pwm_led(led_cdev); pr_debug("%s: brightness: %i\n", __func__, value); if (led->brightness != value) { if (led->brightness == LED_OFF || led_cdev->flags & LED_SUSPENDED) { /* LED currently OFF */ omap_pwm_led_power_on(led); if (value < led->pdata->bkl_min*2) { // some backlight stepup can't start without medium value during variable time omap_pwm_led_set_pwm_cycle(led, led->pdata->bkl_min*3); omap_pwm_led_pad_enable(led); msleep(50); omap_pwm_led_set_pwm_cycle(led, value); } else { omap_pwm_led_set_pwm_cycle(led, value); omap_pwm_led_pad_enable(led); } } else /* just set the new cycle */ omap_pwm_led_set_pwm_cycle(led, value); if (value == LED_OFF) { /* LED now suspended */ omap_pwm_led_pad_disable(led); omap_pwm_led_set_pwm_cycle(led, value); omap_pwm_led_power_off(led); } led->brightness = value; } }