On Sat, Nov 01, 2014 at 08:40:19AM +0100, Hans Petter Selasky wrote: > On 11/01/14 00:27, Ping Cheng wrote: > >If touch_input is NULL on FreeBSD, you need to figure out the root > >cause. Checking on touch_input itself would not fix the root cause... > > Right. > > The root cause is that FreeBSD launches two instances of the driver, > running in two different userland processes, for the two different > Wacom interfaces on a common USB device. In Linux the wacom > interface drivers are running from the same kernel, and can share > the data in question, but in FreeBSD's webcamd emulation, this > doesn't work. Then the first wacom probe call would have to grab the > second interface. > > Technically speaking this is a FreeBSD only problem and I plan to > deliver a patch with the webcamd software to fix this, like already > suggested to you guys. This situation can also happen on Linux in > case of a "BadUSB" device. That's why I think that the NULL check > should be upstreamed. Hmm, looking at this again it seems that we just cross our fingers and hope that both interfaces are enumerated by the time we get event data from the device. I do not think this is quite safe. We probably should be checking the overall state of probing (i.e. whether we are done probing both interfaces) before processing data for the device. Or maybe we should just forcibly try claiming secondary interface while probing primary instead of messing with shared data item. That won't help Hans though: the devices do use 2 interfaces in tandem, treating them separately will result in incorrect behavior. Thanks. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html