On 10/01/2010 12:59 PM, Naveen Kumar G wrote: [...] > +static int bu21013_do_touch_report(struct bu21013_ts_data *data) > +{ > + u8 buf[LENGTH_OF_BUFFER]; > + unsigned int pos_x[2], pos_y[2]; > + bool has_x_sensors, has_y_sensors; > + int finger_down_count = 0; > + int i; > + > + if (data == NULL) > + return -EINVAL; > + > + if (bu21013_read_block_data(data, buf) < 0) > + return -EINVAL; > + > + 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); > + if (!has_x_sensors || !has_y_sensors) > + return 0; I believe this line will lead to fingers stuck in the down position. 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