USB bug fix for DETACH message.

2004-03-18 Thread Matthew Dillon
A DragonFly user noticed that usbd does not seem to get DETACH events
for UMASS devices. 

I tracked this down (in the FreeBSD-5 codebase for your convenience)
to line 1382 of usb_subr.c:

/*usbd_add_dev_event(USB_EVENT_DEVICE_DETACH, dev);*/

This line was apparently commented out by wpaul in rev 1.22, in
January 2000.

NetBSD has this line uncommented... that is, activated, and they
recently committed a bug fix (1.110 I believe in the NetBSD source
tree) that solves the problem I'm sure wpaul encountered that caused
him to comment the line out.  The bug fix is trivial.  Just above this
code, around line 1378, you simply need to NULL out dev-subdevs[i]
after detaching it:

printf( port %d, up-portno);
printf( (addr %d) disconnected\n, dev-address);
config_detach(dev-subdevs[i], DETACH_FORCE);
dev-subdevs[i] = NULL;   ADDME

If you want DETACH events to work, uncomment the add_dev_event and
make the bug fix above and DETACH events will work again.  If you are
going to do this, please do this in both FreeBSD-5.x and FreeBSD-4.x.

You may also wish to commit NetBSD's 1.111 of sub_subr.c, which reorders
an address assignment to work around certain non-compliant USB devices
and allow them to work.  The NetBSD repository can be accessed via 
CVS using the server string ':pserver:[EMAIL PROTECTED]:/cvsroot'
(don't accidently overwrite your FBsd tree, though! :-)).

-Matt

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: USB bug fix for DETACH message.

2004-03-18 Thread Julian Elischer
thanks!


On Thu, 18 Mar 2004, Matthew Dillon wrote:

 A DragonFly user noticed that usbd does not seem to get DETACH events
 for UMASS devices. 
 
 I tracked this down (in the FreeBSD-5 codebase for your convenience)
 to line 1382 of usb_subr.c:
 
   /*usbd_add_dev_event(USB_EVENT_DEVICE_DETACH, dev);*/
 
 This line was apparently commented out by wpaul in rev 1.22, in
 January 2000.
 
 NetBSD has this line uncommented... that is, activated, and they
 recently committed a bug fix (1.110 I believe in the NetBSD source
 tree) that solves the problem I'm sure wpaul encountered that caused
 him to comment the line out.  The bug fix is trivial.  Just above this
 code, around line 1378, you simply need to NULL out dev-subdevs[i]
 after detaching it:
 
 printf( port %d, up-portno);
 printf( (addr %d) disconnected\n, dev-address);
 config_detach(dev-subdevs[i], DETACH_FORCE);
   dev-subdevs[i] = NULL;   ADDME
 
 If you want DETACH events to work, uncomment the add_dev_event and
 make the bug fix above and DETACH events will work again.  If you are
 going to do this, please do this in both FreeBSD-5.x and FreeBSD-4.x.
 
 You may also wish to commit NetBSD's 1.111 of sub_subr.c, which reorders
 an address assignment to work around certain non-compliant USB devices
 and allow them to work.  The NetBSD repository can be accessed via 
 CVS using the server string ':pserver:[EMAIL PROTECTED]:/cvsroot'
 (don't accidently overwrite your FBsd tree, though! :-)).
 
   -Matt
 
 

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]