Example #1
0
static ssize_t gammaset_file_cmd_store(struct device *dev,
        struct device_attribute *attr, const char *buf, size_t size)
{
	int value;
	
    gprintk("called %s \n",__func__);
	
	sscanf(buf, "%d", &value);

	if(IsLDIEnabled()==0)
	{
		printk("[gamma set] return because LDI is disabled, input value = %d \n",value);
		return size;
	}

	if(value==1 && on_19gamma==0)
	{
		on_19gamma = 1;
		bl_update_status_19gamma(bd_brightness);
	}
	else if(value==0 && on_19gamma==1)
	{
		on_19gamma = 0;
		bl_update_status_22gamma(bd_brightness);
	}
	else
		printk("\ngammaset_file_cmd_store value(%d) on_19gamma(%d) \n",value,on_19gamma);

	return size;
}
void mDNIe_Mode_set_for_backlight(u16 *buf)
{
	u32 i = 0;
	int cnt = 0;

	if (IsLDIEnabled()) {
		mutex_lock(&mdnie_use);

		/*if (mdnie_tuning_backlight)*/
		{
			while ((*(buf+i)) != END_SEQ) {
				if ((*(buf+i)) == 0x0100) {
					if (pre_0x0100 < (*(buf+(i+1)))) {
						while ((pre_0x0100 < (*(buf+(i+1)))) && (pre_0x0100 <= 0x4020) && (pre_0x0100 >= 0x0000)) {
							s3c_mdnie_writel(pre_0x0100, (*(buf+i)));
							gprintk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n", (*(buf+i)), pre_0x0100);

							if ((pre_0x0100 & 0x00ff) == 0x20)
								pre_0x0100 = ((pre_0x0100 & 0xff00) + (0x8<<8)) | (0x20);
							else
								pre_0x0100 = ((pre_0x0100 & 0xff00) + (0x8<<8)) | ((pre_0x0100 & 0x00ff) + (0x4));
							msleep(20);
						}
					} else if (pre_0x0100 > (*(buf+(i+1)))) {
						while (pre_0x0100 > (*(buf+(i+1))) && (pre_0x0100 >= 0x0000) && (pre_0x0100 <= 0x4020)) {
							s3c_mdnie_writel(pre_0x0100, (*(buf+i)));
							gprintk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n", (*(buf+i)), pre_0x0100);

							if ((pre_0x0100 & 0x00ff) == 0x00)
								pre_0x0100 = ((pre_0x0100 & 0xff00) - (0x8<<8)) | (0x00);
							else
								pre_0x0100 = ((pre_0x0100 & 0xff00) - (0x8<<8)) | ((pre_0x0100 & 0x00ff) - (0x4));
							msleep(20);
						}
					}
					s3c_mdnie_writel((*(buf+i+1)), (*(buf+i)));
					pre_0x0100 = (*(buf+i+1));
				} else {
					s3c_mdnie_writel((*(buf+i+1)), (*(buf+i)));
				}
				gprintk("[mDNIe] mDNIe_Mode_set_for_backlight : addr(0x%x), data(0x%x)  \n", (*(buf+i)), (*(buf+(i+1))));
				i += 2;
			}

			s3c_mdnie_unmask();
		}

		mutex_unlock(&mdnie_use);
	}
}
Example #3
0
void bl_update_status_19gamma(int bl)
{
	int gamma_value = 0;
	int i;

	for(i=0; i<100; i++)
	{
		gprintk("ldi_enable : %d \n",ldi_enable);

		if(IsLDIEnabled())
			break;
		
		msleep(10);
	};

	if(!(current_gamma_value == -1))
	{
		gprintk("#################19gamma start##########################\n");
		panel_gamma_send_sequence(ams403gf01_19gamma_set_tbl[current_gamma_value], 
                                    AMS403GF01_GAMMA_PARAM_SET_DATA_COUNT);       
		gprintk("#################19gamma end##########################\n");
	}
}
Example #4
0
static int s5p_bl_update_status(struct backlight_device* bd)
{

	int bl = bd->props.brightness;
	int level = 0;
	int gamma_value = 0;
	int gamma_val_x10 = 0;
	char i;
	u32 uRegValue;


	if (bl >= MIN_BL)
	{
		gamma_val_x10 = 10*(MAX_GAMMA_VALUE-1)*bl/(MAX_BL-MIN_BL) + (10 - 10*(MAX_GAMMA_VALUE-1)*(MIN_BL)/(MAX_BL-MIN_BL)) ;
		gamma_value = (gamma_val_x10+5)/10;
	}	
	else
	{
		gamma_value = 0;
	}

	for(i=0; i<200; i++)
	{       
		if(IsLDIEnabled())
			break;
 		gprintk("ldi_enable : %d \n",ldi_enable);        

		msleep(10);
	};
	
       gprintk("update status brightness[0~255] : (%d) \n",bd->props.brightness);
	  
	if(IsLDIEnabled())
	{
		bFrameDone = 0;

	       mdelay(10);
		for(i=0;i<15;i++)
		{
			uRegValue = readl(ddi_pd->dsim_base + S5P_DSIM_INTSRC);
			if ( uRegValue & (1 << 24) )
				break;
	 		msleep(7);			
		}

		if(lcd_on_off == 0) 
			ams397g201_display_on(bd->dev.parent);

		if(bl == 0)
			level = 0;	//lcd off
		else if((bl < MIN_BL) && (bl > 0))
			level = 1;	//dimming
		else
			level = 6;	//normal

              pr_err("bl=%d, gamma_value=%d, acl_enable=%d,on_19gamma=%d \n",bl, gamma_value, acl_enable, on_19gamma);

		if(level==0)
		{
			msleep(20);
			ams397g201_display_off(bd->dev.parent);
			gprintk("Update status brightness[0~255]:(%d) - LCD OFF \n", bl);
			lcd_on_off=0;
			bd_brightness = 0;
			backlight_level = 0;
			current_gamma_value = -1;
			bFrameDone = 1;
			return 0;
		}	

		bd_brightness = bd->props.brightness;
		backlight_level = level;
        
		if(current_gamma_value == gamma_value)
		{
			bFrameDone = 1;
			return 0;
		}

	 	if(level)
		{
			switch(level)
			{
				case  5:
				case  4:
				case  3:
				case  2:
				case  1: //dimming
                     {            
				#ifdef ACL_ENABLE
					if (acl_enable)
					{
                        update_acl_status(ACL_STATUS_0P);						
					}
				#endif


                    update_gamma(gamma_value);
                
					break;                
                }
				case  6:
								{		                    
#ifdef ACL_ENABLE
                    if (acl_enable)
                    {   
						if (gamma_value == 1)
						{
						    update_acl_status(ACL_STATUS_0P);
						}
						else
						{							
							if(gamma_value >=2 && gamma_value <=12) 
							{
							    update_acl_status(ACL_STATUS_40P);
							}
							else if(gamma_value == 13) 
							{
							    update_acl_status(ACL_STATUS_43P);
							}
							else if(gamma_value == 14) 
							{
							    update_acl_status(ACL_STATUS_45P);
							}
							else if(gamma_value == 15) 
							{
							    update_acl_status(ACL_STATUS_47P);
							}
							else if(gamma_value == 16) 
							{
							    update_acl_status(ACL_STATUS_48P);
							}
							else
							{
							    update_acl_status(ACL_STATUS_50P);
							}	
						}	
					}              
#endif
                    update_gamma(gamma_value);
                    					
					break;
				}
			}

            current_gamma_value = gamma_value;            
		}			
	}
	bFrameDone = 1;
	
	return 0;
}
Example #5
0
static ssize_t aclset_file_cmd_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size)
{
	int value;

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

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


	if(IsLDIEnabled()==0)
	{
		printk(KERN_DEBUG "[acl set] return because LDI is disabled, input value = %d \n",value);
		return size;
	}

	if(value==1 && acl_enable == 0)
	{		
		acl_enable = value;
	
        if (current_gamma_value >=0 && current_gamma_value <= 1)
        {
            update_acl_status(ACL_STATUS_0P);            //0 %
        }
        else if(current_gamma_value >=2 && current_gamma_value <= 12)
        {
            update_acl_status(ACL_STATUS_40P);
        }
        else if(current_gamma_value ==13)
        {
            update_acl_status(ACL_STATUS_43P);
        }
        else if(current_gamma_value ==14)
        {
            update_acl_status(ACL_STATUS_45P);
        }
        else if(current_gamma_value ==15)
        {
            update_acl_status(ACL_STATUS_47P);
        }
        else if(current_gamma_value ==16)
        {
            update_acl_status(ACL_STATUS_48P);
        }
        else
        {
            update_acl_status(ACL_STATUS_50P);
        }
	}
	else if(value==0 && acl_enable == 1)
	{
		acl_enable = value;

        //ACL Off
        update_acl_status(ACL_STATUS_0P);            //0 %
		
        gprintk("ACL is disable \n");    
	}
	else
		printk("aclset_file_cmd_store value is same : value(%d)\n",value);

	return size;
}