| From 760dbe1dcb6d3dd3ead73dc69b23f206b52273bb Mon Sep 17 00:00:00 2001 |
| From: Juergen Beisert <jbe@pengutronix.de> |
| Date: Mon, 24 Feb 2014 14:39:00 +0000 |
| Subject: staging:iio:adc:MXS:LRADC: fix touchscreen statemachine |
| |
| From: Juergen Beisert <jbe@pengutronix.de> |
| |
| commit 760dbe1dcb6d3dd3ead73dc69b23f206b52273bb upstream. |
| |
| Releasing the touchscreen lets the internal statemachine left in a wrong state. |
| Due to this the release coordinate will be reported again by accident when the next |
| touchscreen event happens. This change sets up the correct state when waiting |
| for the next touchscreen event. |
| |
| This has led to reported issues with calibrating the touchscreen. |
| Bug was introduced somewhere in the series that began with |
| 18da755de59b406ce2371a55fb15ed676eb08ed2 |
| Staging/iio/adc/touchscreen/MXS: add proper clock handling |
| in which the way this driver worked was substantially changed |
| to be interrupt driven rather than relying on a busy loop. |
| This was a regression in the 3.13 kernel. |
| |
| Signed-off-by: Juergen Beisert <jbe@pengutronix.de> |
| Tested-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> |
| Signed-off-by: Jonathan Cameron <jic23@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/staging/iio/adc/mxs-lradc.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/staging/iio/adc/mxs-lradc.c |
| +++ b/drivers/staging/iio/adc/mxs-lradc.c |
| @@ -698,6 +698,7 @@ static void mxs_lradc_finish_touch_event |
| } |
| |
| /* if it is released, wait for the next touch via IRQ */ |
| + lradc->cur_plate = LRADC_TOUCH; |
| mxs_lradc_reg_clear(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ, LRADC_CTRL1); |
| mxs_lradc_reg_set(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, LRADC_CTRL1); |
| } |