コード例 #1
0
static ssize_t light_autobrightness_store(struct device *dev,
        struct device_attribute *attr, const char *buf, size_t size)
{
	int value;

	sscanf(buf, "%d", &value);

	gprintk("called %s \n", __func__);

	if(value == 1) {
		autobrightness_mode = ON;
		printk(KERN_DEBUG "[brightness_mode] BRIGHTNESS_MODE_SENSOR\n");
	} else if(value == 0) {
		autobrightness_mode = OFF;
		printk(KERN_DEBUG "[brightness_mode] BRIGHTNESS_MODE_USER\n");
#ifdef MDNIE_TUNINGMODE_FOR_BACKLIGHT
		if(pre_val == 1) {
			mDNIe_Mode_set_for_backlight(pmDNIe_Gamma_set[2]);
		}
		pre_val = -1;
#endif
	}

	return size;
}
コード例 #2
0
ファイル: s3cfb_mdnie.c プロジェクト: angel12/sch-i510_kernel
void mDNIe_txtbuf_to_parsing_for_backlight(void)
{
	int i = 0;
	int cnt = 0;


	for(i=0; (test[0][i] != END_SEQ); i++)
	{
		if(test[0][i] != END_SEQ)
			mDNIe_data_ui[i] = test[0][i];
	}
	mDNIe_data_ui[i] = END_SEQ;
	cnt = i+1;

	for(i=0; (test[0][cnt+i] != END_SEQ); i++)
	{
		if(test[0][cnt+i] != END_SEQ)
			mDNIe_data_300cd_level1[i] = test[0][cnt+i];
	}
	mDNIe_data_300cd_level1[i] = END_SEQ;
	cnt += i+1;

	for(i=0; (test[0][cnt+i] != END_SEQ); i++)
	{
		if(test[0][cnt+i] != END_SEQ)
			mDNIe_data_300cd_level2[i] = test[0][cnt+i];
	}
	mDNIe_data_300cd_level2[i] = END_SEQ;
	cnt += i+1;

	for(i=0; (test[0][cnt+i] != END_SEQ); i++)
	{
		if(test[0][cnt+i] != END_SEQ)
			mDNIe_data_ui_down[i] = test[0][cnt+i];
	}
	mDNIe_data_ui_down[i] = END_SEQ;
	cnt += i+1;

	mdnie_tuning_backlight = 1;

	mDNIe_Mode_set_for_backlight(pmDNIe_Gamma_set[0]);
}
コード例 #3
0
ファイル: gp2a_light.c プロジェクト: vitaliyy/msm7x30
static void gp2a_work_func_light(struct work_struct *work)
{
	struct sensor_data *data = container_of((struct delayed_work *)work,
							struct sensor_data, work);
	
	int adc=0;
	state_type level_state = LIGHT_INIT;
    int lux = 0;
    static int old_lux = 0;

	/* read adc data from s5p110 */
	adc = lightsensor_get_adcvalue();

	if(adc >= 1643)//(adc >= 1050)
	{
		level_state = LIGHT_LEVEL5;
		buffering = 5;
	}

	else if(adc >= 1576 && adc < 1643)//(adc >= 800 && adc < 1050)
	{
		if(buffering == 5)
		{	
			level_state = LIGHT_LEVEL5;
			buffering = 5;
		}
		else if((buffering == 1)||(buffering == 2)||(buffering == 3)||(buffering == 4))
		{
			level_state = LIGHT_LEVEL4;
			buffering = 4;
		}
	}

	else if(adc >= 1159 && adc < 1576)//(adc >= 750 && adc < 800)
	{
		level_state = LIGHT_LEVEL4;
		buffering = 4;
	}

	else if(adc >= 1104 && adc < 1159)//(adc >= 560 && adc < 750)
	{
		if((buffering == 4)||(buffering == 5))
		{	
			level_state = LIGHT_LEVEL4;
			buffering = 4;
		}
		else if((buffering == 1)||(buffering == 2)||(buffering == 3))
		{
			level_state = LIGHT_LEVEL3;
			buffering = 3;
		}
	}
	
	else if(adc >= 462 && adc < 1104)//(adc >= 550 && adc < 560)
	{
		level_state = LIGHT_LEVEL3;
		buffering = 3;
	}

	else if(adc >= 430 && adc < 462)//(adc >= 370 && adc < 550)
	{
		if((buffering == 3)||(buffering == 4)||(buffering == 5))
		{	
			level_state = LIGHT_LEVEL3;
			buffering = 3;
		}
		else if((buffering == 1)||(buffering == 2))
		{
			level_state = LIGHT_LEVEL2;
			buffering = 2;
		}
	}

	else if(adc >= 94 && adc < 430)//(adc >= 270 && adc < 370)
	{
		level_state = LIGHT_LEVEL2;
		buffering = 2;
	}
	
	else if(adc >= 86 && adc < 94)//(adc >= 200 && adc < 270)
	{
		if((buffering == 2)||(buffering == 3)||(buffering == 4)||(buffering == 5))
		{	
			level_state = LIGHT_LEVEL2;
			buffering = 2;
		}
		else if(buffering == 1)
		{
			level_state = LIGHT_LEVEL1;
			buffering = 1;
		}
	}

	else if(adc < 86)//(adc < 200)
	{
		level_state = LIGHT_LEVEL1;
		buffering = 1;
	}

    cur_state = level_state;	

#ifdef MDNIE_TUNINGMODE_FOR_BACKLIGHT
	if(autobrightness_mode)
	{
		if((pre_val!=1)&&(current_gamma_value == 24)&&(level_state == LIGHT_LEVEL5)&&(current_mDNIe_UI == mDNIe_UI_MODE))
			{
			mDNIe_Mode_set_for_backlight(pmDNIe_Gamma_set[1]);
			pre_val = 1;
			gprintk("mDNIe_Mode_set_for_backlight - pmDNIe_Gamma_set[1]\n" );
		}	
	}
#endif

    lux = StateToLux(cur_state);

	data->light_data= cur_adc_value;

    if(data->testmode == 1)
    {
        input_report_abs(this_data, ABS_Y, adc);
    	input_sync(this_data);
    	//gprintk("testmode : adc(%d), lux(%d), cur_state(%d) \n", adc, lux, cur_state);
    }
    else
    {
      if(old_lux != lux)
      {
        old_lux = lux;
      	input_report_abs(this_data, ABS_X, lux);
    	input_sync(this_data);
        gprintk("realmode : adc(%d), lux(%d), cur_state(%d) \n", adc, lux, cur_state);
      }
    }

	schedule_delayed_work(&data->work, msecs_to_jiffies(data->delay));
}
コード例 #4
0
static void gp2a_work_func_light(struct work_struct *work)
{
	int adc=0;
	int lux = 0;	// iamaj
	state_type level_state = LIGHT_INIT;
	struct gp2a_data *gp2a = container_of(work, struct gp2a_data, work_light);
	ktime_t light_polling_time;
	
	static state_type prev_level_state = 0;
	static state_type changed_level_state = 0;
	static int check_count = 0;

#ifdef MDNIE_TUNINGMODE_FOR_BACKLIGHT
	int val = 0;
#endif

	/* read adc data from s5p110 */
	adc = lightsensor_get_adcvalue();
	gprintk("Optimized adc = %d \n",adc);
	gprintk("cur_state = %d\n",cur_state);
	gprintk("light_enable = %d\n",light_enable);
/* As MDNIE not used currently this is commented and used for Autobrightness and factory test */

//	lightsensor_adc = adc;	// iamaj 
#if 1	// iamaj EE25
	if(adc >= ADC_LEVEL3_BUF)
	{
			level_state = LIGHT_LEVEL4;
			buffering = 4;
	}
	else if(adc >= ADC_LEVEL3 && adc < ADC_LEVEL3_BUF)
	{
		if(buffering == 4)
		{	
			level_state = LIGHT_LEVEL4;
			buffering = 4;
		}
		else if((buffering == 1)||(buffering == 2)||(buffering == 3))
		{
			level_state = LIGHT_LEVEL3;
			buffering = 3;
		}
	}
	else if(adc >= ADC_LEVEL2_BUF && adc < ADC_LEVEL3)
	{
		level_state = LIGHT_LEVEL3;
		buffering = 3;
	}
	else if(adc >= ADC_LEVEL2 && adc < ADC_LEVEL2_BUF)
	{
		if((buffering == 3)||(buffering == 4))
		{	
			level_state = LIGHT_LEVEL3;
			buffering = 3;
		}
		else if((buffering == 1)||(buffering == 2))
		{
			level_state = LIGHT_LEVEL2;
			buffering = 2;
		}
	}
	else if(adc >= ADC_LEVEL1_BUF && adc < ADC_LEVEL2)
	{
		level_state = LIGHT_LEVEL2;
		buffering = 2;
	}
	else if(adc >= ADC_LEVEL1 && adc < ADC_LEVEL1_BUF)
	{
		if((buffering == 2)||(buffering == 3)||(buffering == 4))
		{	
			level_state = LIGHT_LEVEL2;
			buffering = 2;
		}
		else if(buffering == 1)
		{
			level_state = LIGHT_LEVEL1;
			buffering = 1;
		}
	}
	else if(adc < ADC_LEVEL1)
	{
		level_state = LIGHT_LEVEL1;
		buffering = 1;
	}

#else 

       if(adc >= ADC_LEVEL3 ){		// iamaj 1800 -> 1900 -> 1910
			level_state = LIGHT_LEVEL4;//255;//29;
		}
		else if(adc >=ADC_LEVEL2 && adc < ADC_LEVEL3){    // iamaj  1000->1200 ->1230,  1200->1900->1910
			level_state = LIGHT_LEVEL3;//145; //ed11  //MBjclee //14;
		}
		else if(adc >= ADC_LEVEL1 && adc < ADC_LEVEL2){     // iamaj 200->1->500 ,  1000->1200->1230
		level_state = LIGHT_LEVEL2;//80;//MBjclee //14
		}
		else if(adc < ADC_LEVEL1){		// iamaj 200 -> 1->500
			level_state = LIGHT_LEVEL1;//15;//5; 
		}
#endif

	cur_state = level_state;	

    lux = StateToLux(cur_state);

	lightsensor_adc = lux;	// iamaj 
	
#ifdef MDNIE_TUNINGMODE_FOR_BACKLIGHT
	if((old_gamma_value >= 25)&&(level_state == LIGHT_LEVEL8))
	{
		if(adc >= 2300 ){
			val = 2;
			level_outdoor = 2;
		}
		else if(adc >= 2100 && adc < 2300){
			val = 1;
			level_outdoor = 1;
		}
		else if(adc >= 1810 && adc < 2100){
			val = 0;
			level_outdoor = 0;
		}

		printk("mDNIe_Mode_set_for_backlight pre_val(%d) val(%d)\n",pre_val, val); //Temp

		if(IsChangedADC(val)){
			while(pre_val != val)
			{
				if (pre_val < val)
					pre_val++;
				else
					pre_val--;

				if((pre_val == 0) && ((level_outdoor == 1) || (level_outdoor == 2)))
					mDNIe_Mode_set_for_backlight(pmDNIe_Gamma_set[3]);
				else
					mDNIe_Mode_set_for_backlight(pmDNIe_Gamma_set[pre_val]);
				
				level_outdoor = pre_val;
				
				printk("mDNIe_Mode_set_for_backlight - pmDNIe_Gamma_set[%d]\n", pre_val);
			}
		}	
	}
#endif
		
	
	gprintk("cur_state = %d\n",cur_state); //Temp
}