* Rebase on 4.11.12 kernel upstream I took the relevant patches from https://git.linaro.org/people/john.stultz/flo.git/log/?h=flo-v4.11 and compiled with upstream kernel.org 4.11.12 kernel. 4.12rc1 and later have not fixed yet problems with freedreno gpu hanging. So we now have an upstream source for the kernel and John Stultz patches separately. Set this to y as it does not seem to have problems in Alpine - CONFIG_HW_RANDOM_MSM=y Enable USB OTG in kernel. I still need to find out how to enable it in Alpine. * Use pkgver instead of hash and other changes * Add dependencies for X11 and osk Added pointercal. Added dependencies so Xfce would work out of the box. Made changes in 90-android-touch-dev.rules as they are needed for proper X11 touchscreen calibration.
61 lines
2.5 KiB
Diff
61 lines
2.5 KiB
Diff
author John Stultz <john.stultz@linaro.org> 2016-02-24 23:02:26 -0800
|
|
committer John Stultz <john.stultz@linaro.org> 2017-05-12 14:09:25 -0700
|
|
commit c347b88add07696addaf87d8ab8233331b02a393 (patch)
|
|
tree 91c8279fbc692fb7d4bc9bd651948df47972a111
|
|
parent 18a343b4eb643e0eaf203d812b32b4aff19df17b (diff)
|
|
download flo-c347b88add07696addaf87d8ab8233331b02a393.tar.gz
|
|
HACK: Get touchpanel working on flo
|
|
Hack up the touchpanel to get the x/y coordinates rotated properly.
|
|
Also provide proper x_max and y_max values.
|
|
|
|
Signed-off-by: John Stultz <john.stultz@linaro.org>
|
|
Diffstat
|
|
-rw-r--r-- drivers/input/touchscreen/elants_i2c.c 12
|
|
|
|
1 files changed, 7 insertions, 5 deletions
|
|
diff --git a/drivers/input/touchscreen/elants_i2c.c b/drivers/input/touchscreen/elants_i2c.c
|
|
index 6079857..6983302 100644
|
|
--- a/drivers/input/touchscreen/elants_i2c.c
|
|
+++ b/drivers/input/touchscreen/elants_i2c.c
|
|
@@ -801,8 +801,8 @@ static void elants_i2c_mt_event(struct elants_data *ts, u8 *buf)
|
|
u8 *pos;
|
|
|
|
pos = &buf[FW_POS_XY + i * 3];
|
|
- x = (((u16)pos[0] & 0xf0) << 4) | pos[1];
|
|
- y = (((u16)pos[0] & 0x0f) << 8) | pos[2];
|
|
+ y = 2240-((((u16)pos[0] & 0xf0) << 4) | pos[1]);
|
|
+ x = ((((u16)pos[0] & 0x0f) << 8) | pos[2]);
|
|
p = buf[FW_POS_PRESSURE + i];
|
|
w = buf[FW_POS_WIDTH + i];
|
|
|
|
@@ -1233,8 +1233,9 @@ static int elants_i2c_probe(struct i2c_client *client,
|
|
ts->input->name = "Elan Touchscreen";
|
|
ts->input->id.bustype = BUS_I2C;
|
|
|
|
- __set_bit(BTN_TOUCH, ts->input->keybit);
|
|
__set_bit(EV_ABS, ts->input->evbit);
|
|
+#if 0
|
|
+ __set_bit(BTN_TOUCH, ts->input->keybit);
|
|
__set_bit(EV_KEY, ts->input->evbit);
|
|
|
|
/* Single touch input params setup */
|
|
@@ -1243,6 +1244,7 @@ static int elants_i2c_probe(struct i2c_client *client,
|
|
input_set_abs_params(ts->input, ABS_PRESSURE, 0, 255, 0, 0);
|
|
input_abs_set_res(ts->input, ABS_X, ts->x_res);
|
|
input_abs_set_res(ts->input, ABS_Y, ts->y_res);
|
|
+#endif
|
|
|
|
/* Multitouch input params setup */
|
|
error = input_mt_init_slots(ts->input, MAX_CONTACT_NUM,
|
|
@@ -1253,8 +1255,8 @@ static int elants_i2c_probe(struct i2c_client *client,
|
|
return error;
|
|
}
|
|
|
|
- input_set_abs_params(ts->input, ABS_MT_POSITION_X, 0, ts->x_max, 0, 0);
|
|
- input_set_abs_params(ts->input, ABS_MT_POSITION_Y, 0, ts->y_max, 0, 0);
|
|
+ input_set_abs_params(ts->input, ABS_MT_POSITION_X, 0, 1350, 0, 0);
|
|
+ input_set_abs_params(ts->input, ABS_MT_POSITION_Y, 0, 2240, 0, 0);
|
|
input_set_abs_params(ts->input, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0);
|
|
input_set_abs_params(ts->input, ABS_MT_PRESSURE, 0, 255, 0, 0);
|
|
input_abs_set_res(ts->input, ABS_MT_POSITION_X, ts->x_res);
|