Exemple #1
0
static ssize_t led_blink_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t size)
{
	struct led_classdev *led_cdev = dev_get_drvdata(dev);
	ssize_t ret = -EINVAL;
	char *after;
	unsigned long state = simple_strtoul(buf, &after, 10);
	size_t count = after - buf;
	unsigned long delay_on,delay_off;

#ifdef ZTE_CONFIG_LED_LIGHT_INSUSPEND//added by zhang.yu_1
         if(!strcmp(led_cdev->name, "red")){
	         led_dev_bakeup[0].led_blink_state = state;
	         led_dev_bakeup[0].dev = dev;			 
         }

         if(!strcmp(led_cdev->name, "green")){
	         led_dev_bakeup[1].led_blink_state = state;
	         led_dev_bakeup[1].dev = dev;			 
         }
#endif

	if (isspace(*after))
		count++;

	if (count == size) {
		ret = count;

		if (state == LED_OFF)
		{
		       delay_on=0;
			delay_off=1000;   
			   
			led_blink_set(led_cdev, &delay_on,&delay_off);
		}
		else
		{    
		    #ifdef CONFIG_LED_BLINK_500_14500//added by zhang.yu_1
		    delay_on=500;
		    delay_off=14500;			   
		    #elif defined(CONFIG_LED_BLINK_1000_1000) //XJB
		    delay_on=1000;
		    delay_off=1000;
                    #elif defined(CONFIG_LED_BLINK_500_7000)  //XJB
 		    delay_on=500;
		    delay_off=7000;                   
		    #else
                    delay_on=500;
		    delay_off=500;
		    #endif
			
		       led_blink_set(led_cdev, &delay_on,&delay_off);
		}
	}

	return ret;
}
Exemple #2
0
static void tpt_trig_timer(unsigned long data)
{
	struct ieee80211_local *local = (void *)data;
	struct tpt_led_trigger *tpt_trig = local->tpt_led_trigger;
	struct led_classdev *led_cdev;
	unsigned long on, off, tpt;
	int i;

	if (!tpt_trig->running)
		return;

	mod_timer(&tpt_trig->timer, round_jiffies(jiffies + HZ));

	tpt = tpt_trig_traffic(local, tpt_trig);

	/* default to just solid on */
	on = 1;
	off = 0;

	for (i = tpt_trig->blink_table_len - 1; i >= 0; i--) {
		if (tpt_trig->blink_table[i].throughput < 0 ||
		    tpt > tpt_trig->blink_table[i].throughput) {
			off = tpt_trig->blink_table[i].blink_time / 2;
			on = tpt_trig->blink_table[i].blink_time - off;
			break;
		}
	}

	read_lock(&tpt_trig->trig.leddev_list_lock);
	list_for_each_entry(led_cdev, &tpt_trig->trig.led_cdevs, trig_list)
		led_blink_set(led_cdev, &on, &off);
	read_unlock(&tpt_trig->trig.leddev_list_lock);
}
Exemple #3
0
static ssize_t led_delay_off_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t size)
{
	struct led_classdev *led_cdev = dev_get_drvdata(dev);
	int ret = -EINVAL;
	char *after;
	unsigned long state = simple_strtoul(buf, &after, 10);
	size_t count = after - buf;

	if (isspace(*after))
		count++;

	if (count == size) {
/* FUJITSU:2011-12-01 add LED start */
		if (g_chrg_flag == 1 && state > 150){
			state -= 100;
			g_chrg_count = 1;
		}
		else {
			g_chrg_count = 0;
		}
/* FUJITSU:2011-12-01 add LED end */
		led_blink_set(led_cdev, &led_cdev->blink_delay_on, &state);
		led_cdev->blink_delay_off = state;
		ret = count;
	}

	return ret;
}
static void timer_trig_activate(struct led_classdev *led_cdev)
{
	int rc;

//	printk("[LED][timer_trig_activate]\n");

	led_cdev->trigger_data = NULL;

	rc = device_create_file(led_cdev->dev, &dev_attr_delay_on);
	if (rc)
		return;
	rc = device_create_file(led_cdev->dev, &dev_attr_delay_off);
	if (rc)
		goto err_out_delayon;

	led_blink_set(led_cdev, &led_cdev->blink_delay_on,
		      &led_cdev->blink_delay_off);

	led_cdev->trigger_data = (void *)1;
	kobject_uevent(&led_cdev->dev->kobj,KOBJ_ADD);

	return;

err_out_delayon:
	device_remove_file(led_cdev->dev, &dev_attr_delay_on);
}
static ssize_t led_blink_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t size)
{
	struct led_classdev *led_cdev = dev_get_drvdata(dev);
	ssize_t ret = -EINVAL;
	char *after;
	unsigned long state = simple_strtoul(buf, &after, 10);
	size_t count = after - buf;
	unsigned long on=0, off=500;
	
	if (isspace(*after))
		count++;

	if (count == size) {
		ret = count;

		if (state)
			led_blink_set(led_cdev, &led_cdev->blink_delay_on_u, &led_cdev->blink_delay_off_u);
		else
			led_blink_set(led_cdev, &on, &off);	
	}

	return ret;
}
static ssize_t led_delay_off_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t size)
{
	struct led_classdev *led_cdev = dev_get_drvdata(dev);
	unsigned long state;
	ssize_t ret = -EINVAL;

	ret = kstrtoul(buf, 10, &state);
	if (ret)
		return ret;

	led_blink_set(led_cdev, &led_cdev->blink_delay_on, &state);
	led_cdev->blink_delay_off = state;

	return size;
}
static ssize_t led_blink_store(struct device *dev,
			struct device_attribute *attr,
			const char *buf, size_t len)
{
	struct led_classdev *led_cdev = dev_get_drvdata(dev);
	struct ktd2026_led *led = cdev_to_led(led_cdev);
	unsigned long blink_set;

	if (kstrtoul(buf, 0, &blink_set))
		return -EINVAL;

	if (!blink_set) {
		led->delay_on_time_ms = LED_OFF;
		ktd2026_set_brightness(led_cdev, LED_OFF);
	}

	led_blink_set(led_cdev,
		&led->delay_on_time_ms, &led->delay_off_time_ms);

	return len;
}
Exemple #8
0
static ssize_t led_enable_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t size)
{
	struct led_classdev *led_cdev = dev_get_drvdata(dev);

	unsigned long blink_on = led_cdev->blink_delay_on;
	unsigned long blink_off = led_cdev->blink_delay_off;

	int on = simple_strtol(buf, NULL, 10);
	if (!on) {
		led_stop_software_blink(led_cdev);
		led_set_brightness(led_cdev, 0);
	}
	else
	{
		if (blink_on && blink_off) {
			led_blink_set(led_cdev, &blink_on, &blink_off);
		}
	}
	return size;
}
static void timer_trig_activate(struct led_classdev *led_cdev)
{
	int rc;

	led_cdev->trigger_data = NULL;

	rc = device_create_file(led_cdev->dev, &dev_attr_delay_on);
	if (rc)
		return;
	rc = device_create_file(led_cdev->dev, &dev_attr_delay_off);
	if (rc)
		goto err_out_delayon;

	led_blink_set(led_cdev, &led_cdev->blink_delay_on,
		      &led_cdev->blink_delay_off);
	led_cdev->activated = true;

	return;

err_out_delayon:
	device_remove_file(led_cdev->dev, &dev_attr_delay_on);
}