aboutsummaryrefslogtreecommitdiff
path: root/drivers/input/touchscreen/ts_filter.c
diff options
context:
space:
mode:
authormerge <null@invalid>2008-12-29 12:11:49 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-12-29 12:11:49 +0000
commit4f0d7f43b8a9d35be25f520834bbb13f2dae10f3 (patch)
treec75c07e7c55a1004996754651484514e7530d38e /drivers/input/touchscreen/ts_filter.c
parent39a497b0421174c3f23ef3dffb0675a4db3aa3a0 (diff)
MERGE-via-pending-tracking-hist-this-patch-gets-the-linux-mci-
pending-tracking-hist top was this-patch-gets-the-linux-mci- / f45f6d893a0dc65a6041a2c0127e9970427a85da ... parent commitmessage: From: Balaji Rao <balajirrao@openmoko.org> This patch gets the Linux mci stack to use the voltage it negotiated before with the uSD card on resume. Without this, it always reverts to and stays at 3.3V. Signed-off-by: Balaji Rao <balajirrao@openmoko.org>
Diffstat (limited to 'drivers/input/touchscreen/ts_filter.c')
-rw-r--r--drivers/input/touchscreen/ts_filter.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/drivers/input/touchscreen/ts_filter.c b/drivers/input/touchscreen/ts_filter.c
index 4c650a5c66f..15083882e1c 100644
--- a/drivers/input/touchscreen/ts_filter.c
+++ b/drivers/input/touchscreen/ts_filter.c
@@ -20,8 +20,9 @@
#include <linux/device.h>
#include <linux/ts_filter.h>
-int ts_filter_create_chain(struct ts_filter_api **api, void **config,
- struct ts_filter **list, int count_coords)
+int ts_filter_create_chain(struct platform_device *pdev,
+ struct ts_filter_api **api, void **config,
+ struct ts_filter **list, int count_coords)
{
int count = 0;
struct ts_filter *last = NULL;
@@ -29,13 +30,13 @@ int ts_filter_create_chain(struct ts_filter_api **api, void **config,
if (!api)
return 0;
- while (*api && (count < MAX_TS_FILTER_CHAIN)) {
- *list = ((*api)->create)(*config++, count_coords);
+ while (*api && count < MAX_TS_FILTER_CHAIN) {
+ *list = ((*api)->create)(pdev, *config++, count_coords);
if (!*list) {
printk(KERN_ERR "Filter %d failed init\n", count);
return count;
}
- (*list)->api = (struct ts_filter_api *)*api++;
+ (*list)->api = *api++;
if (last)
last->next = *list;
last = *list;
@@ -47,12 +48,15 @@ int ts_filter_create_chain(struct ts_filter_api **api, void **config,
}
EXPORT_SYMBOL_GPL(ts_filter_create_chain);
-void ts_filter_destroy_chain(struct ts_filter **list)
+void ts_filter_destroy_chain(struct platform_device *pdev,
+ struct ts_filter **list)
{
struct ts_filter **first;
+ int count = 0;
+
first = list;
- while (*list) {
- ((*list)->api->destroy)(*list);
+ while (*list && count++ < MAX_TS_FILTER_CHAIN) {
+ ((*list)->api->destroy)(pdev, *list);
list++;
}
*first = NULL;