[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180119172902.wgmvlehbsrjesabd@dtor-ws>
Date: Fri, 19 Jan 2018 09:29:02 -0800
From: Dmitry Torokhov <dmitry.torokhov@...il.com>
To: Mario.Limonciello@...l.com
Cc: pali.rohar@...il.com, linux-kernel@...r.kernel.org,
mjg59@...f.ucam.org, dvhart@...radead.org, andy@...radead.org,
bhush94@...il.com, platform-driver-x86@...r.kernel.org,
notmart@...il.com
Subject: Re: [PATCH] Support tablet mode switch for Dell laptops
On Fri, Jan 19, 2018 at 04:09:09PM +0000, Mario.Limonciello@...l.com wrote:
> > -----Original Message-----
> > From: platform-driver-x86-owner@...r.kernel.org [mailto:platform-driver-x86-
> > owner@...r.kernel.org] On Behalf Of Pali Rohár
> > Sent: Friday, January 19, 2018 10:01 AM
> > To: Dmitry Torokhov <dmitry.torokhov@...il.com>
> > Cc: linux-kernel@...r.kernel.org; mjg59@...f.ucam.org; dvhart@...radead.org;
> > andy@...radead.org; bhush94@...il.com; platform-driver-x86@...r.kernel.org;
> > Marco Martin <notmart@...il.com>
> > Subject: Re: [PATCH] Support tablet mode switch for Dell laptops
> >
> > On Thursday 18 January 2018 16:44:08 Pali Rohár wrote:
> > > On Thursday 18 January 2018 14:59:50 Marco Martin wrote:
> > > > - if (!sparse_keymap_report_event(priv->input_dev, event, 1, true))
> > > > + if (event == 0xCC) {
> > > > + input_report_switch(priv->input_dev, SW_TABLET_MODE, 1);
> > > > + input_sync(priv->input_dev);
> > > > + } else if (event == 0xCD) {
> > > > + input_report_switch(priv->input_dev, SW_TABLET_MODE, 0);
> > > > + input_sync(priv->input_dev);
> > > > + } else if (!sparse_keymap_report_event(priv->input_dev, event, 1, true))
> > >
> > > Is not it possible to put 0xCC and 0xCD into sparse keymap table?
> > > Because IIRC sparse keymap was created just to avoid that big
> > > if-elseif-elseif-else blocks.
> >
> > Dmitry, can you comment above part? I think that there should be better
> > way how to handle above switches and sparse keymap via one input device.
> >
> > > > dev_info(&device->dev, "unknown event index 0x%x\n",
> > > > event);
> > > > }
> > >
> >
> > --
> > Pali Rohár
> > pali.rohar@...il.com
>
> We discussed a little more on the bug he filed with attached DSDT. I think that in
> sparse keymap he can use KE_VSW for the entries and sparse keymap can handle.
No it should be KE_SW I believe, as the "keycode" encodes the state.
See example in intel-hid.c.
So you probably want:
...
{ KE_SW, 0xCC, { .sw = { SW_TABLET_MODE, 1 } } }, /* Press */
{ KE_SW, 0xCD, { .sw = { SW_TABLET_MODE, 0 } } }, /* Release */
Thanks.
--
Dmitry
Powered by blists - more mailing lists