Re: [PATCH v3 2/3] Input: ads7846: remove custom filter handling functions from pdata

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/7/20 8:20 AM, Daniel Mack wrote:
> 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: Daniel Mack <daniel@xxxxxxxxxx>

Ah damn, a stray file in the folder. Ignore this one please and use the
other one. Sorry.


Daniel

> ---
>  drivers/input/touchscreen/ads7846.c | 25 ++++++++-----------------
>  include/linux/spi/ads7846.h         | 15 ---------------
>  2 files changed, 8 insertions(+), 32 deletions(-)
> 
> diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
> index 0fd0037ef226..4635e8867d10 100644
> --- a/drivers/input/touchscreen/ads7846.c
> +++ b/drivers/input/touchscreen/ads7846.c
> @@ -139,13 +139,18 @@ struct ads7846 {
>  
>  	int			(*filter)(void *data, int data_idx, int *val);
>  	void			*filter_data;
> -	void			(*filter_cleanup)(void *data);
>  	int			(*get_pendown_state)(void);
>  	int			gpio_pendown;
>  
>  	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? */
>  #if	0
>  #define	CS_CHANGE(xfer)	((xfer).cs_change = 1)
> @@ -1325,15 +1330,7 @@ static int ads7846_probe(struct spi_device *spi)
>  	ts->x_plate_ohms = pdata->x_plate_ohms ? : 400;
>  	ts->vref_mv = pdata->vref_mv;
>  
> -	if (pdata->filter != NULL) {
> -		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) {
> +	if (pdata->debounce_max) {
>  		ts->debounce_max = pdata->debounce_max;
>  		if (ts->debounce_max < 2)
>  			ts->debounce_max = 2;
> @@ -1347,7 +1344,7 @@ static int ads7846_probe(struct spi_device *spi)
>  
>  	err = ads7846_setup_pendown(spi, ts, pdata);
>  	if (err)
> -		goto err_cleanup_filter;
> +		goto err_free_mem;
>  
>  	if (pdata->penirq_recheck_delay_usecs)
>  		ts->penirq_recheck_delay_usecs =
> @@ -1473,9 +1470,6 @@ static int ads7846_probe(struct spi_device *spi)
>   err_free_gpio:
>  	if (!ts->get_pendown_state)
>  		gpio_free(ts->gpio_pendown);
> - err_cleanup_filter:
> -	if (ts->filter_cleanup)
> -		ts->filter_cleanup(ts->filter_data);
>   err_free_mem:
>  	input_free_device(input_dev);
>  	kfree(packet);
> @@ -1506,9 +1500,6 @@ static int ads7846_remove(struct spi_device *spi)
>  		gpio_free(ts->gpio_pendown);
>  	}
>  
> -	if (ts->filter_cleanup)
> -		ts->filter_cleanup(ts->filter_data);
> -
>  	kfree(ts->packet);
>  	kfree(ts);
>  
> diff --git a/include/linux/spi/ads7846.h b/include/linux/spi/ads7846.h
> index 1a5eaef3b7f2..d424c1aadf38 100644
> --- a/include/linux/spi/ads7846.h
> +++ b/include/linux/spi/ads7846.h
> @@ -1,17 +1,6 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
>  /* 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 {
>  	u16	model;			/* 7843, 7845, 7846, 7873. */
>  	u16	vref_delay_usecs;	/* 0 for external vref; etc */
> @@ -51,10 +40,6 @@ struct ads7846_platform_data {
>  	int	gpio_pendown_debounce;	/* platform specific debounce time for
>  					 * the gpio_pendown */
>  	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);
>  	bool	wakeup;
>  	unsigned long irq_flags;
> 




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux