static ssize_t tuning_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct mdnie_info *mdnie = dev_get_drvdata(dev); u16 mdnie_data[100]; char tuning_file_name[50]; int ret; if (!strncmp(buf, "0", 1)) { mdnie->tuning = FALSE; dev_info(dev, "%s :: tuning is disabled.\n", __func__); } else if (!strncmp(buf, "1", 1)) { mdnie->tuning = TRUE; dev_info(dev, "%s :: tuning is enabled.\n", __func__); } else { if (!mdnie->tuning) return count; if (count > (sizeof(tuning_file_name) - sizeof(MDNIE_SYSFS_PREFIX))) return -ENOMEM; memset(tuning_file_name, 0, sizeof(tuning_file_name)); strcpy(tuning_file_name, MDNIE_SYSFS_PREFIX); strncat(tuning_file_name, buf, count-1); ret = mdnie_txtbuf_to_parsing(tuning_file_name, mdnie_data, ARRAY_SIZE(mdnie_data)); if (ret < 0) return ret; mdnie_send_sequence(mdnie, mdnie_data); dev_info(dev, "%s :: %s\n", __func__, tuning_file_name); } return count; }
static void write_mdnie_ui (unsigned char *dest_name, const unsigned short source_dynamic[], const unsigned short source_movie[], const unsigned short source_standard[], const unsigned short source_natural[]) { struct mdnie_info *m; // get pointer to global mdnie control structure m = *((void **)kallsyms_lookup_name("g_mdnie")); // send the sequence to the mdnie driver to reflect update instantly, // based on currently configured screen mode switch(m->mode) { case DYNAMIC: { mdnie_send_sequence(m, source_dynamic); break; } case MOVIE: { mdnie_send_sequence(m, source_movie); break; } case STANDARD: { mdnie_send_sequence(m, source_standard); break; } case NATURAL: { mdnie_send_sequence(m, source_natural); break; } case MODE_MAX: { break; } } // print debug info printk("Lonas-kernel: mdnie control device updated for mode: %d\n", m->mode); }
static void mdnie_update_sequence(struct mdnie_info *mdnie, struct mdnie_tuning_info *table) { unsigned short *wbuf = NULL; int ret; if (unlikely(mdnie->tuning)) { ret = mdnie_request_firmware(mdnie->path, &wbuf, table->name); if (ret < 0 && IS_ERR_OR_NULL(wbuf)) goto exit; mdnie_send_sequence(mdnie, wbuf); kfree(wbuf); } else mdnie_send_sequence(mdnie, table->sequence); exit: return; }
void set_mdnie_value(struct mdnie_info *mdnie) { if (!mdnie->enable) { dev_err(mdnie->dev, "do not configure mDNIe after LCD/mDNIe power off\n"); return; } dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].name); if (mdnie->scenario == VIDEO_WARM_MODE) mdnie->tone = TONE_WARM; else if (mdnie->scenario == VIDEO_COLD_MODE) mdnie->tone = TONE_COLD; else mdnie->tone = TONE_NORMAL; if (mdnie->tunning) { dev_info(mdnie->dev, "mDNIe tunning mode is enabled\n"); return; } if ((mdnie->scenario == CAMERA_MODE) && (mdnie->outdoor == OUTDOOR_ON)) { dev_info(mdnie->dev, "%s\n", "CAMERA_OUTDOOR"); mdnie_send_sequence(mdnie, tune_camera_outdoor); } else mdnie_send_sequence(mdnie, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].seq); if (mdnie->scenario == CAMERA_MODE) return; if (!((mdnie->tone == TONE_NORMAL) && (mdnie->outdoor == OUTDOOR_OFF))) { dev_info(mdnie->dev, "%s\n", etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].name); mdnie_send_sequence(mdnie, etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].seq); } return; }
void set_mdnie_value(struct mdnie_info *mdnie, u8 force) { u8 idx; if ((!mdnie->enable) && (!force)) { dev_err(mdnie->dev, "mdnie states is off\n"); return; } if (mdnie->scenario == VIDEO_WARM_MODE) mdnie->tone = TONE_WARM; else if (mdnie->scenario == VIDEO_COLD_MODE) mdnie->tone = TONE_COLD; else mdnie->tone = TONE_NORMAL; if (mdnie->tunning) { dev_info(mdnie->dev, "mdnie tunning mode is enabled\n"); return; } mutex_lock(&mdnie->lock); if (mdnie->negative == NEGATIVE_ON) { dev_info(mdnie->dev, "NEGATIVE_ON\n"); mdnie_send_sequence(mdnie, tune_negative[mdnie->cabc].seq); goto exit; } #if defined(CONFIG_TDMB) || defined(CONFIG_TARGET_LOCALE_NTT) if (mdnie->scenario == DMB_WARM_MODE) mdnie->tone = TONE_WARM; else if (mdnie->scenario == DMB_COLD_MODE) mdnie->tone = TONE_COLD; if (SCENARIO_IS_DMB(mdnie->scenario)) { idx = mdnie->scenario - DMB_NORMAL_MODE; mdnie_send_sequence(mdnie, tune_dmb[mdnie->mode].seq); dev_info(mdnie->dev, "[DMB] mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tune_dmb[mdnie->mode].name); goto etc; } #endif // Browser if (SCENARIO_IS_COLOR(mdnie->scenario)) { idx = mdnie->scenario - COLOR_TONE_1; mdnie_send_sequence(mdnie, tune_color_tone[idx].seq); dev_info(mdnie->dev, "[COLOR] mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tune_color_tone[idx].name); goto exit; } else if ((mdnie->scenario == CAMERA_MODE) && (mdnie->outdoor == OUTDOOR_OFF)) { mdnie_send_sequence(mdnie, tune_camera); dev_info(mdnie->dev, "%s\n", "CAMERA"); goto exit; } else if ((mdnie->scenario == CAMERA_MODE) && (mdnie->outdoor == OUTDOOR_ON)) { mdnie_send_sequence(mdnie, tune_camera_outdoor); dev_info(mdnie->dev, "%s\n", "CAMERA_OUTDOOR"); goto exit; } else { mdnie_send_sequence(mdnie, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].seq); dev_info(mdnie->dev, "[TUNE] mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].name); } #if defined(CONFIG_TDMB) || defined(CONFIG_TARGET_LOCALE_NTT) etc: #endif // Warm / Cold Setup mdnie_send_sequence(mdnie, etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].seq); dev_info(mdnie->dev, "[Etc] mode=%d, scenario=%d, outdoor=%d, tone=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->tone, etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].name); exit: mutex_unlock(&mdnie->lock); return; }
void set_mdnie_value(struct mdnie_info *mdnie, u8 force) { u8 idx; if ((!mdnie->enable) && (!force)) { dev_err(mdnie->dev, "mdnie states is off\n"); return; } if (mdnie->scenario == VIDEO_WARM_MODE) mdnie->tone = TONE_WARM; else if (mdnie->scenario == VIDEO_COLD_MODE) mdnie->tone = TONE_COLD; else mdnie->tone = TONE_NORMAL; if (mdnie->tunning) { dev_info(mdnie->dev, "mdnie tunning mode is enabled\n"); return; } mutex_lock(&mdnie->lock); if (mdnie->negative == NEGATIVE_ON) { dev_info(mdnie->dev, "NEGATIVE_ON\n"); mdnie_send_sequence(mdnie, negative_table[mdnie->cabc].seq); goto exit; } #if defined(CONFIG_TDMB) || defined(CONFIG_TARGET_LOCALE_NTT) if (SCENARIO_IS_DMB(mdnie->scenario)) { idx = mdnie->scenario - DMB_NORMAL_MODE; mdnie->tone = idx; mdnie_send_sequence(mdnie, tune_dmb[mdnie->mode].seq); dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tune_dmb[mdnie->mode].name); goto etc; } #endif if (SCENARIO_IS_COLOR(mdnie->scenario)) { idx = mdnie->scenario - COLOR_TONE_1; mdnie_send_sequence(mdnie, color_tone_table[idx].seq); dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, color_tone_table[idx].name); goto exit; } else if (mdnie->scenario == CAMERA_MODE) { mdnie_send_sequence(mdnie, camera_table[mdnie->outdoor].seq); dev_info(mdnie->dev, "%s\n", camera_table[mdnie->outdoor].name); goto exit; } else { mdnie_send_sequence(mdnie, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].seq); dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].name); } #if defined(CONFIG_TDMB) || defined(CONFIG_TARGET_LOCALE_NTT) etc: #endif if (!IS_ERR_OR_NULL(etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].seq)) { mdnie_send_sequence(mdnie, etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].seq); dev_info(mdnie->dev, "%s\n", etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].name); } exit: mutex_unlock(&mdnie->lock); return; }
void set_mdnie_value(struct mdnie_info *mdnie, u8 force) { u8 idx; if ((!mdnie->enable) && (!force)) { dev_err(mdnie->dev, "mdnie states is off\n"); return; } printk("%s mdnie->mode = %d mdnie->scenario = %d, mdnie->negative = %d \n",__func__, mdnie->mode ,mdnie->scenario, mdnie->negative); mutex_lock(&mdnie->lock); if(NEGATIVE_ON == mdnie->negative){ #ifdef LCD_DUALIZATION mdnie_send_sequence(mdnie, mdnie_tunning_values[lcd_panel_id][NEGATIVE_T]); #else mdnie_send_sequence(mdnie, negative_tuning); #endif mutex_unlock(&mdnie->lock); return; } #ifdef LCD_DUALIZATION /* + for DTC LCD */ if(VIDEO_WARM_MODE == mdnie->scenario){ if (VIDEO_WARM_T == mdnie_value_setted && OUTDOOR_OFF == mdnie->outdoor){ mutex_unlock(&mdnie->lock); return; } if (VIDEO_WARM_OUTDOOR_T == mdnie_value_setted && OUTDOOR_ON == mdnie->outdoor){ mutex_unlock(&mdnie->lock); return; } } if(VIDEO_COLD_MODE == mdnie->scenario){ if (VIDEO_COLD_T == mdnie_value_setted && OUTDOOR_OFF == mdnie->outdoor){ mutex_unlock(&mdnie->lock); return; } if (VIDEO_COLD_OUTDOOR_T == mdnie_value_setted && OUTDOOR_ON == mdnie->outdoor){ mutex_unlock(&mdnie->lock); return; } } /* - for DTC LCD */ #endif switch (mdnie->scenario) { case UI_MODE: #ifdef LCD_DUALIZATION mdnie_send_sequence(mdnie, mdnie_tunning_values[lcd_panel_id][UI_T]); mdnie_value_setted = UI_T; #else mdnie_send_sequence(mdnie, ui_tuning); #endif break; case VIDEO_MODE: if(OUTDOOR_ON == mdnie->outdoor){ #ifdef LCD_DUALIZATION mdnie_send_sequence(mdnie, mdnie_tunning_values[lcd_panel_id][VIDEO_OUTDOOR_T]); mdnie_value_setted = VIDEO_OUTDOOR_T; #else mdnie_send_sequence(mdnie, video_outdoor_tuning); #endif }else{ #ifdef LCD_DUALIZATION mdnie_send_sequence(mdnie, mdnie_tunning_values[lcd_panel_id][VIDEO_T]); mdnie_value_setted = VIDEO_T; #else mdnie_send_sequence(mdnie, video_tuning); #endif } break; case VIDEO_WARM_MODE: if(OUTDOOR_ON == mdnie->outdoor){ #ifdef LCD_DUALIZATION mdnie_send_sequence(mdnie, mdnie_tunning_values[lcd_panel_id][VIDEO_WARM_OUTDOOR_T]); /* TEST for DTC Video problem VIDEO_WARM_OUTDOOR_T*/ mdnie_value_setted = VIDEO_WARM_OUTDOOR_T; #else mdnie_send_sequence(mdnie, video_warm_outdoor_tuning); #endif }else{ #ifdef LCD_DUALIZATION mdnie_send_sequence(mdnie, mdnie_tunning_values[lcd_panel_id][VIDEO_WARM_T]); /* TEST for DTC Video problem VIDEO_WARM_T*/ mdnie_value_setted = VIDEO_WARM_T; #else mdnie_send_sequence(mdnie, video_warm_tuning); #endif } break; case VIDEO_COLD_MODE: if(OUTDOOR_ON == mdnie->outdoor){ #ifdef LCD_DUALIZATION mdnie_send_sequence(mdnie, mdnie_tunning_values[lcd_panel_id][VIDEO_COLD_OUTDOOR_T]); /* TEST for DTC Video problem VIDEO_COLD_OUTDOOR_T*/ mdnie_value_setted = VIDEO_COLD_OUTDOOR_T; #else mdnie_send_sequence(mdnie, video_cold_outdoor_tuning); #endif }else{ #ifdef LCD_DUALIZATION mdnie_send_sequence(mdnie, mdnie_tunning_values[lcd_panel_id][VIDEO_COLD_T]); /* TEST for DTC Video problem VIDEO_COLD_T*/ mdnie_value_setted = VIDEO_COLD_T; #else mdnie_send_sequence(mdnie, video_cold_tuning); #endif } break; case CAMERA_MODE: if(OUTDOOR_ON == mdnie->outdoor){ #ifdef LCD_DUALIZATION mdnie_send_sequence(mdnie, mdnie_tunning_values[lcd_panel_id][CAMERA_OUTDOOR_T]); mdnie_value_setted = CAMERA_OUTDOOR_T; #else mdnie_send_sequence(mdnie, camera_outdoor_tuning); #endif }else{ #ifdef LCD_DUALIZATION mdnie_send_sequence(mdnie, mdnie_tunning_values[lcd_panel_id][CAMERA_T]); mdnie_value_setted = CAMERA_T; #else mdnie_send_sequence(mdnie, camera_tuning); #endif } break; case GALLERY_MODE: #ifdef LCD_DUALIZATION mdnie_send_sequence(mdnie, mdnie_tunning_values[lcd_panel_id][GALLERY_T]); mdnie_value_setted = GALLERY_T; #else mdnie_send_sequence(mdnie, gallery_tuning); #endif break; default: break; } exit: mutex_unlock(&mdnie->lock); return; }
void set_mdnie_value(struct mdnie_info *mdnie) { u8 idx; if (!mdnie->enable) { dev_err(mdnie->dev, "do not configure mDNIe after LCD/mDNIe power off\n"); return; } if (mdnie->scenario == VIDEO_WARM_MODE) mdnie->tone = TONE_WARM; else if (mdnie->scenario == VIDEO_COLD_MODE) mdnie->tone = TONE_COLD; else mdnie->tone = TONE_NORMAL; if (mdnie->tunning) { dev_info(mdnie->dev, "mDNIe tunning mode is enabled\n"); return; } mutex_lock(&mdnie->lock); if (mdnie->negative == NEGATIVE_ON) { dev_info(mdnie->dev, "NEGATIVE_ON\n"); mdnie_send_sequence(mdnie, tune_negative[mdnie->cabc].seq); goto exit; } #ifdef CONFIG_TARGET_LOCALE_KOR if (SCENARIO_IS_DMB(mdnie->scenario)) { idx = mdnie->scenario - DMB_NORMAL_MODE; mdnie_send_sequence(mdnie, tune_dmb[mdnie->outdoor][idx].seq); dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tune_dmb[mdnie->outdoor][idx].name); goto exit; } #endif if (SCENARIO_IS_COLOR(mdnie->scenario)) { idx = mdnie->scenario - COLOR_TONE_1; mdnie_send_sequence(mdnie, tune_color_tone[idx].seq); dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tune_color_tone[idx].name); goto exit; } else if ((mdnie->scenario == CAMERA_MODE) && \ (mdnie->outdoor == OUTDOOR_ON)) { mdnie_send_sequence(mdnie, tune_camera_outdoor); dev_info(mdnie->dev, "%s\n", "CAMERA_OUTDOOR"); goto exit; } else if (mdnie->scenario < SCENARIO_MAX) { mdnie_send_sequence(mdnie, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].seq); dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].name); if (mdnie->scenario == CAMERA_MODE) goto exit; } if (!((mdnie->tone == TONE_NORMAL) && (mdnie->outdoor == OUTDOOR_OFF))) { dev_info(mdnie->dev, "%s\n", etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].name); mdnie_send_sequence(mdnie, etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].seq); } exit: mutex_unlock(&mdnie->lock); return; }
void set_mdnie_value(struct mdnie_info *mdnie, u8 force) { u8 idx; if ((!mdnie->enable) && (!force)) { dev_err(mdnie->dev, "mdnie states is off\n"); return; } if (mdnie->scenario == VIDEO_WARM_MODE) mdnie->tone = TONE_WARM; else if (mdnie->scenario == VIDEO_COLD_MODE) mdnie->tone = TONE_COLD; else mdnie->tone = TONE_NORMAL; if (mdnie->tunning) { dev_info(mdnie->dev, "mdnie tunning mode is enabled\n"); return; } mutex_lock(&mdnie->lock); if (mdnie->negative == NEGATIVE_ON) { dev_info(mdnie->dev, "NEGATIVE_ON\n"); mdnie_send_sequence(mdnie, tune_negative[mdnie->cabc].seq); goto exit; } #ifdef CONFIG_TARGET_LOCALE_KOR #if defined(CONFIG_MACH_M0_KOR_SKT) || defined(CONFIG_MACH_M0_KOR_KT) || \ defined(CONFIG_MACH_C1_KOR_SKT) || defined(CONFIG_MACH_C1_KOR_KT) || \ defined(CONFIG_MACH_C1_KOR_LGT) dev_info(mdnie->dev, "ICS DMB SCENARIO ON\n"); if (SCENARIO_IS_DMB(mdnie->scenario)) { idx = mdnie->scenario - DMB_NORMAL_MODE; mdnie_send_sequence(mdnie, tune_ics_dmb[mdnie->mode].seq); #ifndef PRODUCT_SHIP dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tune_ics_dmb[mdnie->mode].name); #endif } if (!((mdnie->tone == TONE_NORMAL) && (mdnie->outdoor == OUTDOOR_OFF))) { dev_info(mdnie->dev, "%s\n", etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].name); mdnie_send_sequence(mdnie, etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].seq); } goto exit; #else if (SCENARIO_IS_DMB(mdnie->scenario)) { idx = mdnie->scenario - DMB_NORMAL_MODE; mdnie_send_sequence(mdnie, tune_dmb[mdnie->outdoor][idx].seq); #ifndef PRODUCT_SHIP dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tune_dmb[mdnie->outdoor][idx].name); #endif goto exit; } #endif #endif if (SCENARIO_IS_COLOR(mdnie->scenario)) { idx = mdnie->scenario - COLOR_TONE_1; mdnie_send_sequence(mdnie, tune_color_tone[idx].seq); #ifndef PRODUCT_SHIP dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tune_color_tone[idx].name); #endif goto exit; } else if ((mdnie->scenario == CAMERA_MODE) && \ (mdnie->outdoor == OUTDOOR_ON)) { mdnie_send_sequence(mdnie, tune_camera_outdoor); dev_info(mdnie->dev, "%s\n", "CAMERA_OUTDOOR"); goto exit; } else if (mdnie->scenario < SCENARIO_MAX) { mdnie_send_sequence(mdnie, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].seq); #ifndef PRODUCT_SHIP dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].name); #endif if (mdnie->scenario == CAMERA_MODE) goto exit; } if (!((mdnie->tone == TONE_NORMAL) && (mdnie->outdoor == OUTDOOR_OFF))) { dev_info(mdnie->dev, "%s\n", etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].name); mdnie_send_sequence(mdnie, etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].seq); } exit: mutex_unlock(&mdnie->lock); return; }
void set_mdnie_value(struct mdnie_info *mdnie, u8 force) { u8 idx; if ((!mdnie->enable) && (!force)) { dev_err(mdnie->dev, "mdnie states is off\n"); return; } #if 1 printk("%s mdnie->mode = %d mdnie->scenario = %d, mdnie->negative = %d \n",__func__, mdnie->mode ,mdnie->scenario, mdnie->negative); mutex_lock(&mdnie->lock); if(NEGATIVE_ON == mdnie->negative){ mdnie_send_sequence(mdnie, negative_tuning); mutex_unlock(&mdnie->lock); return; } switch (mdnie->scenario) { case UI_MODE: mdnie_send_sequence(mdnie, ui_tuning); break; case VIDEO_MODE: if(OUTDOOR_ON == mdnie->outdoor) mdnie_send_sequence(mdnie, video_outdoor_tuning); else mdnie_send_sequence(mdnie, video_tuning); break; case VIDEO_WARM_MODE: if(OUTDOOR_ON == mdnie->outdoor) mdnie_send_sequence(mdnie, video_warm_outdoor_tuning); else mdnie_send_sequence(mdnie, video_warm_tuning); break; case VIDEO_COLD_MODE: if(OUTDOOR_ON == mdnie->outdoor) mdnie_send_sequence(mdnie, video_cold_outdoor_tuning); else mdnie_send_sequence(mdnie, video_cold_tuning); break; case CAMERA_MODE: if(OUTDOOR_ON == mdnie->outdoor) mdnie_send_sequence(mdnie, camera_outdoor_tuning); else mdnie_send_sequence(mdnie, camera_tuning); break; case GALLERY_MODE: mdnie_send_sequence(mdnie, gallery_tuning); break; default: break; } #else if (mdnie->scenario == VIDEO_WARM_MODE) mdnie->tone = TONE_WARM; else if (mdnie->scenario == VIDEO_COLD_MODE) mdnie->tone = TONE_COLD; else mdnie->tone = TONE_NORMAL; if (mdnie->tunning) { dev_info(mdnie->dev, "mdnie tunning mode is enabled\n"); return; } mutex_lock(&mdnie->lock); if (mdnie->negative == NEGATIVE_ON) { dev_info(mdnie->dev, "NEGATIVE_ON\n"); printk("mdnie testNegative\n"); mdnie_send_sequence(mdnie, camera_table[mdnie->outdoor].seq); /* SKC for test */ //mdnie_send_sequence(mdnie, negative_table[mdnie->cabc].seq); goto exit; } #if defined(CONFIG_TDMB) || defined(CONFIG_TARGET_LOCALE_NTT) if (SCENARIO_IS_DMB(mdnie->scenario)) { idx = mdnie->scenario - DMB_NORMAL_MODE; mdnie_send_sequence(mdnie, tune_dmb[mdnie->mode].seq); dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tune_dmb[mdnie->mode].name); goto etc; } #endif if (SCENARIO_IS_COLOR(mdnie->scenario)) { idx = mdnie->scenario - COLOR_TONE_1; //mdnie_send_sequence(mdnie, color_tone_table[idx].seq); //dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", // mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, // color_tone_table[idx].name); goto exit; } else if (mdnie->scenario == CAMERA_MODE) { mdnie_send_sequence(mdnie, camera_table[mdnie->outdoor].seq); dev_info(mdnie->dev, "%s\n", camera_table[mdnie->outdoor].name); goto exit; } else { mdnie_send_sequence(mdnie, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].seq); dev_info(mdnie->dev, "mode=%d, scenario=%d, outdoor=%d, cabc=%d, %s\n", mdnie->mode, mdnie->scenario, mdnie->outdoor, mdnie->cabc, tunning_table[mdnie->cabc][mdnie->mode][mdnie->scenario].name); } #if defined(CONFIG_TDMB) || defined(CONFIG_TARGET_LOCALE_NTT) etc: #endif if (!IS_ERR_OR_NULL(etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].seq)) { mdnie_send_sequence(mdnie, etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].seq); dev_info(mdnie->dev, "%s\n", etc_table[mdnie->cabc][mdnie->outdoor][mdnie->tone].name); } #endif /* SKC */ exit: mutex_unlock(&mdnie->lock); return; }
int mdnie_txtbuf_to_parsing(char const *pFilepath) { struct file *filp; char *dp; long l; loff_t pos; int ret, num; mm_segment_t fs; fs = get_fs(); set_fs(get_ds()); printk("%s:", pFilepath); if (!pFilepath) { printk("Error : mdnie_txtbuf_to_parsing has invalid filepath.\n"); goto parse_err; } filp = filp_open(pFilepath, O_RDONLY, 0); if (IS_ERR(filp)) { printk("file open error:%d\n", (s32)filp); goto parse_err; } l = filp->f_path.dentry->d_inode->i_size; dp = kmalloc(l+10, GFP_KERNEL); /* add cushion : origianl code is 'dp = kmalloc(l, GFP_KERNEL);' */ if (dp == NULL) { printk(KERN_INFO "Out of Memory!\n"); filp_close(filp, current->files); goto parse_err; } pos = 0; memset(dp, 0, l); ret = vfs_read(filp, (char __user *)dp, l, &pos); if (ret != l) { printk(KERN_INFO "<CMC623> Failed to read file (ret = %d)\n", ret); kfree(dp); filp_close(filp, current->files); goto parse_err; } filp_close(filp, current->files); set_fs(fs); num = parse_text(dp, l); if (!num) { printk("Nothing to parse!\n"); kfree(dp); goto parse_err; } mdnie_data[num] = END_SEQ; mdnie_send_sequence(g_mdnie, mdnie_data); kfree(dp); num = num / 2; return num; parse_err: return -EPERM; }