---
ChangeLog since Belgin's v1:
- Fixed CMD_FW_CMD ENUM
- Added back commands loading the firmwares
but instead of letting them load the firmwares
they would only print that they were called.
- I modified the commit message to add some
informations about that.
---
belgin (1):
smdk4412: remove embedded synaptics touchscreen firmware
drivers/input/touchscreen/Makefile | 2 +-
drivers/input/touchscreen/synaptics_fw.h | 11769 ----------------
.../input/touchscreen/synaptics_fw_updater.c | 515 -
drivers/input/touchscreen/synaptics_reg.h | 2 -
drivers/input/touchscreen/synaptics_s7301.c | 4 +-
drivers/input/touchscreen/synaptics_sysfs.c | 141 +-
drivers/input/touchscreen/synaptics_sysfs.h | 2 -
7 files changed, 35 insertions(+), 12400 deletions(-)
delete mode 100644 drivers/input/touchscreen/synaptics_fw.h
delete mode 100644 drivers/input/touchscreen/synaptics_fw_updater.c
Range-diff against v1:
1: 9abd34765977 ! 1: 43720e41c7f3 smdk4412: remove embedded synaptics
touchscreen firmware
@@ Metadata
## Commit message ##
smdk4412: remove embedded synaptics touchscreen firmware
+ The CMD_LIST commands implementations that enabled
+ userspace to load firmwares were replaced by prints
+ in order to be able to detect if userspace is using
+ them or not. If they are used, then nonfree firmwares
+ might also be shipped in userspace code.
+
Signed-off-by: belgin <[email protected]>
+ GNUtoo: re-added CMD_LIST commands and added related explanation.
+ Signed-off-by: Denis 'GNUtoo' Carikli <[email protected]>
## drivers/input/touchscreen/Makefile ##
@@ drivers/input/touchscreen/Makefile: obj-$(CONFIG_TOUCHSCREEN_ZINITIX)
+= zinitix_touch.o
@@ drivers/input/touchscreen/synaptics_s7301.c: static int
synaptics_ts_set_func(st
data->firm_version);
## drivers/input/touchscreen/synaptics_sysfs.c ##
-@@ drivers/input/touchscreen/synaptics_sysfs.c: struct device
*synaptics_with_gpio_led_device;
- #endif
+@@
+ #include <linux/synaptics_s7301.h>
+ #include "synaptics_sysfs.h"
- const char *sec_sysfs_cmd_list[] = {
-- "fw_update",
-- "get_fw_ver_bin",
-- "get_fw_ver_ic",
- "get_config_ver",
- "get_threshold",
- "module_off_master",
++#define PR_FW_LOADING_ATTEMPT_WARNING(cmd_str, cmd_val) \
++ printk(KERN_WARNING \
++ "[TSP] Warning: %s (%d) called, skipping.\n" \
++ "[TSP] A program might be trying to load a firmware\n" \
++ "[TSP] In doubt, report it on the Replicant mailing list\n", \
++ cmd_str, cmd_val); \
++ while(0)
++
+ #if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_S7301_KEYLED)
+ struct device *synaptics_with_gpio_led_device;
+ #endif
@@ drivers/input/touchscreen/synaptics_sysfs.c: const char
*sec_sysfs_cmd_list[] = {
"get_tx_to_gnd"
};
@@ drivers/input/touchscreen/synaptics_sysfs.c: static u16
synaptics_get_threshold(
-
-static void synaptics_fw_panel(struct synaptics_drv_data *data,
- u8 *buf)
--{
++static const char *sec_fw_cmd_get_name(u32 type)
+ {
-
- synaptics_ts_read_block(data,
- data->f34.control_base_addr,
@@ drivers/input/touchscreen/synaptics_sysfs.c: static u16
synaptics_get_threshold(
- u32 type)
-{
- int ret = 0;
-- switch (type) {
-- case CMD_FW_CMD_BUILT_IN:
+ switch (type) {
+ case CMD_FW_CMD_BUILT_IN:
- ret = synaptics_fw_updater(data, NULL);
- break;
-
-- case CMD_FW_CMD_UMS:
++ return "CMD_FW_CMD_BUILT_IN";
+ case CMD_FW_CMD_UMS:
- ret = synaptics_ts_load_fw(data);
- break;
-
- default:
- break;
-- }
--
++ return "CMD_FW_CMD_UMS";
+ }
+
- return ret;
--}
--
++ return "CMD_FW_UNKNOWN";
++}
++
++static int sec_fw_cmd(struct synaptics_drv_data *data, u32 type)
++{
++ PR_FW_LOADING_ATTEMPT_WARNING(sec_fw_cmd_get_name(type), type);
++
++ return 0;
+ }
+
static u16 get_value(struct synaptics_drv_data *data,
- u32 pos_x, u32 pos_y)
+@@ drivers/input/touchscreen/synaptics_sysfs.c: static void
sec_sysfs_numstr(s16 data, u8 *str)
+ sprintf(str, "%d", data);
+ }
+
++static const char *sec_cmd_list_get_name(u32 cmd)
++{
++ switch (cmd) {
++ case CMD_LIST_FW_UPDATE:
++ return "CMD_LIST_FW_UPDATE";
++ case CMD_LIST_FW_VER_BIN:
++ return "CMD_LIST_FW_VER_BIN";
++ }
++ return "CMD_LIST_UNKNOWN";
++}
++
+ static void sec_sysfs_cmd(struct synaptics_drv_data *data,
+ const char *str)
{
@@ drivers/input/touchscreen/synaptics_sysfs.c: static void
sec_sysfs_cmd(struct synaptics_drv_data *data,
- disable_irq(irq);
switch (cmd) {
-- case CMD_LIST_FW_UPDATE:
-- ret = sec_fw_cmd(data, param[0]);
+ case CMD_LIST_FW_UPDATE:
++ PR_FW_LOADING_ATTEMPT_WARNING(sec_cmd_list_get_name(cmd), cmd);
+ ret = sec_fw_cmd(data, param[0]);
- if (ret)
- tmp_str[cnt++] = "FAIL";
- else
- tmp_str[cnt++] = "PASS";
-- break;
--
-- case CMD_LIST_FW_VER_BIN:
++ tmp_str[cnt++] = "SKIP";
+ break;
+
+ case CMD_LIST_FW_VER_BIN:
- synaptics_fw_phone(data, buf2);
- tmp_str[cnt++] = buf2;
- break;
-
-- case CMD_LIST_FW_VER_IC:
+ case CMD_LIST_FW_VER_IC:
- synaptics_fw_panel(data, buf2);
- tmp_str[cnt++] = buf2;
- break;
-
-- case CMD_LIST_CONFIG_VER:
+ case CMD_LIST_CONFIG_VER:
- synaptics_fw_config(data, buf2);
- tmp_str[cnt++] = buf2;
-- break;
--
++ PR_FW_LOADING_ATTEMPT_WARNING(sec_cmd_list_get_name(cmd), cmd);
+ break;
+
case CMD_LIST_GET_THRESHOLD:
- temp = synaptics_get_threshold(data);
- sec_sysfs_numstr(temp, buf2);
## drivers/input/touchscreen/synaptics_sysfs.h ##
@@
@@ drivers/input/touchscreen/synaptics_sysfs.h
#define FULL_RAW_CAP_LOWER_LIMIT 1000
#define FULL_RAW_CAP_UPPER_LIMIT 3000
#define MAX_RX_SIZE 45
-@@ drivers/input/touchscreen/synaptics_sysfs.h: enum CMD_STATUS {
- CMD_STATUS_FAIL, /* 5 */
- };
-
--enum CMD_FW_CMD {
-- CMD_FW_CMD_BUILT_IN = 0,
-- CMD_FW_CMD_UMS,
--};
--
- enum CMD_LIST {
-- CMD_LIST_FW_UPDATE = 0,
-- CMD_LIST_FW_VER_BIN,
-- CMD_LIST_FW_VER_IC,
- CMD_LIST_CONFIG_VER,
- CMD_LIST_GET_THRESHOLD,
- CMD_LIST_POWER_OFF,
--
2.29.2
_______________________________________________
Replicant mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/replicant