Commit 937f5d5e authored by Daniel Mack's avatar Daniel Mack Committed by Dmitry Torokhov

Input: ads7846 - remove custom filter handling functions from pdata

The functions in the platform data struct to initialize, cleanup and
apply custom filters are not in use by any mainline board.

Remove support for them to pave the road for more cleanups to come.

The enum was moved as it has no users outside of the driver code
itself.
Signed-off-by: default avatarDaniel Mack <daniel@zonque.org>
Reviewed-by: default avatarMarco Felsch <m.felsch@pengutronix.de>
Link: https://lore.kernel.org/r/20210907200726.2034962-3-daniel@zonque.orgSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent de609b56
...@@ -142,13 +142,18 @@ struct ads7846 { ...@@ -142,13 +142,18 @@ struct ads7846 {
int (*filter)(void *data, int data_idx, int *val); int (*filter)(void *data, int data_idx, int *val);
void *filter_data; void *filter_data;
void (*filter_cleanup)(void *data);
int (*get_pendown_state)(void); int (*get_pendown_state)(void);
int gpio_pendown; int gpio_pendown;
void (*wait_for_sync)(void); void (*wait_for_sync)(void);
}; };
enum ads7846_filter {
ADS7846_FILTER_OK,
ADS7846_FILTER_REPEAT,
ADS7846_FILTER_IGNORE,
};
/* leave chip selected when we're done, for quicker re-select? */ /* leave chip selected when we're done, for quicker re-select? */
#if 0 #if 0
#define CS_CHANGE(xfer) ((xfer).cs_change = 1) #define CS_CHANGE(xfer) ((xfer).cs_change = 1)
...@@ -1277,15 +1282,7 @@ static int ads7846_probe(struct spi_device *spi) ...@@ -1277,15 +1282,7 @@ static int ads7846_probe(struct spi_device *spi)
ts->x_plate_ohms = pdata->x_plate_ohms ? : 400; ts->x_plate_ohms = pdata->x_plate_ohms ? : 400;
ts->vref_mv = pdata->vref_mv; ts->vref_mv = pdata->vref_mv;
if (pdata->filter != NULL) { if (pdata->debounce_max) {
if (pdata->filter_init != NULL) {
err = pdata->filter_init(pdata, &ts->filter_data);
if (err < 0)
goto err_free_mem;
}
ts->filter = pdata->filter;
ts->filter_cleanup = pdata->filter_cleanup;
} else if (pdata->debounce_max) {
ts->debounce_max = pdata->debounce_max; ts->debounce_max = pdata->debounce_max;
if (ts->debounce_max < 2) if (ts->debounce_max < 2)
ts->debounce_max = 2; ts->debounce_max = 2;
...@@ -1299,7 +1296,7 @@ static int ads7846_probe(struct spi_device *spi) ...@@ -1299,7 +1296,7 @@ static int ads7846_probe(struct spi_device *spi)
err = ads7846_setup_pendown(spi, ts, pdata); err = ads7846_setup_pendown(spi, ts, pdata);
if (err) if (err)
goto err_cleanup_filter; goto err_free_mem;
if (pdata->penirq_recheck_delay_usecs) if (pdata->penirq_recheck_delay_usecs)
ts->penirq_recheck_delay_usecs = ts->penirq_recheck_delay_usecs =
...@@ -1425,9 +1422,6 @@ static int ads7846_probe(struct spi_device *spi) ...@@ -1425,9 +1422,6 @@ static int ads7846_probe(struct spi_device *spi)
err_free_gpio: err_free_gpio:
if (!ts->get_pendown_state) if (!ts->get_pendown_state)
gpio_free(ts->gpio_pendown); gpio_free(ts->gpio_pendown);
err_cleanup_filter:
if (ts->filter_cleanup)
ts->filter_cleanup(ts->filter_data);
err_free_mem: err_free_mem:
input_free_device(input_dev); input_free_device(input_dev);
kfree(packet); kfree(packet);
...@@ -1458,9 +1452,6 @@ static int ads7846_remove(struct spi_device *spi) ...@@ -1458,9 +1452,6 @@ static int ads7846_remove(struct spi_device *spi)
gpio_free(ts->gpio_pendown); gpio_free(ts->gpio_pendown);
} }
if (ts->filter_cleanup)
ts->filter_cleanup(ts->filter_data);
kfree(ts->packet); kfree(ts->packet);
kfree(ts); kfree(ts);
......
/* SPDX-License-Identifier: GPL-2.0 */ /* SPDX-License-Identifier: GPL-2.0 */
/* linux/spi/ads7846.h */ /* linux/spi/ads7846.h */
/* Touchscreen characteristics vary between boards and models. The
* platform_data for the device's "struct device" holds this information.
*
* It's OK if the min/max values are zero.
*/
enum ads7846_filter {
ADS7846_FILTER_OK,
ADS7846_FILTER_REPEAT,
ADS7846_FILTER_IGNORE,
};
struct ads7846_platform_data { struct ads7846_platform_data {
u16 model; /* 7843, 7845, 7846, 7873. */ u16 model; /* 7843, 7845, 7846, 7873. */
u16 vref_delay_usecs; /* 0 for external vref; etc */ u16 vref_delay_usecs; /* 0 for external vref; etc */
...@@ -51,10 +40,6 @@ struct ads7846_platform_data { ...@@ -51,10 +40,6 @@ struct ads7846_platform_data {
int gpio_pendown_debounce; /* platform specific debounce time for int gpio_pendown_debounce; /* platform specific debounce time for
* the gpio_pendown */ * the gpio_pendown */
int (*get_pendown_state)(void); int (*get_pendown_state)(void);
int (*filter_init) (const struct ads7846_platform_data *pdata,
void **filter_data);
int (*filter) (void *filter_data, int data_idx, int *val);
void (*filter_cleanup)(void *filter_data);
void (*wait_for_sync)(void); void (*wait_for_sync)(void);
bool wakeup; bool wakeup;
unsigned long irq_flags; unsigned long irq_flags;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment