Re: udev keymaps: support for force_release quirk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Dec 01, 2009 at 03:21:20AM +0100, Johannes Stezenbach wrote:
> On Tue, Dec 01, 2009 at 02:55:27AM +0100, Kay Sievers wrote:
> > On Tue, Dec 1, 2009 at 02:52, Johannes Stezenbach <js@xxxxxxxxx> wrote:
> > > On Mon, Nov 30, 2009 at 05:37:04PM -0800, Dmitry Torokhov wrote:
> > >> On Tue, Dec 01, 2009 at 02:28:06AM +0100, Kay Sievers wrote:
> > >> > On Tue, Dec 1, 2009 at 00:27, Johannes Stezenbach <js@xxxxxxxxx> wrote:
> > >> > > +       strncat(fn, "/device/device/force_release", sizeof(fn));
> > >> >
> > >> > You can only select a parent device by it's subsystem/devtype. Any
> > >> > hardcoded assumption about the order of parents is wrong, and the
> > >> > "device" link is deprecated, it must not appear anywhere in udev code.
> > >
> > > I have to admit I have no clue how else to do it.  I'd be glad
> > > to hear your advice.
> > 
> > For udev it would be something like:
> >   udev_device_get_parent_with_subsystem_devtype(..., "serio", NULL);
> > 
> > To find the first parent device which is a device on the "serio" bus.
> 
> I saw your other mail the moment after I sent mine...
> 
> I'll wait for Martin's comments but at the moment I'm thinking
> it might be easier and cleaner with the seperate utility
> and a rule for SUBSYSTEM=="serio".  Because, on second thought,
> in theory there could be keys which need the force_release quirk
> but no keycode remapping?  No idea if that's the case in practice,
> and it could be handled with a dummy keycode assignment, but
> that's unclean. Maybe
> 
>   ./force_release /sys/devices/platform/i8042/serio0 samsung-other-force-release
> 
> with samsung-other-force-release looking like
> 
>   0x82 # Fn+F4 CRT/LCD (high keycode: "displaytoggle")
>   0x83 # Fn+F2
>   0x84 # Fn+F5 backlight on/off
>   ...
> 
> and rules like
> 
>   ACTION!="add", GOTO="force_release_end"
>   SUBSYSTEM!="serio", GOTO="force_release_end"
>   KERNEL!="serio*", GOTO="force_release_end"
>   DRIVERS!="atkbd", GOTO="force_release_end"
> 
>   ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*N130*", RUN+"force_release $sys$devname samsung-other-force-release"
> 
>   LABEL="force_release_end"
> 
> Would that work?
>

Yes, I would go with separate utilities and separate maps. They are
conceptually different, work on different devices and map is not
necessarily the same. It will be much cleaner this way.

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux