linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Neil Brown <neilb@suse.de>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH/RFC]  Resolve 2 year old issue with different demands on EVIOCGRAB
Date: Mon, 18 Aug 2008 11:42:24 -0400	[thread overview]
Message-ID: <20080818112609.ZZRA012@mailhub.coreip.homeip.net> (raw)
In-Reply-To: <18600.51093.613662.435395@notabene.brown>

On Mon, Aug 18, 2008 at 10:51:33AM +1000, Neil Brown wrote:
> On Thursday August 14, dmitry.torokhov@gmail.com wrote:
> > Hi Neil,
> > 
> > On Fri, Aug 15, 2008 at 12:02:09PM +1000, Neil Brown wrote:
> > > 
> > > I'll let the comments in the patch below to most of the talking.
> > > This came up because I wanted to use EVIOCGRAB in some code on an
> > > Openmoko Freerunner, and found that EVIOCGRAG does different things on
> > > that kernel to elsewhere.  I looked into why, and found that there was
> > > a good reason but that the issues hadn't been completely resolved.  I
> > > hope to help resolve the issues so that EVIOCGRAB can behave the same
> > > everywhere, and still meet everybody's needs.
> > > 
> > > I would have Cc:ed to Magnus Vigerlof who wrote the original patch on
> > > which this is based, but his Email address doesn't appear in lkml.org.
> > > 
> > 
> > I don't think this is a viable solution - there are other "good"
> > handlers beisdes evdev, such as rfkill-input, which will still get
> > disabled by the "lightweight" grabs.
> > 
> > Overall I think it is application's responsibility to not use
> > multiplexing devices if they use evdev, bit I can consider adding a new
> > interface (maybe another ioctl) that would disable event delivery though
> > certain interfaces for a device.
> 
> Hi,
> 
>  I think you are saying that if the X server (for example) uses evdev
>  at all, it should use evdev exclusively for getting events, and not
>  use /dev/mice or whatever the equivalent is for keyboard (/dev/tty??).

Not quite, but generally yes - using multiplexing devices makes the
task of filtering out duplicate events much harder so it is better not
to use them. You can use /dev/input/eventX and /dev/input/mouseX
pretty easily but /dev/input/eventX and /dev/input/mice is hard to use
together.

>  But the X server still needs to know a little bit about /dev/tty to
>  make sure that control-C doesn't get delivered the wrong way.  That's
>  awkward.

Does it need to do anything besides switching VC into the raw mode?

>  It also negates much of the power of the input layer (easy hot-plug).
>  I don't much like that approach.
> 

I think this is the only sensible approach though. X needs to have
native hotplug capabilities anyway because of all these new mice that
have bazillion of buttons on them that PS/2 emulation simply can not
support. And once you have hotplug support in X and don't rely on
myultiplexors anymore you can remove bunch of things, like grabbing
devices in one fashion or another and you can even keep the devices
open while switching to the text mode - no need to close and reopen
them all the time.

>  I think your 'can consider' option involves the application (X
>  server) saying  "I want to use both /dev/input/eventX and
>  /dev/input/mice, so I'll break the connection between those so as not
>  to cause problems".
> 

Are there other applications besides X that have this kind of issue?
Hmm, GPM - hotplug scripts can probably just restart it any time they
see a mouse-like device appearing or going away.. DirectFB?

I think that the best solution is to fix applications, rather than
special case multiplexing devices like you suggested below.

Thanks.

-- 
Dmitry

  reply	other threads:[~2008-08-18 15:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-15  2:02 [PATCH/RFC] Resolve 2 year old issue with different demands on EVIOCGRAB Neil Brown
2008-08-15  2:24 ` Dmitry Torokhov
2008-08-18  0:51   ` Neil Brown
2008-08-18 15:42     ` Dmitry Torokhov [this message]
2008-08-21  0:10       ` Neil Brown
2008-08-22 20:15         ` Dmitry Torokhov
2008-08-24 23:48           ` Neil Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080818112609.ZZRA012@mailhub.coreip.homeip.net \
    --to=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=neilb@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).