On Thu, Jul 25, 2002 at 06:34:09PM +0900, MOKUNO Masakazu wrote:
> Hi all,
> 
> Does anyone know the reason why the following lines  were removed from 2.5
> kernel?
> 
> --- 
> usb_kbd_probe() usbkbc.c:192
> 
>     usb_set_protocol(dev, interface->bInterfaceNumber, 0);
>     usb_set_idle(dev, interface->bInterfaceNumber, 0, 0);
> ---
> 
> These ones exist in 2.4 kernel. I think they are still needed in 2.5
> kernel.
> 
> Section 7.2.6 of USB HID specification 1.11 states that
> 
>    "When initialized, all devices default to report protocol. However
>    the host should not make any assumptions about the device's state and
>    should set the desired protocol whenever initializing a device."
> 
> So usb_set_protocol() is needed especially for boot protocol kbd/mouse drivers.

Yes, and no. Actually it doesn't do anything on every keyboard/mouse
I've seen. They have Boot Protocol compatible layout even in their
'native' mode and just ignore the command.

> And it is better to use usb_set_idle(dev, ... , 0, 0) so that bus usage
> can be more efficient.  Without this initialization, the keyboard
> transfers scancodes(usage id) on every interrupt period.  If use
> usb_set_idle(,,0,0), it reports just NAKs until actual key presses are
> occurred.
> 
> Same issues exist in usbmouse.c and hid-core.c.

Yes, but a large amount of keyboards just crashes after receiving the
set_idle command.

-- 
Vojtech Pavlik
SuSE Labs


-------------------------------------------------------
This sf.net email is sponsored by: Jabber - The world's fastest growing 
real-time communications platform! Don't just IM. Build it in! 
http://www.jabber.com/osdn/xim
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to