Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jan 2010 09:08:49 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-arch@freebsd.org
Cc:        Michael Grant <Michael.Grant@students.wits.ac.za>, freebsd-bugs@freebsd.org
Subject:   Re: New USB ums driver returns incorrect value on probe
Message-ID:  <201001110908.49441.hselasky@c2i.net>
In-Reply-To: <fc32e93d160b5.4b4ae3fa@students.wits.ac.za>
References:  <fc32e93d160b5.4b4ae3fa@students.wits.ac.za>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 11 January 2010 07:40:26 Michael Grant wrote:
> Good day,
> 
> I am trying to port an excellent driver for a HID peripheral to the new USB
>  stack on 8.0 and noticed some strange behaviour: The device, by default,
>  operates as a mouse and only once a sensible driver communicates to it
>  will the device enter an extended mode.  The interesting thing is that
>  this device is never given to the driver to be probed.
> 
> I notice in the DEVICE_PROBE(9) man page: "If a success code of zero is
>  returned, the driver can assume that it will be the one attached".
> 
> Now looking in /usr/src/sys/dev/usb/input/ums.c
> 
> if ((uaa->info.bInterfaceSubClass == UISUBCLASS_BOOT) &&
>   (uaa->info.bInterfaceProtocol == UIPROTO_MOUSE))
>     return (0);
> 
> I think the return value should be BUS_PROBE_DEFAULT and not 0, after all
>  the ums driver is generic.
> 
> I have not submitted a PR, should I do that as well or is a post to this
>  list sufficient?
> 

        if ((uaa->info.bInterfaceSubClass == UISUBCLASS_BOOT) &&
            (uaa->info.bInterfaceProtocol == UIPROTO_MOUSE))
                return (BUS_PROBE_GENERIC);

This has been fixed in newer source code, 8+9 I believe.

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001110908.49441.hselasky>