76 lines
2.2 KiB
Diff
76 lines
2.2 KiB
Diff
|
From cb6b34feed739fa494d7c9c7fc026895e6ba23e8 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= <megi@xff.cz>
|
||
|
Date: Mon, 22 Jun 2020 17:17:09 +0200
|
||
|
Subject: [PATCH 084/469] input: touchscreen: goodix: Add config debugfs file
|
||
|
|
||
|
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||
|
---
|
||
|
drivers/input/touchscreen/goodix.c | 17 +++++++++++++++++
|
||
|
drivers/input/touchscreen/goodix.h | 1 +
|
||
|
2 files changed, 18 insertions(+)
|
||
|
|
||
|
diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
|
||
|
index d77f116680a0..680934c3e4f5 100644
|
||
|
--- a/drivers/input/touchscreen/goodix.c
|
||
|
+++ b/drivers/input/touchscreen/goodix.c
|
||
|
@@ -22,6 +22,7 @@
|
||
|
#include <linux/slab.h>
|
||
|
#include <linux/acpi.h>
|
||
|
#include <linux/of.h>
|
||
|
+#include <linux/debugfs.h>
|
||
|
#include <asm/unaligned.h>
|
||
|
#include "goodix.h"
|
||
|
|
||
|
@@ -1026,6 +1027,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
|
||
|
*
|
||
|
@@ -1064,6 +1075,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);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
@@ -1407,6 +1422,8 @@ static void 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);
|
||
|
}
|
||
|
|
||
|
static int goodix_suspend(struct device *dev)
|
||
|
diff --git a/drivers/input/touchscreen/goodix.h b/drivers/input/touchscreen/goodix.h
|
||
|
index 87797cc88b32..7c44aa110ee6 100644
|
||
|
--- a/drivers/input/touchscreen/goodix.h
|
||
|
+++ b/drivers/input/touchscreen/goodix.h
|
||
|
@@ -104,6 +104,7 @@ struct goodix_ts_data {
|
||
|
u8 main_clk[GOODIX_MAIN_CLK_LEN];
|
||
|
int bak_ref_len;
|
||
|
u8 *bak_ref;
|
||
|
+ struct dentry *debug_root;
|
||
|
};
|
||
|
|
||
|
int goodix_i2c_read(struct i2c_client *client, u16 reg, u8 *buf, int len);
|
||
|
--
|
||
|
2.34.1
|
||
|
|