Hi!
I fear it's not just the mouse that doesn't survive the suspend - it's
the whole USB subsystem that doesn't wake. The next backport will have
correct support for APM.
Vojtech
On Fri, Jun 02, 2000 at 12:57:56PM -0400, Chris Mason wrote:
> 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 ]
--
Vojtech Pavlik
SuSE Labs
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]