Beispiel #1
0
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;
}
Beispiel #2
0
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);
}
Beispiel #3
0
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;
}
Beispiel #4
0
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;
}
Beispiel #5
0
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;
}
Beispiel #6
0
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;
}
Beispiel #7
0
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;
 }
Beispiel #8
0
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;
}
Beispiel #9
0
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;
 }
Beispiel #11
0
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;
}