summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWendly Li <wendlyli@google.com>2023-02-23 09:28:15 +0000
committerWendly Li <wendlyli@google.com>2023-03-08 10:15:31 +0000
commita04472525a4aae588e6894246d50304923fbcc76 (patch)
treeea76c63a8f881f3d38754567057074c6bb743650
parente73c21c306f089eedaa4908346836515afb35257 (diff)
downloadcommon-a04472525a4aae588e6894246d50304923fbcc76.tar.gz
input: touch_offload: interface updates
- Added capabilities for coordinate filter Bug: 269560488 Test: check coordinate filter works properly Change-Id: I215541854e0248b72ad9e005a571d3e29df67ffb Signed-off-by: Wendly Li <wendlyli@google.com>
-rw-r--r--include/uapi/input/touch_offload.h8
-rw-r--r--touch_offload.c4
2 files changed, 9 insertions, 3 deletions
diff --git a/include/uapi/input/touch_offload.h b/include/uapi/input/touch_offload.h
index 4a10ba1..eb8af30 100644
--- a/include/uapi/input/touch_offload.h
+++ b/include/uapi/input/touch_offload.h
@@ -61,6 +61,7 @@
* filter_palm - driver supports disabling underlying palm rejection
* num_sensitivity_settings - number of sensitivity options provided
* auto_reporting - report heatmap when screen is not touched
+ * coord_filter - driver supports disabling underlying coordinate filter
*/
struct TouchOffloadCaps {
/* Version info */
@@ -95,7 +96,8 @@ struct TouchOffloadCaps {
__u8 filter_palm;
__u8 num_sensitivity_settings;
__u8 auto_reporting;
- __u8 reserved4[32];
+ __u8 coord_filter;
+ __u8 reserved4[31];
} __attribute__((packed));
/* TouchOffloadConfig
@@ -107,6 +109,7 @@ struct TouchOffloadCaps {
* filter_palm - enable underlying palm rejection
* sensitivity_setting - selected sensitivity
* auto_reporting - enable reporting when screen is not touched
+ * coord_filter - enable underlying coordinate filter
* read_coords - allocate a channel to coordinate data
* mutual_data_types - bitfield of mutual data types to collect
* self_data_types - bitfield of self data types to collect
@@ -122,7 +125,8 @@ struct TouchOffloadConfig {
__u8 filter_palm;
__u8 sensitivity_setting;
__u8 auto_reporting;
- __u8 reserved1[16];
+ __u8 coord_filter;
+ __u8 reserved1[15];
/* Data to read */
__u8 read_coords;
diff --git a/touch_offload.c b/touch_offload.c
index 6f2dab8..7cb2470 100644
--- a/touch_offload.c
+++ b/touch_offload.c
@@ -502,7 +502,9 @@ static long touch_offload_ioctl(struct file *file, unsigned int ioctl_num,
(configure.config.filter_palm &&
!context->caps.filter_palm) ||
(configure.config.auto_reporting &&
- !context->caps.auto_reporting)) {
+ !context->caps.auto_reporting) ||
+ (configure.config.coord_filter &&
+ !context->caps.coord_filter)) {
pr_err("%s: Invalid configuration enables unsupported features!\n",
__func__);
err = -EINVAL;