예제 #1
0
static int cmdline_proc_show(struct seq_file *m, void *v)
{
	int len = 32;
	bool ret = true;
	char test_version[32]= {0};
	ret = check_whether_test_version(test_version,len);
	if(false == ret)
	{
		printk(KERN_INFO"cannot read test_version in function %s",__func__);
	}
	len = get_board_id_int();
	seq_printf(m, "%s hw_boardid=0x%03x hw_test_version=%s\n", saved_command_line, len, test_version);
	return 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);
	struct timer_trig_data *timer_data = led_cdev->trigger_data;
	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) {
			timer_data->delay_off = state;
        switch(get_board_id_int()){
        case BOARD_ID_VIVA:
        case BOARD_ID_FRONT:
        {
		/* deactivate previous settings */
		del_timer_sync(&timer_data->timer);

		/* try to activate hardware acceleration, if any */
		if (!led_cdev->blink_set ||
		    led_cdev->blink_set(led_cdev,
		      &timer_data->delay_on, &timer_data->delay_off)) {
			/* no hardware acceleration, blink via timer */
			mod_timer(&timer_data->timer, jiffies + 1);
		}
		break;
        }
        case BOARD_ID_FRONTT1P5:
        {
                if(!strcmp(led_cdev->name,"red"))           //dmtimer8_pwm_evt  gpio27
                {
			led_set_red_delay(timer_data->delay_on , timer_data->delay_off);
                }
                else if(!strcmp(led_cdev->name,"green"))//dmtimer10_pwm_evt gpio190)
                {
			led_set_green_delay(timer_data->delay_on , timer_data->delay_off);
                }
                else if(!strcmp(led_cdev->name,"blue"))//blue light use gpio only after front T1.5
                {
                        del_timer_sync(&timer_data->timer);
                        if (!led_cdev->blink_set ||
                            led_cdev->blink_set(led_cdev,
                              &timer_data->delay_on, &timer_data->delay_off)) {
                        mod_timer(&timer_data->timer, jiffies + 1);
                }
                }
        }
        break;
        default:
        {
                if(!strcmp(led_cdev->name,"red"))           //dmtimer8_pwm_evt  gpio27
                {
			led_set_red_delay(timer_data->delay_on , timer_data->delay_off);
                }
                else if(!strcmp(led_cdev->name,"green"))//dmtimer10_pwm_evt gpio190)
                {
			led_set_green_delay(timer_data->delay_on , timer_data->delay_off);
                }
                break;
        }
        }
		ret = count;
	}

	return ret;
}