On Wed, Jul 15, 2009 at 6:36 AM, Pavel Machek<pavel@xxxxxx> wrote: > Hi! > >> > +static void decode_report(struct synaptics_ts_data *ts, u8 *buf) >> > +{ >> >> some documentation about this logic would be great. > > Arve, can you help here? This sensor sends two 6-byte absolute finger reports, an optional 2-byte relative report followed by a status byte (http://www.synaptics.com/sites/default/files/511_000099_01F.pdf). This function reads the two finger reports and transforms the coordinates according the platform data so they can be aligned with the lcd behind the touchscreen. typically we flip the y-axis since the sensor uses the bottom left corner as the origin, but if the sensor is mounted upside down the platform data will request that the x-axis should be flipped instead. The snap to inactive edge border are used to allow tapping the edges of the screen on the G1. The active area of the touchscreen is smaller than the lcd. When the finger gets close the edge of the screen we snap it to the edge. This allows ui elements at the edge of the screen to be hit, and it prevents hitting ui elements that are not at the edge of the screen when the finger is touching the edge. -- Arve Hjønnevåg -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html