input: touchscreen: synaptics_s3908p: Load the correct fw file

* A merge of synaptics_l9, synaptics_s3908p and synaptics_touch drivers

Change-Id: I91c19ddcecd84106e27818637eb676200807871b
This commit is contained in:
Giovanni Ricca 2023-01-29 19:51:20 +05:30
parent 92c660cb72
commit 12b8d82c48
No known key found for this signature in database
3 changed files with 48 additions and 8 deletions

View File

@ -36,6 +36,7 @@
#include <linux/crc32.h>
#include <linux/firmware.h>
#include <linux/hwid.h>
#include "synaptics_tcm_core.h"
#define STARTUP_REFLASH
@ -43,8 +44,12 @@
#define ENABLE_SYS_REFLASH true
#define SYSFS_DIR_NAME "reflash"
#define CUSTOM_DIR_NAME "custom"
#define FW_IMAGE_NAME "s3908p_xiaomi_l9_spi.img"
#define FW_IMAGE_NAME_MANUAL "s3908p_xiaomi_l9_spi.img"
#define FW_IMAGE_NAME_L9 "s3908p_xiaomi_l9_spi.img"
#define FW_IMAGE_NAME_MANUAL_L9 "s3908p_xiaomi_l9_spi.img"
#define FW_IMAGE_NAME_K9B "s3908p_xiaomi_k9b_spi.img"
#define FW_IMAGE_NAME_MANUAL_K9B "s3908p_xiaomi_k9b_spi.img"
#define FW_IMAGE_NAME_K9E "s3908p_xiaomi_k9e_spi.img"
#define FW_IMAGE_NAME_MANUAL_K9E "s3908p_xiaomi_k9e_spi.img"
#define BOOT_CONFIG_ID "BOOT_CONFIG"
#define APP_CODE_ID "APP_CODE"
#define PROD_TEST_ID "APP_PROD_TEST"
@ -931,30 +936,51 @@ static int reflash_get_fw_image(void)
{
int retval;
struct syna_tcm_hcd *tcm_hcd = reflash_hcd->tcm_hcd;
const char *fw_image_name = NULL;
const char *fw_image_name_manual= NULL;
LOGE(tcm_hcd->pdev->dev.parent, "-----enter-----%s\n", __func__);
/* reflash_hcd->reflash_by_manual=false; */
switch (get_hw_version_platform()) {
case HARDWARE_PROJECT_L9:
fw_image_name = FW_IMAGE_NAME_L9;
fw_image_name_manual = FW_IMAGE_NAME_MANUAL_L9;
break;
case HARDWARE_PROJECT_K9B:
fw_image_name = FW_IMAGE_NAME_K9B;
fw_image_name_manual = FW_IMAGE_NAME_MANUAL_K9B;
break;
case HARDWARE_PROJECT_K9E:
fw_image_name = FW_IMAGE_NAME_K9E;
fw_image_name_manual = FW_IMAGE_NAME_MANUAL_K9E;
break;
default:
// Nothing
break;
}
if (reflash_hcd->image == NULL) {
if (reflash_hcd->reflash_by_manual == false) {
retval = request_firmware(&reflash_hcd->fw_entry,
FW_IMAGE_NAME, tcm_hcd->pdev->dev.parent);
fw_image_name, tcm_hcd->pdev->dev.parent);
if (retval < 0) {
LOGE(tcm_hcd->pdev->dev.parent,
"Failed to request %s\n",
FW_IMAGE_NAME);
fw_image_name);
return retval;
}
} else {
retval = request_firmware(&reflash_hcd->fw_entry,
FW_IMAGE_NAME_MANUAL,
fw_image_name_manual,
tcm_hcd->pdev->dev.parent);
if (retval < 0) {
LOGE(tcm_hcd->pdev->dev.parent,
"Failed to request %s\n",
FW_IMAGE_NAME_MANUAL);
fw_image_name_manual);
return retval;
}
}

View File

@ -38,6 +38,7 @@
#include <linux/fs.h>
#include <asm/uaccess.h>
#include <linux/firmware.h>
#include <linux/hwid.h>
#include "synaptics_tcm_core.h"
#include "synaptics_tcm_testing.h"
@ -567,6 +568,7 @@ static int testing_load_testlimits(enum test_code testcode, unsigned int gapdiff
unsigned int cols;
unsigned int buf_size_bytes = 0;
const struct firmware *firmware = NULL;
const char *syna_tcm_test_file = NULL;
struct syna_tcm_buffer *dest_buffer0 = NULL;
struct syna_tcm_buffer *dest_buffer1 = NULL;
struct syna_tcm_hcd *tcm_hcd = testing_hcd->tcm_hcd;
@ -634,7 +636,18 @@ static int testing_load_testlimits(enum test_code testcode, unsigned int gapdiff
}
/* read limit csv file */
sprintf(limit_file_name, "%s", SYNA_TCM_TESTING_LIMITS_FILE_NAME);
switch (get_hw_version_platform()) {
case HARDWARE_PROJECT_K9B:
syna_tcm_test_file = SYNA_TCM_TESTING_LIMITS_FILE_NAME_K9B;
break;
case HARDWARE_PROJECT_K9E:
syna_tcm_test_file = SYNA_TCM_TESTING_LIMITS_FILE_NAME_K9E;
break;
default:
// Nothing
break;
}
sprintf(limit_file_name, "%s", syna_tcm_test_file);
LOGN(tcm_hcd->pdev->dev.parent,
"limit_file_name:%s.\n", limit_file_name);

View File

@ -44,7 +44,8 @@
#define PT1_PT3_LIMITS_BYTES_SIZE (8)
#define PT10_LIMITS_BYTES_SIZE (1)
#define SYNA_TCM_TESTING_LIMITS_FILE_NAME "k9b_test_limits_S3908P.csv"
#define SYNA_TCM_TESTING_LIMITS_FILE_NAME_K9B "k9b_test_limits_S3908P.csv"
#define SYNA_TCM_TESTING_LIMITS_FILE_NAME_K9E "k9e_test_limits_S3908P.csv"
#define CSV_PT1_TESTING_LIMITS "PT1_TRx_TRx_short_test"
#define CSV_PT3_TESTING_LIMITS "PT3_TRX_GND_short_test"
#define CSV_PT5_TESTING_LIMITS_MIN "PT5_Full_raw_cap_test_min"