From: Nelson Castillo <[email protected]>

This is a cleanup patch fixing simple mistakes and coding conventions.
It also applies feedback we got from upstream.

Signed-off-by: Nelson Castillo <[email protected]>
---

 0 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/drivers/input/touchscreen/Kconfig 
b/drivers/input/touchscreen/Kconfig
index 5db7a67..014a9e7 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -50,7 +50,7 @@ config TOUCHSCREEN_FILTER_LINEAR
        depends on INPUT_TOUCHSCREEN && TOUCHSCREEN_FILTER
        default Y
        help
-         Say Y here if you want to use the Mean touchscreen filter, it
+         Say Y here if you want to use the Linear touchscreen filter, it
          enables the use of calibration data for the touchscreen.
 
 endif
diff --git a/drivers/input/touchscreen/ts_filter.c 
b/drivers/input/touchscreen/ts_filter.c
index 1508388..d936e45 100644
--- a/drivers/input/touchscreen/ts_filter.c
+++ b/drivers/input/touchscreen/ts_filter.c
@@ -20,9 +20,11 @@
 #include <linux/device.h>
 #include <linux/ts_filter.h>
 
+static DEFINE_MUTEX(chain_mutex);
+
 int ts_filter_create_chain(struct platform_device *pdev,
                           struct ts_filter_api **api, void **config,
-                          struct ts_filter **list, int count_coords)
+                          struct ts_filter **arr, int count_coords)
 {
        int count = 0;
        struct ts_filter *last = NULL;
@@ -30,35 +32,42 @@ int ts_filter_create_chain(struct platform_device *pdev,
        if (!api)
                return 0;
 
-       while (*api && count < MAX_TS_FILTER_CHAIN) {
-               *list = ((*api)->create)(pdev, *config++, count_coords);
-               if (!*list) {
+       mutex_lock(&chain_mutex);
+
+       while (*api) {
+               *arr = ((*api)->create)(pdev, *config++, count_coords);
+               if (!*arr) {
                        printk(KERN_ERR "Filter %d failed init\n", count);
                        return count;
                }
-               (*list)->api = *api++;
+               (*arr)->api = *api++;
                if (last)
-                       last->next = *list;
-               last = *list;
-               list++;
+                       last->next = *arr;
+               last = *arr;
+               arr++;
                count++;
        }
 
+       mutex_unlock(&chain_mutex);
+
        return count;
 }
 EXPORT_SYMBOL_GPL(ts_filter_create_chain);
 
 void ts_filter_destroy_chain(struct platform_device *pdev,
-                            struct ts_filter **list)
+                            struct ts_filter **arr)
 {
-       struct ts_filter **first;
-       int count = 0;
+       struct ts_filter **first = arr;
 
-       first = list;
-       while (*list && count++ < MAX_TS_FILTER_CHAIN) {
-               ((*list)->api->destroy)(pdev, *list);
-               list++;
+       mutex_lock(&chain_mutex);
+
+       while (*arr) {
+               ((*arr)->api->destroy)(pdev, *arr);
+               arr++;
        }
        *first = NULL;
+
+       mutex_unlock(&chain_mutex);
 }
 EXPORT_SYMBOL_GPL(ts_filter_destroy_chain);
+
diff --git a/drivers/input/touchscreen/ts_filter_linear.c 
b/drivers/input/touchscreen/ts_filter_linear.c
index 4803e17..3322c69 100644
--- a/drivers/input/touchscreen/ts_filter_linear.c
+++ b/drivers/input/touchscreen/ts_filter_linear.c
@@ -30,9 +30,7 @@
 #include <linux/string.h>
 
 
-/*
- * sysfs functions
- */
+/* sysfs functions */
 
 
 static ssize_t const_attr_show(struct kobject *kobj,
@@ -82,9 +80,7 @@ static ssize_t const_store(struct const_obj *obj, struct 
const_attribute *attr,
        return count;
 }
 
-/*
- * filter functions
- */
+/* filter functions */
 
 static struct ts_filter *ts_filter_linear_create(struct platform_device *pdev,
                                                 void *conf, int count_coords)
@@ -118,7 +114,6 @@ static struct ts_filter *ts_filter_linear_create(struct 
platform_device *pdev,
        tsfl->const_ktype.default_attrs = tsfl->attrs;
        tsfl->c_obj.tsfl = tsfl; /* kernel frees tsfl in const_release */
 
-       /* TODO: /sys/ts-calibration is not OK */
        ret = kobject_init_and_add(&tsfl->c_obj.kobj, &tsfl->const_ktype,
                                   &pdev->dev.kobj, "calibration");
        if (ret) {
diff --git a/drivers/input/touchscreen/ts_filter_mean.c 
b/drivers/input/touchscreen/ts_filter_mean.c
index a7b4a5a..409ccc7 100644
--- a/drivers/input/touchscreen/ts_filter_mean.c
+++ b/drivers/input/touchscreen/ts_filter_mean.c
@@ -63,7 +63,7 @@ static struct ts_filter *ts_filter_mean_create(struct 
platform_device *pdev,
        int n;
        struct ts_filter_mean *tsfs = kzalloc(
                                  sizeof(struct ts_filter_mean), GFP_KERNEL);
-       
+
        if (!tsfs)
                return NULL;
 
@@ -112,8 +112,9 @@ static void ts_filter_mean_scale(struct ts_filter *tsf, int 
*coords)
                (tsf->next->api->scale)(tsf->next, coords);
 }
 
-/* give us the raw sample data in x and y, and if we return 1 then you can
- * get a filtered coordinate from tsm->x and tsm->y: if we return 0 you didn't
+/*
+ * Give us the raw sample data in x and y, and if we return 1 then you can
+ * get a filtered coordinate from tsm->x and tsm->y. If we return 0 you didn't
  * fill the filter with samples yet.
  */
 
@@ -125,7 +126,8 @@ static int ts_filter_mean_process(struct ts_filter *tsf, 
int *coords)
 
        for (n = 0; n < tsf->count_coords; n++) {
 
-               /* has he moved far enough away that we should abandon current
+               /*
+                * Has he moved far enough away that we should abandon current
                 * low pass filtering state?
                 */
                if ((coords[n] < (tsfs->reported[n] -
diff --git a/drivers/input/touchscreen/ts_filter_median.c 
b/drivers/input/touchscreen/ts_filter_median.c
index 883ab06..a033716 100644
--- a/drivers/input/touchscreen/ts_filter_median.c
+++ b/drivers/input/touchscreen/ts_filter_median.c
@@ -141,8 +141,9 @@ static void ts_filter_median_scale(struct ts_filter *tsf, 
int *coords)
                (tsf->next->api->scale)(tsf->next, coords);
 }
 
-/* give us the raw sample data coords, and if we return 1 then you can
- * get a filtered coordinate from coords: if we return 0 you didn't
+/*
+ * Give us the raw sample data coords, and if we return 1 then you can
+ * get a filtered coordinate from coords. If we return 0 you didn't
  * fill all the filters with samples yet.
  */
 
@@ -169,9 +170,10 @@ static int ts_filter_median_process(struct ts_filter *tsf, 
int *coords)
        /* discard the oldest sample in median sorted array */
        tsfm->valid--;
 
-       /* sum the middle 3 in the median sorted arrays.  We don't divide back
+       /*
+        * Sum the middle 3 in the median sorted arrays. We don't divide back
         * down which increases the sum resolution by a factor of 3 until the
-        * scale API is called
+        * scale API is called.
         */
        for (n = 0; n < tsfm->tsf.count_coords; n++)
                /* perform the deletion of the oldest sample */
diff --git a/include/linux/ts_filter.h b/include/linux/ts_filter.h
index 1671044..5578e93 100644
--- a/include/linux/ts_filter.h
+++ b/include/linux/ts_filter.h
@@ -2,20 +2,20 @@
 #define __TS_FILTER_H__
 
 /*
- * touchscreen filter
+ * Touchscreen filter.
  *
  * (c) 2008 Andy Green <[email protected]>
  */
 
 #include <linux/platform_device.h>
 
-#define MAX_TS_FILTER_CHAIN            4  /* max filters you can chain up */
-#define MAX_TS_FILTER_COORDS           3  /* X, Y and Z (pressure) */
+#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
- */
+/* Operations that a filter can perform. */
+
 struct ts_filter_api {
        struct ts_filter * (*create)(struct platform_device *pdev, void *config,
                                     int count_coords);
@@ -25,32 +25,33 @@ struct ts_filter_api {
        void (*scale)(struct ts_filter *filter, int *coords);
 };
 
-/* this is the common part of all filters, the result
- * we use this type as an otherwise opaque handle on to
+/*
+ * 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
+ * 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 */
+       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 array of API pointers and
- * array of config ints... leaves pointers to created filters in list
- * array and fills in ->next pointers to create the chain
+ * 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 **list, int count_coords);
+                                 struct ts_filter **arr, int count_coords);
 
-/* helper to destroy a whole chain from the list of filter pointers */
+/* 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 **list);
+                                   struct ts_filter **arr);
 
 #endif
diff --git a/include/linux/ts_filter_linear.h b/include/linux/ts_filter_linear.h
index dab5390..b4dd8e4 100644
--- a/include/linux/ts_filter_linear.h
+++ b/include/linux/ts_filter_linear.h
@@ -5,7 +5,7 @@
 #include <linux/kobject.h>
 
 /*
- * touchscreen linear filter.
+ * Touchscreen linear filter.
  *
  * Copyright (C) 2008 by Openmoko, Inc.
  * Author: Nelson Castillo <[email protected]>
diff --git a/include/linux/ts_filter_mean.h b/include/linux/ts_filter_mean.h
index 46ff01a..7bf7df6 100644
--- a/include/linux/ts_filter_mean.h
+++ b/include/linux/ts_filter_mean.h
@@ -4,7 +4,7 @@
 #include <linux/ts_filter.h>
 
 /*
- * touchscreen filter
+ * Touchscreen filter.
  *
  * mean
  *
diff --git a/include/linux/ts_filter_median.h b/include/linux/ts_filter_median.h
index d816428..eb56eaa 100644
--- a/include/linux/ts_filter_median.h
+++ b/include/linux/ts_filter_median.h
@@ -4,7 +4,7 @@
 #include <linux/ts_filter.h>
 
 /*
- * touchscreen filter
+ * Touchscreen filter.
  *
  * median
  *


Reply via email to