Vojtech, linux-usb folks-
It appears that you may be responsible for maintaining various USB human
interface device drivers. If this is not the case, please disregard
this message.
I'm having a problem with a Sony Vaio laptop (UHCI) and a Microsoft
Intellimouse. The mouse works great from first insertion to a suspend
or disconnect and then fails to work.
This happens with kernel 2.2.15 and usb-2.3.99-pre7-1-for-2.2.14.diff
There are others who have this problem (and have posted to the
[EMAIL PROTECTED] mailing list). Paul Ashton <[EMAIL PROTECTED]>
posted a patch to that list but I can't get it to install on this
kernel/usb stack combination. I've attached the patch below.
Is this a known issue? Has it been resolved? The mouse works great up
until a suspend, and its a shame to have to reboot to get it to work
again.
Thanks for your time and your software,
-c
(I don't subscribe to linux-usb; I would appreciate any replies to copy
my address above.)
--- /tmp/mouse.c Sun Aug 15 22:28:00 1999
+++ linux/drivers/usb/mouse.c Mon Aug 16 00:51:14 1999
@@ -49,6 +49,7 @@
int present; /* this mouse is plugged in */
int active; /* someone is has this mouse's device open */
int ready; /* the mouse has changed state since the last read */
+ int suspended; /* mouse disconnected */
wait_queue_head_t wait; /* for polling */
struct fasync_struct *fasync;
/* later, add a list here to support multiple mice */
@@ -71,6 +72,17 @@
/* finding the mouse is easy when there's only one */
struct mouse_state *mouse = &static_mouse_state;
+ if (state)
+ printk(KERN_DEBUG "%s(%d):state %d, bp %p, len %d, dp
%p\n",
+ __FILE__, __LINE__, state, __buffer, len,
dev_id);
+
+ if (state == USB_ST_REMOVED)
+ {
+ printk(KERN_DEBUG "%s(%d): USB_ST_REMOVED\n",
+ __FILE__, __LINE__);
+ mouse->suspended = 1;
+ return 0;
+ }
/* if a mouse moves with no one listening, do we care? no */
if(!mouse->active)
return 1;
@@ -110,9 +122,11 @@
fasync_mouse(-1, file, 0);
+ printk(KERN_DEBUG "%s(%d): MOD_DEC\n", __FILE__, __LINE__);
MOD_DEC_USE_COUNT;
if (--mouse->active == 0) {
+ mouse->suspended = 0;
/* stop polling the mouse while its not in use */
usb_release_irq
--
[ Christopher Mason <[EMAIL PROTECTED]>
http://ash.rem.cmu.edu/ ]
[ "Don't you see?! We're actors--we're the opposite of people!"
-Stoppard ]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]