armbian_build/patch/kernel/archive/sunxi-5.15/megous/input-touchscreen-goodix-Add-config-debugfs-file.patch
The-going 33c413c679
Patches megous 5.15.5 (#3295)
* Rework patches for sunxi 5.15.4

* Rework patches sunxi for 5.15.5

* Kernel switch tag=v5.15.5 for sunxi EDGE

* Temporarily disabled, requires rework.

drivers/clk/sunxi-ng/sun8i-de33.c: In function ‘sunxi_de33_clk_probe’:
drivers/clk/sunxi-ng/sun8i-de33.c:155:8:
 error: implicit declaration of function ‘sunxi_ccu_probe’;
 did you mean ‘of_sunxi_ccu_probe’? [-Werror=implicit-function-declarati>
  ret = sunxi_ccu_probe(pdev->dev.of_node, reg, ccu_desc);
        ^~~~~~~~~~~~~~~
        of_sunxi_ccu_probe
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:277:
         drivers/clk/sunxi-ng/sun8i-de33.o] Error 1
make[2]: *** [scripts/Makefile.build:540: drivers/clk/sunxi-ng] Error 2

* Correct the comment.
2021-11-28 16:48:47 +01:00

71 lines
1.9 KiB
Diff

From e93a599e0db0d9a05ef586567869a0473ab73069 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Mon, 22 Jun 2020 17:17:09 +0200
Subject: [PATCH 183/467] input: touchscreen: goodix: Add config debugfs file
Signed-off-by: Ondrej Jirman <megous@megous.com>
---
drivers/input/touchscreen/goodix.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
index 4f53d3c57..05fe5d340 100644
--- a/drivers/input/touchscreen/goodix.c
+++ b/drivers/input/touchscreen/goodix.c
@@ -27,6 +27,7 @@
#include <linux/slab.h>
#include <linux/acpi.h>
#include <linux/of.h>
+#include <linux/debugfs.h>
#include <asm/unaligned.h>
#define GOODIX_GPIO_INT_NAME "irq"
@@ -115,6 +116,7 @@ struct goodix_ts_data {
unsigned int contact_size;
u8 config[GOODIX_CONFIG_MAX_LENGTH];
unsigned short keymap[GOODIX_MAX_KEYS];
+ struct dentry *debug_root;
};
static int goodix_check_cfg_8(struct goodix_ts_data *ts,
@@ -919,6 +921,16 @@ static int goodix_get_gpio_config(struct goodix_ts_data *ts)
return 0;
}
+static int ts_config_bin_show(struct seq_file *s, void *data)
+{
+ struct goodix_ts_data *ts = s->private;
+
+ seq_write(s, ts->config, ts->chip->config_len);
+
+ return 0;
+}
+DEFINE_SHOW_ATTRIBUTE(ts_config_bin);
+
/**
* goodix_read_config - Read the embedded configuration of the panel
*
@@ -952,6 +964,10 @@ static void goodix_read_config(struct goodix_ts_data *ts)
}
ts->chip->calc_config_checksum(ts);
+
+ ts->debug_root = debugfs_create_dir("goodix", NULL);
+ debugfs_create_file("config.bin", 0444, ts->debug_root, ts,
+ &ts_config_bin_fops);
}
/**
@@ -1265,6 +1281,8 @@ static int goodix_ts_remove(struct i2c_client *client)
if (ts->load_cfg_from_disk)
wait_for_completion(&ts->firmware_loading_complete);
+ debugfs_remove(ts->debug_root);
+
return 0;
}
--
2.34.0