Loading drivers/input/touchscreen/focaltech_touch/focaltech_ex_fun.c +0 −67 Original line number Diff line number Diff line Loading @@ -905,68 +905,6 @@ static ssize_t fts_tprwreg_store( return count; } /* fts_upgrade_bin interface */ static ssize_t fts_fwupgradebin_show( struct device *dev, struct device_attribute *attr, char *buf) { return -EPERM; } static ssize_t fts_fwupgradebin_store( struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { char fwname[FILE_NAME_LENGTH] = { 0 }; struct input_dev *input_dev = fts_data->input_dev; if ((count <= 1) || (count >= FILE_NAME_LENGTH - 32)) { FTS_ERROR("fw bin name's length(%d) fail", (int)count); return -EINVAL; } memset(fwname, 0, sizeof(fwname)); snprintf(fwname, FILE_NAME_LENGTH, "%s", buf); fwname[count - 1] = '\0'; FTS_INFO("upgrade with bin file through sysfs node"); mutex_lock(&input_dev->mutex); fts_upgrade_bin(fwname, 0); mutex_unlock(&input_dev->mutex); return count; } /* fts_force_upgrade interface */ static ssize_t fts_fwforceupg_show( struct device *dev, struct device_attribute *attr, char *buf) { return -EPERM; } static ssize_t fts_fwforceupg_store( struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { char fwname[FILE_NAME_LENGTH]; struct input_dev *input_dev = fts_data->input_dev; if ((count <= 1) || (count >= FILE_NAME_LENGTH - 32)) { FTS_ERROR("fw bin name's length(%d) fail", (int)count); return -EINVAL; } memset(fwname, 0, sizeof(fwname)); snprintf(fwname, FILE_NAME_LENGTH, "%s", buf); fwname[count - 1] = '\0'; FTS_INFO("force upgrade through sysfs node"); mutex_lock(&input_dev->mutex); fts_upgrade_bin(fwname, 1); mutex_unlock(&input_dev->mutex); return count; } /* fts_driver_info interface */ static ssize_t fts_driverinfo_show( struct device *dev, struct device_attribute *attr, char *buf) Loading Loading @@ -1137,9 +1075,6 @@ static DEVICE_ATTR(fts_fw_version, S_IRUGO | S_IWUSR, fts_tpfwver_show, fts_tpfw * cat rw_reg */ static DEVICE_ATTR(fts_rw_reg, S_IRUGO | S_IWUSR, fts_tprwreg_show, fts_tprwreg_store); /* upgrade from fw bin file example:echo "*.bin" > fts_upgrade_bin */ static DEVICE_ATTR(fts_upgrade_bin, S_IRUGO | S_IWUSR, fts_fwupgradebin_show, fts_fwupgradebin_store); static DEVICE_ATTR(fts_force_upgrade, S_IRUGO | S_IWUSR, fts_fwforceupg_show, fts_fwforceupg_store); static DEVICE_ATTR(fts_driver_info, S_IRUGO | S_IWUSR, fts_driverinfo_show, fts_driverinfo_store); static DEVICE_ATTR(fts_dump_reg, S_IRUGO | S_IWUSR, fts_dumpreg_show, fts_dumpreg_store); static DEVICE_ATTR(fts_hw_reset, S_IRUGO | S_IWUSR, fts_hw_reset_show, fts_hw_reset_store); Loading @@ -1153,8 +1088,6 @@ static struct attribute *fts_attributes[] = { &dev_attr_fts_fw_version.attr, &dev_attr_fts_rw_reg.attr, &dev_attr_fts_dump_reg.attr, &dev_attr_fts_upgrade_bin.attr, &dev_attr_fts_force_upgrade.attr, &dev_attr_fts_driver_info.attr, &dev_attr_fts_hw_reset.attr, &dev_attr_fts_irq.attr, Loading drivers/input/touchscreen/focaltech_touch/focaltech_flash.c +0 −121 Original line number Diff line number Diff line Loading @@ -1023,127 +1023,6 @@ static int fts_flash_read(u32 addr, u8 *buf, u32 len) return ret; } static int fts_read_file(char *file_name, u8 **file_buf) { int ret = 0; char file_path[FILE_NAME_LENGTH] = { 0 }; struct file *filp = NULL; struct inode *inode; mm_segment_t old_fs; loff_t pos; loff_t file_len = 0; if ((NULL == file_name) || (NULL == file_buf)) { FTS_ERROR("filename/filebuf is NULL"); return -EINVAL; } snprintf(file_path, FILE_NAME_LENGTH, "%s%s", FTS_FW_BIN_FILEPATH, file_name); filp = filp_open(file_path, O_RDONLY, 0); if (IS_ERR(filp)) { FTS_ERROR("open %s file fail", file_path); return -ENOENT; } #if 1 inode = filp->f_inode; #else /* reserved for linux earlier verion */ inode = filp->f_dentry->d_inode; #endif file_len = inode->i_size; *file_buf = (u8 *)vmalloc(file_len); if (NULL == *file_buf) { FTS_ERROR("file buf malloc fail"); filp_close(filp, NULL); return -ENOMEM; } old_fs = get_fs(); set_fs(KERNEL_DS); pos = 0; ret = vfs_read(filp, *file_buf, file_len , &pos); if (ret < 0) FTS_ERROR("read file fail"); FTS_INFO("file len:%d read len:%d pos:%d", (u32)file_len, ret, (u32)pos); filp_close(filp, NULL); set_fs(old_fs); return ret; } int fts_upgrade_bin(char *fw_name, bool force) { int ret = 0; u32 fw_file_len = 0; u8 *fw_file_buf = NULL; struct fts_upgrade *upg = fwupgrade; FTS_INFO("start upgrade with fw bin"); if ((!upg) || (!upg->func) || !upg->ts_data) { FTS_ERROR("upgrade/func/ts_data is null"); return -EINVAL; } upg->ts_data->fw_loading = 1; fts_irq_disable(); #if FTS_ESDCHECK_EN fts_esdcheck_switch(DISABLE); #endif ret = fts_read_file(fw_name, &fw_file_buf); if ((ret < 0) || (ret < FTS_MIN_LEN) || (ret > FTS_MAX_LEN_FILE)) { FTS_ERROR("read fw bin file(sdcard) fail, len:%d", fw_file_len); goto err_bin; } fw_file_len = ret; FTS_INFO("fw bin file len:%d", fw_file_len); if (force) { if (upg->func->force_upgrade) { ret = upg->func->force_upgrade(fw_file_buf, fw_file_len); } else { FTS_INFO("force_upgrade function is null, no upgrade"); goto err_bin; } } else { #if FTS_AUTO_LIC_UPGRADE_EN if (upg->func->lic_upgrade) { ret = upg->func->lic_upgrade(fw_file_buf, fw_file_len); } else { FTS_INFO("lic_upgrade function is null, no upgrade"); } #endif if (upg->func->upgrade) { ret = upg->func->upgrade(fw_file_buf, fw_file_len); } else { FTS_INFO("upgrade function is null, no upgrade"); } } if (ret < 0) { FTS_ERROR("upgrade fw bin failed"); fts_fwupg_reset_in_boot(); goto err_bin; } FTS_INFO("upgrade fw bin success"); ret = 0; err_bin: #if FTS_ESDCHECK_EN fts_esdcheck_switch(ENABLE); #endif fts_irq_enable(); upg->ts_data->fw_loading = 0; if (fw_file_buf) { vfree(fw_file_buf); fw_file_buf = NULL; } return ret; } int fts_enter_test_environment(bool test_state) { return 0; Loading Loading
drivers/input/touchscreen/focaltech_touch/focaltech_ex_fun.c +0 −67 Original line number Diff line number Diff line Loading @@ -905,68 +905,6 @@ static ssize_t fts_tprwreg_store( return count; } /* fts_upgrade_bin interface */ static ssize_t fts_fwupgradebin_show( struct device *dev, struct device_attribute *attr, char *buf) { return -EPERM; } static ssize_t fts_fwupgradebin_store( struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { char fwname[FILE_NAME_LENGTH] = { 0 }; struct input_dev *input_dev = fts_data->input_dev; if ((count <= 1) || (count >= FILE_NAME_LENGTH - 32)) { FTS_ERROR("fw bin name's length(%d) fail", (int)count); return -EINVAL; } memset(fwname, 0, sizeof(fwname)); snprintf(fwname, FILE_NAME_LENGTH, "%s", buf); fwname[count - 1] = '\0'; FTS_INFO("upgrade with bin file through sysfs node"); mutex_lock(&input_dev->mutex); fts_upgrade_bin(fwname, 0); mutex_unlock(&input_dev->mutex); return count; } /* fts_force_upgrade interface */ static ssize_t fts_fwforceupg_show( struct device *dev, struct device_attribute *attr, char *buf) { return -EPERM; } static ssize_t fts_fwforceupg_store( struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { char fwname[FILE_NAME_LENGTH]; struct input_dev *input_dev = fts_data->input_dev; if ((count <= 1) || (count >= FILE_NAME_LENGTH - 32)) { FTS_ERROR("fw bin name's length(%d) fail", (int)count); return -EINVAL; } memset(fwname, 0, sizeof(fwname)); snprintf(fwname, FILE_NAME_LENGTH, "%s", buf); fwname[count - 1] = '\0'; FTS_INFO("force upgrade through sysfs node"); mutex_lock(&input_dev->mutex); fts_upgrade_bin(fwname, 1); mutex_unlock(&input_dev->mutex); return count; } /* fts_driver_info interface */ static ssize_t fts_driverinfo_show( struct device *dev, struct device_attribute *attr, char *buf) Loading Loading @@ -1137,9 +1075,6 @@ static DEVICE_ATTR(fts_fw_version, S_IRUGO | S_IWUSR, fts_tpfwver_show, fts_tpfw * cat rw_reg */ static DEVICE_ATTR(fts_rw_reg, S_IRUGO | S_IWUSR, fts_tprwreg_show, fts_tprwreg_store); /* upgrade from fw bin file example:echo "*.bin" > fts_upgrade_bin */ static DEVICE_ATTR(fts_upgrade_bin, S_IRUGO | S_IWUSR, fts_fwupgradebin_show, fts_fwupgradebin_store); static DEVICE_ATTR(fts_force_upgrade, S_IRUGO | S_IWUSR, fts_fwforceupg_show, fts_fwforceupg_store); static DEVICE_ATTR(fts_driver_info, S_IRUGO | S_IWUSR, fts_driverinfo_show, fts_driverinfo_store); static DEVICE_ATTR(fts_dump_reg, S_IRUGO | S_IWUSR, fts_dumpreg_show, fts_dumpreg_store); static DEVICE_ATTR(fts_hw_reset, S_IRUGO | S_IWUSR, fts_hw_reset_show, fts_hw_reset_store); Loading @@ -1153,8 +1088,6 @@ static struct attribute *fts_attributes[] = { &dev_attr_fts_fw_version.attr, &dev_attr_fts_rw_reg.attr, &dev_attr_fts_dump_reg.attr, &dev_attr_fts_upgrade_bin.attr, &dev_attr_fts_force_upgrade.attr, &dev_attr_fts_driver_info.attr, &dev_attr_fts_hw_reset.attr, &dev_attr_fts_irq.attr, Loading
drivers/input/touchscreen/focaltech_touch/focaltech_flash.c +0 −121 Original line number Diff line number Diff line Loading @@ -1023,127 +1023,6 @@ static int fts_flash_read(u32 addr, u8 *buf, u32 len) return ret; } static int fts_read_file(char *file_name, u8 **file_buf) { int ret = 0; char file_path[FILE_NAME_LENGTH] = { 0 }; struct file *filp = NULL; struct inode *inode; mm_segment_t old_fs; loff_t pos; loff_t file_len = 0; if ((NULL == file_name) || (NULL == file_buf)) { FTS_ERROR("filename/filebuf is NULL"); return -EINVAL; } snprintf(file_path, FILE_NAME_LENGTH, "%s%s", FTS_FW_BIN_FILEPATH, file_name); filp = filp_open(file_path, O_RDONLY, 0); if (IS_ERR(filp)) { FTS_ERROR("open %s file fail", file_path); return -ENOENT; } #if 1 inode = filp->f_inode; #else /* reserved for linux earlier verion */ inode = filp->f_dentry->d_inode; #endif file_len = inode->i_size; *file_buf = (u8 *)vmalloc(file_len); if (NULL == *file_buf) { FTS_ERROR("file buf malloc fail"); filp_close(filp, NULL); return -ENOMEM; } old_fs = get_fs(); set_fs(KERNEL_DS); pos = 0; ret = vfs_read(filp, *file_buf, file_len , &pos); if (ret < 0) FTS_ERROR("read file fail"); FTS_INFO("file len:%d read len:%d pos:%d", (u32)file_len, ret, (u32)pos); filp_close(filp, NULL); set_fs(old_fs); return ret; } int fts_upgrade_bin(char *fw_name, bool force) { int ret = 0; u32 fw_file_len = 0; u8 *fw_file_buf = NULL; struct fts_upgrade *upg = fwupgrade; FTS_INFO("start upgrade with fw bin"); if ((!upg) || (!upg->func) || !upg->ts_data) { FTS_ERROR("upgrade/func/ts_data is null"); return -EINVAL; } upg->ts_data->fw_loading = 1; fts_irq_disable(); #if FTS_ESDCHECK_EN fts_esdcheck_switch(DISABLE); #endif ret = fts_read_file(fw_name, &fw_file_buf); if ((ret < 0) || (ret < FTS_MIN_LEN) || (ret > FTS_MAX_LEN_FILE)) { FTS_ERROR("read fw bin file(sdcard) fail, len:%d", fw_file_len); goto err_bin; } fw_file_len = ret; FTS_INFO("fw bin file len:%d", fw_file_len); if (force) { if (upg->func->force_upgrade) { ret = upg->func->force_upgrade(fw_file_buf, fw_file_len); } else { FTS_INFO("force_upgrade function is null, no upgrade"); goto err_bin; } } else { #if FTS_AUTO_LIC_UPGRADE_EN if (upg->func->lic_upgrade) { ret = upg->func->lic_upgrade(fw_file_buf, fw_file_len); } else { FTS_INFO("lic_upgrade function is null, no upgrade"); } #endif if (upg->func->upgrade) { ret = upg->func->upgrade(fw_file_buf, fw_file_len); } else { FTS_INFO("upgrade function is null, no upgrade"); } } if (ret < 0) { FTS_ERROR("upgrade fw bin failed"); fts_fwupg_reset_in_boot(); goto err_bin; } FTS_INFO("upgrade fw bin success"); ret = 0; err_bin: #if FTS_ESDCHECK_EN fts_esdcheck_switch(ENABLE); #endif fts_irq_enable(); upg->ts_data->fw_loading = 0; if (fw_file_buf) { vfree(fw_file_buf); fw_file_buf = NULL; } return ret; } int fts_enter_test_environment(bool test_state) { return 0; Loading