Have usb voip phone - Skypemate W1DL, that discovers by yealink module and works very well(keys and voice over system and skype). Only annoying thing that while it remain connected to usb to I have unstoppable system messages: yealink: unexpected response fd tens(may be hundreds) times a second. In source /usr/src/linux/drivers/input/misc/yealink.c line 434 found: switch (yld->irq_data->cmd) { case CMD_KEYPRESS: yld->master.s.keynum = yld->irq_data->data[0]; break; case CMD_SCANCODE: dbg("get scancode %x", yld->irq_data->data[0]); report_key(yld, map_p1k_to_key(yld->irq_data->data[0])); break; default: err("unexpected response %x", yld->irq_data->cmd); } and replaced this by: switch (yld->irq_data->cmd) { case CMD_KEYPRESS: yld->master.s.keynum = yld->irq_data->data[0]; break; case CMD_SCANCODE: dbg("get scancode %x", yld->irq_data->data[0]); report_key(yld, map_p1k_to_key(yld->irq_data->data[0])); break; default: break;//err("unexpected response %x", yld->irq_data->cmd); } And all now works fine. May be patch mainline like this?
On Sun, Dec 13, 2009 at 12:25:02PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote: > In source /usr/src/linux/drivers/input/misc/yealink.c line 434 found: Care to send a patch to the input subsystem maintainer for this?
> Care to send a patch to the input subsystem maintainer for this? I'd with pleasure, but to who exactly? * drivers/usb/input/yealink.c * * Copyright (c) 2005 Henk Vergonet <Henk.Vergonet(c)gmail.com> To that man? Googled that people tried send him mail and received no answer from him (maybe that e-mail has changed). Driver hasn't changed since 2005 year..
I'll just change in from err to dbg.
(In reply to comment #3) > I'll just change in from err to dbg. Apparently not done yet?
No, not done. I looked more into the issue and realized that simply changing from err() to dbg() is wrong. The device apparently requires that we throttle sending URB requests at 10ms intervals.
I have similar problem with this driver - https://bugzilla.redhat.com/show_bug.cgi?id=625751 but phone also does not work at all.
@Dmitry Torokhov / @Serg Krasnikov My extended version of the driver performs scan requests at 100 ms intervals, which is perfectly sufficient for properly detecting key presses. This avoids the observed response 0xfd and significantly reduces the IRQ load from USB traffic. You could try it, however the W1DL might report a model number which is not known to the driver, as it does not blindly assume that any connected Yealink handset talks the P1K's protocol. So you might have to adjust the macro YLD_IS_P1K(v) in yealink.h Link: http://devbase.homelinux.org:5071/viewvc/voip/yealink-module (sorry for the slow server...) Still you will miss support for the dot matrix display. The protocol might be the same as implemented here: http://lekernel.net/blog/?p=91