Staging: dream: Synaptic: Remove non-standard multi touch support
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / staging / dream / synaptics_i2c_rmi.c
index d2ca116a1c256beafc955db859175d984f62a740..e34d11fac2be00022509a4c13ba06def93a69626 100644 (file)
@@ -109,9 +109,7 @@ static void decode_report(struct synaptics_ts_data *ts, u8 *buf)
        int f, a;
        int base = 2;
        int z = buf[1];
-       int w = buf[0] >> 4;
        int finger = buf[0] & 7;
-       int finger2_pressed;
 
        for (f = 0; f < 2; f++) {
                u32 flip_flag = SYNAPTICS_FLIP_X;
@@ -151,14 +149,7 @@ static void decode_report(struct synaptics_ts_data *ts, u8 *buf)
                input_report_abs(ts->input_dev, ABS_Y, pos[0][1]);
        }
        input_report_abs(ts->input_dev, ABS_PRESSURE, z);
-       input_report_abs(ts->input_dev, ABS_TOOL_WIDTH, w);
        input_report_key(ts->input_dev, BTN_TOUCH, finger);
-       finger2_pressed = finger > 1 && finger != 7;
-       input_report_key(ts->input_dev, BTN_2, finger2_pressed);
-       if (finger2_pressed) {
-               input_report_abs(ts->input_dev, ABS_HAT0X, pos[1][0]);
-               input_report_abs(ts->input_dev, ABS_HAT0Y, pos[1][1]);
-       }
        input_sync(ts->input_dev);
 }
 
@@ -347,11 +338,6 @@ static void compute_areas(struct synaptics_ts_data *ts,
                             -inactive_area_top, max_y + inactive_area_bottom,
                             fuzz_y, 0);
        input_set_abs_params(ts->input_dev, ABS_PRESSURE, 0, 255, fuzz_p, 0);
-       input_set_abs_params(ts->input_dev, ABS_TOOL_WIDTH, 0, 15, fuzz_w, 0);
-       input_set_abs_params(ts->input_dev, ABS_HAT0X, -inactive_area_left,
-                            max_x + inactive_area_right, fuzz_x, 0);
-       input_set_abs_params(ts->input_dev, ABS_HAT0Y, -inactive_area_top,
-                            max_y + inactive_area_bottom, fuzz_y, 0);
 }
 
 static struct synaptics_i2c_rmi_platform_data fake_pdata;
@@ -487,7 +473,6 @@ static int __devinit synaptics_ts_probe(
        __set_bit(EV_SYN, ts->input_dev->evbit);
        __set_bit(EV_KEY, ts->input_dev->evbit);
        __set_bit(BTN_TOUCH, ts->input_dev->keybit);
-       __set_bit(BTN_2, ts->input_dev->keybit);
        __set_bit(EV_ABS, ts->input_dev->evbit);
 
        compute_areas(ts, pdata, max_x, max_y);
@@ -535,6 +520,7 @@ err_input_register_device_failed:
 err_input_dev_alloc_failed:
 err_detect_failed:
 err_power_failed:
+       i2c_set_clientdata(client, NULL);
        kfree(ts);
 err_alloc_data_failed:
 err_check_functionality_failed:
@@ -552,6 +538,7 @@ static int synaptics_ts_remove(struct i2c_client *client)
        else
                hrtimer_cancel(&ts->timer);
        input_unregister_device(ts->input_dev);
+       i2c_set_clientdata(client, NULL);
        kfree(ts);
        return 0;
 }