コード例 #1
0
static int firmware_update_func(struct cypress_ts_data *ts)
{
	signed char rc;

	/* vote to turn on power */
	if (ts->power(&ts->client->dev, TS_VDD_POWER_ON))
		pr_err("%s: power on failed\n", __func__);

	pr_info("================ download_firmware_main ===============");
	if (ts->firmware_path == AUTO)
		rc = download_firmware_main(FILEPATH_A9_DVT);
	else if (ts->firmware_path == USER)
		rc = download_firmware_main(FILEPATH_USER);
	else if (ts->firmware_path == USER_EX)
		rc = download_firmware_main(FILEPATH_USEREX);
	else
		rc = download_firmware_main(FILEPATH_A9_DVT);

	/* vote to turn off power because update is finish */
	if (ts->power(&ts->client->dev, TS_VDD_POWER_OFF))
		pr_err("%s: power off failed\n", __func__);

	if (rc)
		return rc;

	if (ts->power(&ts->client->dev, TS_RESET))
		pr_info("%s: fail to reset tp\n", __func__);

	return 0;
}
コード例 #2
0
static int firmware_update_func(struct cypress_ts_data *ts, uint8_t panel)
{
	char file[30];
	signed char rc;

	if (panel == CANDO_PALNEL)
		strcpy(file, FILEPATH_CANDO);
	else if (panel == A4_PANEL)
		strcpy(file, FILEPATH_A4);
	else if (panel == USER_DEF_PANEL)
		strcpy(file, FILEPATH_USER);
	else if (panel == USEREX_DEF_PANEL)
		strcpy(file, FILEPATH_USEREX);
	else
		strcpy(file, FILEPATH_LGD);

	/* vote to turn on power */
	if (ts->power(TS_VDD_POWER_ON))
		pr_err("%s: power on failed\n", __func__);

	rc = download_firmware_main(file);

	/* vote to turn off power because update is finish */
	if (ts->power(TS_VDD_POWER_OFF))
		pr_err("%s: power off failed\n", __func__);

	if (rc)
		return rc;

	if (ts->power(TS_RESET))
		pr_info("%s: fail to reset tp\n", __func__);

	return 0;
}
コード例 #3
0
static int proc_write_val(struct file *file, const char *buffer,
           unsigned long count, void *data)
{
	//ZTE_XUKE_CRDB00517999, BEGIN 
	char *buf;
	#if defined (CONFIG_DOWNLOAD_FIRMWARE) 
  struct wake_lock ts_fwup_wake_lock;
  char *tgt_fw = "/system/etc/cypress_firmware.bin";//ZTE_WLY_CRDB00517999     
  update_flag=0;
  update_result_flag=0;	
  firmware_version=0;	   
  #endif   
	buf = kmalloc(count + 1, GFP_KERNEL);
	if (buf == NULL)
		return -ENOMEM;

	if (copy_from_user(buf, buffer, count)) {
		count = -EFAULT;
		goto out;
	}
	buf[count] = '\0';
	#if defined (CONFIG_DOWNLOAD_FIRMWARE) 
	init();
	wake_lock_init(&ts_fwup_wake_lock, WAKE_LOCK_SUSPEND, "ts_fwup");
	wake_lock(&ts_fwup_wake_lock);	
  // wake_lock_timeout(&ts_fwup_wake_lock,60000);   	
	download_firmware_main(tgt_fw);
	wake_unlock(&ts_fwup_wake_lock);
	wake_lock_destroy(&ts_fwup_wake_lock);
	reset();	
	update_result_flag=update_flag;
	#endif
	//ZTE_XUKE_CRDB00517999, END
	return count;
out:
	kfree(buf);
	return -EFAULT;
	
}