From 3779b1cf0be55e0affcff56379cdfb8a07fdd840 Mon Sep 17 00:00:00 2001 From: merge Date: Mon, 19 Jan 2009 00:47:51 +0000 Subject: MERGE-via-pending-tracking-hist-MERGE-via-stable-tracking-fix-touchscreen-filter-include-1232325217 pending-tracking-hist top was MERGE-via-stable-tracking-fix-touchscreen-filter-include-1232325217 / d063e8c6d85c48de80b3d158bfa98d5a97149711 ... parent commitmessage: From: merge MERGE-via-stable-tracking-hist-fix-touchscreen-filter-include stable-tracking-hist top was fix-touchscreen-filter-include / bb151f28fc8e8923baad96e0f3e8f0ae57af95f5 ... parent commitmessage: From: Nelson Castillo Fix touchscreen filter includes Fix #includes to make the kernel compile again. Signed-off-by: Nelson Castillo --- drivers/input/touchscreen/ts_filter.h | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 drivers/input/touchscreen/ts_filter.h (limited to 'drivers/input/touchscreen/ts_filter.h') diff --git a/drivers/input/touchscreen/ts_filter.h b/drivers/input/touchscreen/ts_filter.h new file mode 100644 index 00000000000..5578e936b91 --- /dev/null +++ b/drivers/input/touchscreen/ts_filter.h @@ -0,0 +1,57 @@ +#ifndef __TS_FILTER_H__ +#define __TS_FILTER_H__ + +/* + * Touchscreen filter. + * + * (c) 2008 Andy Green + */ + +#include + +#define MAX_TS_FILTER_CHAIN 8 /* Max. filters we can chain up. */ +#define MAX_TS_FILTER_COORDS 3 /* X, Y and Z (pressure). */ + +struct ts_filter; + +/* Operations that a filter can perform. */ + +struct ts_filter_api { + struct ts_filter * (*create)(struct platform_device *pdev, void *config, + int count_coords); + void (*destroy)(struct platform_device *pdev, struct ts_filter *filter); + void (*clear)(struct ts_filter *filter); + int (*process)(struct ts_filter *filter, int *coords); + void (*scale)(struct ts_filter *filter, int *coords); +}; + +/* + * This is the common part of all filters. + * We use this type as an otherwise opaque handle on to + * the actual filter. Therefore you need one of these + * at the start of your actual filter struct. + */ + +struct ts_filter { + struct ts_filter *next; /* Next in chain. */ + struct ts_filter_api *api; /* Operations to use for this object. */ + int count_coords; + int coords[MAX_TS_FILTER_COORDS]; +}; + +/* + * Helper to create a filter chain from an array of API pointers and + * array of config ints. Leaves pointers to created filters in arr + * array and fills in ->next pointers to create the chain. + */ + +extern int ts_filter_create_chain(struct platform_device *pdev, + struct ts_filter_api **api, void **config, + struct ts_filter **arr, int count_coords); + +/* Helper to destroy a whole chain from the list of filter pointers. */ + +extern void ts_filter_destroy_chain(struct platform_device *pdev, + struct ts_filter **arr); + +#endif -- cgit v1.2.3