On Tue, 2007-07-17 at 15:03 +0200, Johannes Berg wrote: > Hi, > > Good stuff :) > > > + int idlecount; /* number of empty packets */ > > should probably use tabs here. fixed. > > + size = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), > > + ATP_GEYSER3_MODE_WRITE_REQUEST_ID, > > + USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, > > + ATP_GEYSER3_MODE_REQUEST_VALUE, > > + ATP_GEYSER3_MODE_REQUEST_INDEX, &data, 8, 5000); > > + > > trailing whitespace. fixed > > + input_report_key(dev->input, BTN_LEFT, dev->data[dev->datalen-1] & 1); > > + > > > > @@ -449,10 +511,19 @@ static void atp_complete(struct urb* urb) > > > > /* reset the accumulator on release */ > > memset(dev->xy_acc, 0, sizeof(dev->xy_acc)); > > - } > > > > - input_report_key(dev->input, BTN_LEFT, > > - !!dev->data[dev->datalen - 1]); > > Any hint as to why you move this? The different test, yes, ok, you > explained that, but moving it? OK, Sven Anders also asked why the move... and well the reason was that when I was trying to figure out what goes wrong I memset everything including dev->data to zero which required the move ... Anyway as there is no goto/return inbetween I fail to see that this will make any difference. So I moved the code back down where it was. The new patch containing these cleanups is attached. Best, Soeren -- Sometimes, there's a moment as you're waking, when you become aware of the real world around you, but you're still dreaming.