summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/input/touchscreen/apalis-tk1-k20_ts.c17
-rw-r--r--drivers/mfd/apalis-tk1-k20.c7
2 files changed, 12 insertions, 12 deletions
diff --git a/drivers/input/touchscreen/apalis-tk1-k20_ts.c b/drivers/input/touchscreen/apalis-tk1-k20_ts.c
index f1fd11e87468..43cb25fa8fc9 100644
--- a/drivers/input/touchscreen/apalis-tk1-k20_ts.c
+++ b/drivers/input/touchscreen/apalis-tk1-k20_ts.c
@@ -48,7 +48,7 @@ static void apalis_tk1_k20_ts_report_sample(struct apalis_tk1_k20_ts *priv)
{
struct input_dev *idev = priv->idev;
int xp, xm, yp, ym;
- int x, y, press;
+ int x, y, press, btn;
xp = priv->sample[1];
xm = priv->sample[0];
@@ -59,18 +59,21 @@ static void apalis_tk1_k20_ts_report_sample(struct apalis_tk1_k20_ts *priv)
y = (yp + ym) / 2;
press = (abs(yp - ym) + abs(xp - xm)) / 2;
- if (press) {
+ if ((yp != 0) && ( xp != 0 )) {
+ btn = 1;
input_report_abs(idev, ABS_X, x);
input_report_abs(idev, ABS_Y, y);
dev_dbg(&idev->dev, "report (%d, %d, %d)\n",
x, y, press);
- queue_delayed_work(priv->workq, &priv->work, HZ / 50);
- } else
+ queue_delayed_work(priv->workq, &priv->work, HZ / 25);
+ } else {
dev_dbg(&idev->dev, "report release\n");
+ btn = 0;
+ }
input_report_abs(idev, ABS_PRESSURE, press);
- input_report_key(idev, BTN_TOUCH, press);
+ input_report_key(idev, BTN_TOUCH, btn);
input_sync(idev);
}
@@ -91,8 +94,8 @@ static void apalis_tk1_k20_ts_work(struct work_struct *work)
apalis_tk1_k20_unlock(priv->apalis_tk1_k20);
- for (i = 0; i < 7; i++)
- priv->sample[(int)i/2] = (buf[i+1] << 8) + buf[i];
+ for (i = 0; i < 4; i++)
+ priv->sample[i] = (buf[(2 * i) + 1] << 8) + buf[2 * i];
apalis_tk1_k20_ts_report_sample(priv);
}
diff --git a/drivers/mfd/apalis-tk1-k20.c b/drivers/mfd/apalis-tk1-k20.c
index cbd1afe5d718..ef8d64a64b71 100644
--- a/drivers/mfd/apalis-tk1-k20.c
+++ b/drivers/mfd/apalis-tk1-k20.c
@@ -81,16 +81,13 @@ static int apalis_tk1_k20_spi_read(void *context, const void *reg,
spi_message_init(&m);
spi_message_add_tail(&t, &m);
ret = spi_sync(spi, &m);
-
- dev_vdbg(dev, "Apalis TK1 K20 MFD SPI send done reg = 0x%X\n",
- *((unsigned char *) reg));
-
spi_message_init(&m);
t.len = 3;
spi_message_add_tail(&t, &m);
ret = spi_sync(spi, &m);
- dev_vdbg(dev, "Apalis TK1 K20 MFD SPI read 0x%X 0x%X\n", r[1], r[2]);
+ dev_vdbg(dev, "Apalis TK1 K20 MFD SPI read reg 0x%X: 0x%X 0x%X\n",
+ *((unsigned char *) reg), r[1], r[2]);
if (r[1] == TK1_K20_SENTINEL)
memcpy(p, &r[2], 1);