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]

Reply via email to