Hi Pavel, On Wed, Jul 15, 2009 at 7:06 PM, 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? > > >> > + int pos[2][2]; >> > + 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; >> > + for (a = 0; a < 2; a++) { >> > + int p = buf[base + 1]; >> > + p |= (u16)(buf[base] & 0x1f) << 8; >> > + if (ts->flags & flip_flag) >> > + p = ts->max[a] - p; >> > + if (ts->flags & SYNAPTICS_SNAP_TO_INACTIVE_EDGE) { > > >> > +static irqreturn_t synaptics_ts_irq_handler(int irq, void *dev_id) >> > +{ >> > + struct synaptics_ts_data *ts = dev_id; >> > + >> > + disable_irq(ts->client->irq); >> >> disable_irq_nosync or convert this to request_threaded_irq(...). >> Please see recent discussion on linux-input for MAX key switch >> controller. > > Do you have a link? (I replaced it with disable_irq_nosync, if that is > enough...) > link: http://patchwork.kernel.org/patch/35515/ >> > +static int synaptics_ts_probe( >> > + struct i2c_client *client, const struct i2c_device_id *id) >> > +{ >> >> __devinit ? > > Ok. > >> > + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { >> >> check for SMBUS? I have added linux-i2c as this driver has i2c bits, >> so not removing any code. > > I guess this driver is only probed on mach-pxa... on machines that > have the neccessary hardware. Because this driver is using smbus i2c apis, it will be good to add that check too. > >> > + printk(KERN_ERR "synaptics_ts_probe: need I2C_FUNC_I2C\n"); >> >> dev_xxx/pr_xxx friends? > > Fixed all occurences. > > >> > + ts->input_dev = input_allocate_device(); >> > + if (ts->input_dev == NULL) { >> > + ret = -ENOMEM; >> > + pr_err("synaptics: Failed to allocate input device\n"); >> > + goto err_input_dev_alloc_failed; >> > + } >> > + ts->input_dev->name = "synaptics-rmi-touchscreen"; >> >> other parameters of input_dev, like vendor, bus etc., > > Ok, what are those for? I can probably invent some dummy values, but... May be vendor, product, version would be good to add. -- ---Trilok Soni http://triloksoni.wordpress.com http://www.linkedin.com/in/triloksoni -- 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