Example #1
0
int s3c_mdnie_set_size(unsigned int hsize, unsigned int vsize)
{
	
	unsigned int size;

	size = s3c_mdnie_readl(S3C_MDNIE_rR2);
	size &= ~S3C_MDNIE_SIZE_MASK;
	size |= hsize;
	s3c_mdnie_writel(size,S3C_MDNIE_rR2);
	
	size = s3c_mdnie_readl(S3C_MDNIE_rR3);
	size &= ~S3C_MDNIE_SIZE_MASK;
	size |= vsize;
	s3c_mdnie_writel(size,S3C_MDNIE_rR3);
	
	return 0;
}
Example #2
0
void mDNIe_gamma_set_DMB(void)   // P1_KOR_LSJ : DE26
{
	printk("mDNIe_gamma_set_DMB :: [START] \n");

    s3c_mdnie_writel(0x0000,S3C_MDNIE_rR36);	// DeConTh off
    s3c_mdnie_writel(0x0FFF,S3C_MDNIE_rR37);	// DirTh off
    s3c_mdnie_writel(0x005C,S3C_MDNIE_rR38);	// SimplTh off
    s3c_mdnie_writel(0x0FFA,S3C_MDNIE_rR39);	// 0x0012,  DE CEonoff CEdark AMOLED ---- 0000 000|0| 000|0
    s3c_mdnie_writel(0x0160,S3C_MDNIE_rR43);	// 0x0000,  skinoff CSoff
    s3c_mdnie_writel(0x0000,S3C_MDNIE_rR45);	// 0x03FF,  DETh ---- --00 0000 0000
    s3c_mdnie_writel(0x01B6,S3C_MDNIE_rR52);	// PCC skin
    s3c_mdnie_writel(0x3F5F,S3C_MDNIE_rR53);
    s3c_mdnie_writel(0x3CEA,S3C_MDNIE_rR54);
    s3c_mdnie_writel(0x0000,S3C_MDNIE_rR1);

    printk("mDNIe_gamma_set_DMB :: [END] \n");
}
int s3c_mdnie_unmask(void)
{
	unsigned int mask;

	s3c_mdnie_writel(0x0, S3C_MDNIE_rR40);

	return 0;
}
Example #4
0
int s3c_mdnie_unmask(void)
{
	unsigned int mask;

	mask = s3c_mdnie_readl(S3C_MDNIE_rR1);
	mask &= ~S3C_MDNIE_REG_MASK;
	s3c_mdnie_writel(mask,S3C_MDNIE_rR1);
	
	return 0;
}
Example #5
0
void mDNIe_Mode_set_for_backlight(u16 *buf)
{
	u32 i = 0;
	int cnt = 0;

	if(mdnie_tuning_backlight){
		s3c_mdnie_mask();

		while ((*(buf+i)) != END_SEQ)
		{
			if((*(buf+i)) == 0x0100)
			{
				if(pre_0x0100 < (*(buf+(i+1)))){
					while ((pre_0x0100 < (*(buf+(i+1))))&&(pre_0x0100 <= 0x6060)&&(pre_0x0100 >= 0x0000))
					{
						s3c_mdnie_writel(pre_0x0100, (*(buf+i)));
						printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+i)),pre_0x0100);
						pre_0x0100 = ((pre_0x0100 & 0xff00) + (0x1<<8)) | ((pre_0x0100 & 0x00ff) + (0x1));
					}
				}
				else if(pre_0x0100 > (*(buf+(i+1)))){
					while (pre_0x0100 > (*(buf+(i+1)))&&(pre_0x0100 >= 0x0000)&&(pre_0x0100 <= 0x6060))
					{
						s3c_mdnie_writel(pre_0x0100, (*(buf+i)));
						printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+i)),pre_0x0100);
						pre_0x0100 = ((pre_0x0100 & 0xff00) - (0x1<<8)) | ((pre_0x0100 & 0x00ff) - (0x1));
					}
				}
				s3c_mdnie_writel((*(buf+i+1)), (*(buf+i)));
				pre_0x0100 = (*(buf+i+1));
			}
			else
			{
				s3c_mdnie_writel((*(buf+i+1)), (*(buf+i)));
			}
			printk("[mDNIe] mDNIe_Mode_set_for_backlight : addr(0x%x), data(0x%x)  \n",(*(buf+i)),(*(buf+(i+1))));	
			i+=2;
		}

		s3c_mdnie_unmask();
	}
}
Example #6
0
int s3c_mdnie_set_size(unsigned int hsize, unsigned int vsize)
{
	unsigned int size;

	size = s3c_mdnie_readl(S3C_MDNIE_rR34);
	size &= ~S3C_MDNIE_SIZE_MASK;
	size |= hsize;
	s3c_mdnie_writel(S3C_MDNIE_rR34, size);

	s3c_mdnie_unmask();

	size = s3c_mdnie_readl(S3C_MDNIE_rR35);
	size &= ~S3C_MDNIE_SIZE_MASK;
	size |= vsize;
	s3c_mdnie_writel(S3C_MDNIE_rR35, size);

	s3c_mdnie_unmask();

	return 0;
}
void mDNIe_tuning_set(void)
{
	u32 i = 0;

	while (mDNIe_data[i] != END_SEQ) {
		s3c_mdnie_writel(mDNIe_data[i+1], mDNIe_data[i]);
		//printk(KERN_INFO "[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n", mDNIe_data[i], mDNIe_data[i+1]);
		i += 2;
	}
	s3c_mdnie_unmask();
}
Example #8
0
int s3c_mdnie_select_mode(int algo, int mcm, int lpa)
{
	s3c_mdnie_writel(0x0000,S3C_MDNIE_rR1);
	s3c_mdnie_writel(0x0000,S3C_MDNIE_rR36);
	s3c_mdnie_writel(0x0FFF,S3C_MDNIE_rR37);
	s3c_mdnie_writel(0x005c,S3C_MDNIE_rR38);

	s3c_mdnie_writel(0x0ff0,S3C_MDNIE_rR39);
	s3c_mdnie_writel(0x0064,S3C_MDNIE_rR43);
	s3c_mdnie_writel(0x0364,S3C_MDNIE_rR45);

	return 0;
}
Example #9
0
void mDNIe_gamma_set(void)   // P1_KOR_LSJ : DE26
{
	printk("mDNIe_gamma_set :: [START] \n");

    s3c_mdnie_writel(0x0000,S3C_MDNIE_rR36);	// DeConTh off
    s3c_mdnie_writel(0x0FFF,S3C_MDNIE_rR37);	// DirTh off
    s3c_mdnie_writel(0x005C,S3C_MDNIE_rR38);	// SimplTh off
    s3c_mdnie_writel(0x0012,S3C_MDNIE_rR39);	// 0x0012,  DE CEonoff CEdark AMOLED ---- 0000 000|0| 000|0
    s3c_mdnie_writel(0x0280,S3C_MDNIE_rR43);	// 0x0000,  skinoff CSoff
    s3c_mdnie_writel(0x0000,S3C_MDNIE_rR45);	// 0x03FF,  DETh ---- --00 0000 0000

    printk("mDNIe_gamma_set :: [END] \n");
}
Example #10
0
void mDNIe_Mode_Change(mDNIe_data_type *mode)
{

	if(mDNIe_Tuning_Mode == TRUE)
	{
		printk("mDNIe_Mode_Change [mDNIe_Tuning_Mode = TRUE, API is Return] \n");
		return;
	}
	else
	{
		s3c_mdnie_mask();
		while ( mode->addr != END_SEQ)
		{
			s3c_mdnie_writel(mode->data, mode->addr);
			gprintk(KERN_INFO "[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",mode->addr, mode->data);	
			mode++;
		}
		s3c_mdnie_unmask();
	}
}
Example #11
0
int s3c_mdnie_unmask(void)
{
	s3c_mdnie_writel(S3C_MDNIE_rR40, 0x0);

	return 0;
}
Example #12
0
void mDNIe_Mode_set_for_lightsensor(u16 *buf)
{
	u32 i = 0;
	int cnt = 0;

	s3c_mdnie_mask();
if(cur_adc_level >= pre_adc_level)	//0 => END_SEQ
{
	while ( (*(buf+i)) != END_SEQ)
	{
		if((*(buf+i)) == 0x0100)
		{
			if(init_mdnie == 0)
			{
				pre_0x0100 = (*(buf+(i+1)));
			}
			if(pre_0x0100 < (*(buf+(i+1)))){
				while ((pre_0x0100 < (*(buf+(i+1))))&&(pre_0x0100 <= 0x8080)&&(pre_0x0100 >= 0x0000))
				{
					s3c_mdnie_writel(pre_0x0100, (*(buf+i)));
					printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+i)),pre_0x0100);
					pre_0x0100 = ((pre_0x0100 & 0xff00) + (light_step<<8)) | ((pre_0x0100 & 0x00ff) + (saturation_step));
				}
			}
			else if(pre_0x0100 > (*(buf+(i+1)))){
				while (pre_0x0100 > (*(buf+(i+1)))&&(pre_0x0100 >= 0x0000)&&(pre_0x0100 <= 0x8080))
				{
					s3c_mdnie_writel(pre_0x0100, (*(buf+i)));
					printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+i)),pre_0x0100);
					pre_0x0100 = ((pre_0x0100 & 0xff00) - (light_step<<8)) | ((pre_0x0100 & 0x00ff) - (saturation_step));
				}
			}
			s3c_mdnie_writel((*(buf+i+1)), (*(buf+i)));
			pre_0x0100 = (*(buf+i+1));
		}
		else if((*(buf+i)) == 0x00AC)
		{
			if(init_mdnie == 0)
			{
				pre_0x00AC = (*(buf+(i+1)));
			}
			if(pre_0x00AC < (*(buf+(i+1)))){
				while (pre_0x00AC < (*(buf+(i+1)))&&(pre_0x00AC <= 0x03ff)&&(pre_0x00AC >= 0x0000))
				{
					s3c_mdnie_writel(pre_0x00AC, (*(buf+i)));
					printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+i)),pre_0x00AC);
					pre_0x00AC +=(cs_step);
				}
			}
			else if(pre_0x00AC > (*(buf+(i+1)))){
				while (pre_0x00AC > (*(buf+(i+1)))&&(pre_0x00AC >= 0x0000)&&(pre_0x00AC <= 0x03ff))
				{
					s3c_mdnie_writel(pre_0x00AC, (*(buf+i)));
					printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+i)),pre_0x00AC);
					pre_0x00AC -=(cs_step);
				}
			}
			s3c_mdnie_writel((*(buf+i+1)), (*(buf+i)));
			pre_0x00AC = (*(buf+i+1));
		}
		else
		{
			s3c_mdnie_writel((*(buf+i+1)), (*(buf+i)));
		}
		printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+i)),(*(buf+(i+1))));	
		i+=2;
	}
}
else // if(cur_adc_level < pre_adc_level)  //END_SEQ => 0
{
		switch (cur_adc_level) {
		case 0:
			cnt = mDNIe_data_level0_cnt;
			break;
		case 1:
			cnt = mDNIe_data_level1_cnt;
			break;
		case 2:
			cnt = mDNIe_data_level2_cnt;
			break;
		case 3:
		default:
			cnt = mDNIe_data_level3_cnt;
			break;
		case 4:
			cnt = mDNIe_data_level4_cnt;
			break;
		case 5:
			cnt = mDNIe_data_level5_cnt;
			break;
		}

		cnt--;	//remove END_SEQ

		while ( cnt > 0)	
		{
			if((*(buf+cnt-1)) == 0x0100)
			{
				if(init_mdnie == 0)
				{
					pre_0x0100 = (*(buf+cnt));
				}
				if(pre_0x0100 < (*(buf+cnt))){
					while ((pre_0x0100 < (*(buf+cnt)))&&(pre_0x0100 <= 0x8080)&&(pre_0x0100 >= 0x0000))
					{
						s3c_mdnie_writel(pre_0x0100, (*(buf+cnt-1)));
						printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+cnt-1)),pre_0x0100);
						pre_0x0100 = ((pre_0x0100 & 0xff00) + (light_step<<8)) | ((pre_0x0100 & 0x00ff) + (saturation_step));
					}
				}
				else if(pre_0x0100 > (*(buf+cnt))){
					while (pre_0x0100 > (*(buf+cnt))&&(pre_0x0100 >= 0x0000)&&(pre_0x0100 <= 0x8080))
					{
						s3c_mdnie_writel(pre_0x0100, (*(buf+cnt-1)));
						printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+cnt-1)),pre_0x0100);
						pre_0x0100 = ((pre_0x0100 & 0xff00) - (light_step<<8)) | ((pre_0x0100 & 0x00ff) - (saturation_step));
					}
				}
				s3c_mdnie_writel((*(buf+cnt)), (*(buf+cnt-1)));
				pre_0x0100 = (*(buf+cnt));
			}
			else if((*(buf+cnt-1)) == 0x00AC)
			{
				if(init_mdnie == 0)
				{
					pre_0x00AC = (*(buf+cnt));
				}
				if(pre_0x00AC < (*(buf+cnt))){
					while (pre_0x00AC < (*(buf+cnt))&&(pre_0x00AC <= 0x03ff)&&(pre_0x00AC >= 0x0000))
					{
						s3c_mdnie_writel(pre_0x00AC, (*(buf+cnt-1)));
						printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+cnt-1)),pre_0x00AC);
						pre_0x00AC +=(cs_step);
					}
				}
				else if(pre_0x00AC > (*(buf+cnt))){
					while (pre_0x00AC > (*(buf+cnt))&&(pre_0x00AC >= 0x0000)&&(pre_0x00AC <= 0x03ff))
					{
						s3c_mdnie_writel(pre_0x00AC, (*(buf+cnt-1)));
						printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+cnt-1)),pre_0x00AC);
						pre_0x00AC -=(cs_step);
					}
				}
				s3c_mdnie_writel((*(buf+cnt)), (*(buf+cnt-1)));
				pre_0x00AC = (*(buf+cnt));
			}
			else
			{
				//s3c_mdnie_writel((*(buf+i+1)), (*(buf+i)));
				s3c_mdnie_writel((*(buf+cnt)), (*(buf+cnt-1)));
			}
			
			printk("[mDNIe] mDNIe_tuning_initialize: addr(0x%x), data(0x%x)  \n",(*(buf+cnt-1)),(*(buf+cnt)));

			cnt -=2;
		}
}
	s3c_mdnie_unmask();
}
Example #13
0
void mDNIe_Mode_set_for_backlight(u16 *buf)
{
	u32 i = 0;
	int cnt = 0;

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

		//if(mdnie_tuning_backlight)
		{
			s3c_mdnie_mask();

			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);
	}	
}