Input: tsc200x - add axis inversion and swapping support
[sfrench/cifs-2.6.git] / drivers / input / touchscreen / tsc200x-core.c
index 27810f6c69f67900d7419083e6f2e30cca716c67..72c7258b93a54612b5dbc94ca4d4fcd200fae571 100644 (file)
@@ -88,6 +88,8 @@ struct tsc200x {
        int                     in_z1;
        int                     in_z2;
 
+       struct touchscreen_properties prop;
+
        spinlock_t              lock;
        struct timer_list       penup_timer;
 
@@ -113,8 +115,7 @@ static void tsc200x_update_pen_state(struct tsc200x *ts,
                                     int x, int y, int pressure)
 {
        if (pressure) {
-               input_report_abs(ts->idev, ABS_X, x);
-               input_report_abs(ts->idev, ABS_Y, y);
+               touchscreen_report_pos(ts->idev, &ts->prop, x, y, false);
                input_report_abs(ts->idev, ABS_PRESSURE, pressure);
                if (!ts->pen_down) {
                        input_report_key(ts->idev, BTN_TOUCH, !!pressure);
@@ -533,7 +534,7 @@ int tsc200x_probe(struct device *dev, int irq, const struct input_id *tsc_id,
        input_set_abs_params(input_dev, ABS_PRESSURE,
                             0, MAX_12BIT, TSC200X_DEF_P_FUZZ, 0);
 
-       touchscreen_parse_properties(input_dev, false, NULL);
+       touchscreen_parse_properties(input_dev, false, &ts->prop);
 
        /* Ensure the touchscreen is off */
        tsc200x_stop_scan(ts);