On Sat, Aug 25, 2012 at 12:26:25AM +0100, Sean Young wrote: >On Sat, Aug 25, 2012 at 12:05:18AM +0200, David Härdeman wrote: >> On Thu, Aug 23, 2012 at 10:18:35PM +0100, Sean Young wrote: >> >Some drivers wait for the IR device to complete sending before >> >returning, so sleeping should not be done. >> >> I'm not quite sure what the purpose is. Even if a driver waits for TX to >> finish, the lirc imposed sleep isn't harmful in any way. > >Due to rounding errors, clock skew and different start times, the sleep >might be waiting for a different amount of time than the hardware took >to send it. The sleep is a bit of a kludge, let alone if the driver >can wait for the hardware to tell you when it's done. I don't see the sleep as much of a problem right now. Whether the hardware says its done or if we simulate the same thing in the lirc layer, the entire concept is a bit of a kludge :) >Also, your change calculates the amount of us to sleep after transmission, >so if the transmission buffer was modified by the driver, the calculated >sleep might not make sense. Both winbond-cir and iguanair do this. Oh, right, I'd overlooked this. I have written patches for winbond-cir (which makes it asynchronous and leaves the txbuffer alone) and iguanair (to leave the txbuffer alone). I'll post them sometime today when I've done some more tests. >> As far as I can tell, the iguanair driver waits for the usb packet to be >> submitted, not for IR TX to finish. > >The iguanair driver waits for the ack from the device (which is an urb >you receive from the device), which is sent once the IR has been >transmitted. The firmware source code is available. Ah, I see. -- David Härdeman -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html