You can update this text in your control panel, under Theme Options. Nam massa. Ut tempor augue non sapien lobortis aliquam. Maecenas.

Confirmed: No multitouch support in the driver for Samsung Galaxy

August 17th, 2009

Samsung has the source code of the linux kernel from the GT-I7500 Galaxy released. This make it possible to searching the sources about multitouch support.

After reading the function static void melfas_ts_work_func(struct work_struct *work) and comparing with the synaptics driver, it can be confirmed, that the Melfas driver used in the Galaxy has no multitouch support.

[see melfas_i2c_tsi.c: line 97-177]

if ( x < 320 && x > 0 && y < 480 && y > 0 ) {
input_report_abs(ts->input_dev, ABS_X, x);
input_report_abs(ts->input_dev, ABS_Y, y);
input_report_abs(ts->input_dev, ABS_PRESSURE, z);
input_report_abs(ts->input_dev, ABS_TOOL_WIDTH, width);
input_report_key(ts->input_dev, BTN_TOUCH, finger);

This code tells the first finger is pressed. But for the next finger we need  input_report_key(ts->input_dev, BTN_2, finger2) and this can’t be found. Some lines before, the reading from the i2c-device results a buffer with only one collection of x,y,z,w,finger data. The synaptics driver read at this point another collection with data from finger 2.

If you an linux kernel expert, please show me how i can read more data from i2c device safely.

Tags: , , , ,

6 Responses to Confirmed: No multitouch support in the driver for Samsung Galaxy

  1. [...] Sammelthread: Updates / News / Infos Confirmed: No multitouch support in the driver for Samsung Galaxy | receptorBlog Kein Multitouch… [...]

  2. Pieter says:

    I’m definately not a linux kernel expert, but i have found the code for another Melfas touch-device. This thing can detect multiple touches at once and it seems that the data from the device (sent using i2c) follows roughly the same format as this Melfas device. This means that the first byte of the data you receive indicates how many fingers are touched. In this driver, this is:
    0: no touch
    1: single touch
    2: dual touch
    3: palm touch
    7: proximity

    This correponds with the comments in the code in the Samsung Galaxy – the comment about not wanting to react on a Palm touch, but wanting to react on touch or no touch. If you want to see if multitouch is possible, the first step is to print the value of buf1[0]. So uncomment the line:

    // printk(“x%4d, y%4d, z%4d, finger%4d, width%4d\n”,x, y, z, buf1[0],width);

    and check what is printed after “finger”. If that is anything else than 0 or 1 – it might be possible to make this work.

    Of course to do this you first have to compile this module and install it on a samsung galaxy. I’m assuming you – or someone else – managed that. I cannot be of help there, i’m afraid :)

  3. Steffen Lindner says:

    Thx for your infos. I test this soon.

  4. Tomislav says:

    Steffen, did you have any luck with this?

  5. [...] derzeitigen Display Treiber erkennt das Galaxy keine 2 Finger! Hier kann man alles nachlesen: Confirmed: No multitouch support in the driver for Samsung Galaxy | receptorBlog Jedoch mit eine

  6. maximillian says:

    its been half a year. have you tested it? and if yes did it work? what was the output?

Leave a Reply

Name and Email Address are required fields. Your email will not be published or shared with third parties.