Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f622bf4 authored by Dmitry Torokhov's avatar Dmitry Torokhov
Browse files

Input: ads7846 - do not allow altering platform data

parent af6e1d99
Loading
Loading
Loading
Loading
+19 −16
Original line number Diff line number Diff line
@@ -881,9 +881,10 @@ static int __devinit ads7846_probe(struct spi_device *spi)
	struct ads7846 *ts;
	struct ads7846_packet *packet;
	struct input_dev *input_dev;
	struct ads7846_platform_data	*pdata = spi->dev.platform_data;
	const struct ads7846_platform_data *pdata = spi->dev.platform_data;
	struct spi_message *m;
	struct spi_transfer *x;
	unsigned long irq_flags;
	int vref;
	int err;

@@ -1174,21 +1175,23 @@ static int __devinit ads7846_probe(struct spi_device *spi)
		goto err_put_regulator;
	}

	if (!pdata->irq_flags)
		pdata->irq_flags = IRQF_TRIGGER_FALLING;
	irq_flags = pdata->irq_flags ? : IRQF_TRIGGER_FALLING;

	err = request_irq(spi->irq, ads7846_irq, irq_flags,
			  spi->dev.driver->name, ts);

	if (request_irq(spi->irq, ads7846_irq, pdata->irq_flags,
			spi->dev.driver->name, ts)) {
	if (err && !pdata->irq_flags) {
		dev_info(&spi->dev,
			"trying pin change workaround on irq %d\n", spi->irq);
		err = request_irq(spi->irq, ads7846_irq,
				  IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
				  spi->dev.driver->name, ts);
	}

	if (err) {
		dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq);
		goto err_disable_regulator;
	}
	}

	err = ads784x_hwmon_register(spi, ts);
	if (err)
+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ struct ads7846_platform_data {
					 * state if get_pendown_state == NULL
					 */
	int	(*get_pendown_state)(void);
	int	(*filter_init)	(struct ads7846_platform_data *pdata,
	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);