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