Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Aug 2001 01:49:27 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Warner Losh <imp@harmony.village.org>
Cc:        Richard Tobin <richard@cogsci.ed.ac.uk>, Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>, Sean Kelly <smkelly@zombie.org>, current@FreeBSD.ORG
Subject:   Re: FreeBSD's aggressive keyboard probe/attach
Message-ID:  <3B764317.4334A0F6@mindspring.com>
References:  <200108112351.AAA26897@banks.cogsci.ed.ac.uk> <200108120422.f7C4MY150223@harmony.village.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Warner Losh wrote:
> 
> : > In addition, the PS/2 mouse driver is smart enough to bitch
> : > about synchronization, but too stupid to resynchronize (reset)
> : > when it happens.  Duh.
> 
> Ummm, what does adding flags 0x8000 buy you?  I think that fixed it
> for me on the machines that I was seeing it.
> 
> Except for the machines I'd see it after suspend/resume, then flags
> 0x4000 worked.

0x4000 is PSM_CONFIG_INITAFTERSUSPEND

Under what circumstances would you _not_ want to call the
function "reinitialize()" on the unit at resume time, such
that this flag is not default?

Even assuming it causes problems on some hardware (it appears
to be _required_ to handle undocking from a docking station
with an external mouse!), shouldn't this flag be inverted,
instead?  I.e.: on by default, with the ability to force it
off if it caused trouble?

0x8000 is PSM_CONFIG_SYNCHACK

If the mouse it "out of sync", the packet decode in psmintr()
bitches about it -- but does nothing useful.  This flag makes
it bitch about doing a disable_aux_device()/enable_aux_device(),
but actually _does_ something about fixing the problem.  The
only place the syncmask[0] or syncmask[1] appear to be set are
in the psmprobe, psminit, and reinitialize code.  This means
that once it's out of sync, this is the _ONLY_ way it can be
recovered, short of closing and reopening the device ("restart
your X session and your 40 windows in your testbed, please, I
refuse to at least _try_ to reset syncmask[0] and syncmask[1]
for you").

Shouldn't this flag _also_ be enabled by default, with the
ability to override as well?

I think overriding in this case makes no sense: the worst
thing that can happen is that your non-functional mouse
continues to be non-functional following the calls to do the
disable_aux_device()/enable_aux_device().

---

I'm pretty sure this won't fix the keyboard problems, but it
might fix the mouse problems.

I'm pretty sure FreeBSD would have to be a whole lot less
agressive for the very useful "OmniView CAT6 KVM Extender"
to work (luckily, FreeBSD doesn't probe the VGA port, so
at least the monitor works, if not the keyboard/mouse 8-)):

<http://catalog.belkin.com/IWCatProductPage.process?Merchant_Id=&Section_Id=1539&pcount=&Product_Id=87618&Section.Section_Path=%2FRoot%2FPeripheralSharing%2FOmniviewKVMSwitches%2FOmniViewExtenders%2F>;

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B764317.4334A0F6>