On 10/04/2010 07:15 AM, Naveen Kumar GADDIPATI wrote: [...] >>> + has_x_sensors = hweight32(buf[0] & BU21013_SENSORS_EN_0_7); >>> + has_y_sensors = hweight32(((buf[1] & BU21013_SENSORS_EN_8_15) | >>> + ((buf[2] & BU21013_SENSORS_EN_16_23) << SHIFT_8)) >> >> SHIFT_2); >> >> >> The bitcounting hweight32 can actually be removed here. >> > This register values of touch controller used to know the valid touch. > Otherwise we need do the calculate the co-ordinates and then decide to ignore. > >>> + if (!has_x_sensors || !has_y_sensors) >>> + return 0; Testing whether x == 0 or number_of_set_bits(x) == 0 seems pretty equivalent to me. > >>> + >>> + input_set_abs_params(in_dev, ABS_MT_POSITION_X, 0, >>> + pdata->x_max_res, 0, 0); >>> + input_set_abs_params(in_dev, ABS_MT_POSITION_Y, 0, >>> + pdata->y_max_res, 0, 0); >>> + input_set_abs_params(in_dev, ABS_MT_TOUCH_MAJOR, 0, >>> + max(pdata->x_max_res , pdata->y_max_res), 0, 0); >> >> >> Same here - no ABS_MT_TOUCH_MAJOR, please. >> > According to MT documentation, we need to report this value. > We observe without this value reporting in Pen down case, Android framework is not recognizing the touch. The touch_major requirement was relaxed during 2009, after discussions. This makes me wonder if the driver has been tested against 2.6.36. What is the base version of that Android kernel, 2.6.29? Henrik -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html