Lux Vampere
2009-01-07 16:48:19 UTC
Hi,
I have a problem with a driver that I am porting from Mac OS X to Linux. The idea of the driver is that it should be able to send some reports to a device, and then let the device answer by broadcasting its (key) events to the system.
On Mac OS X, a force open is done, then a set report. The device receives the data and then answers by broadcasting its key events, which is what is wanted. The device is not opened exclusively.
On Linux, the same code does not work: the device receives the data but it does not answer (I have sniffed and the communication is correct). It only answers if an interrupt read is done, and in this case the data is not broadcasted, it is only available in the driver and not outside. It is as if the device was opened exclusively (seized).
Is there a way to tell the library not to seize a device? Or is there a way to solve my problem?
Many thanks,
Kind regards
Lux
I have a problem with a driver that I am porting from Mac OS X to Linux. The idea of the driver is that it should be able to send some reports to a device, and then let the device answer by broadcasting its (key) events to the system.
On Mac OS X, a force open is done, then a set report. The device receives the data and then answers by broadcasting its key events, which is what is wanted. The device is not opened exclusively.
On Linux, the same code does not work: the device receives the data but it does not answer (I have sniffed and the communication is correct). It only answers if an interrupt read is done, and in this case the data is not broadcasted, it is only available in the driver and not outside. It is as if the device was opened exclusively (seized).
Is there a way to tell the library not to seize a device? Or is there a way to solve my problem?
Many thanks,
Kind regards
Lux