lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 18 Jan 2018 15:23:04 +0000
From:   <Mario.Limonciello@...l.com>
To:     <andy.shevchenko@...il.com>, <notmart@...il.com>
CC:     <linux-kernel@...r.kernel.org>, <mjg59@...f.ucam.org>,
        <pali.rohar@...il.com>, <dvhart@...radead.org>,
        <andy@...radead.org>, <bhush94@...il.com>,
        <platform-driver-x86@...r.kernel.org>
Subject: RE: [PATCH] Support tablet mode switch for Dell laptops

> -----Original Message-----
> From: platform-driver-x86-owner@...r.kernel.org [mailto:platform-driver-x86-
> owner@...r.kernel.org] On Behalf Of Andy Shevchenko
> Sent: Thursday, January 18, 2018 9:13 AM
> To: Marco Martin <notmart@...il.com>; Limonciello, Mario
> <Mario_Limonciello@...l.com>
> Cc: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>; Matthew Garrett
> <mjg59@...f.ucam.org>; Pali Rohár <pali.rohar@...il.com>; Darren Hart
> <dvhart@...radead.org>; Andy Shevchenko <andy@...radead.org>;
> bhush94@...il.com; Platform Driver <platform-driver-x86@...r.kernel.org>
> Subject: Re: [PATCH] Support tablet mode switch for Dell laptops
> 
> On Thu, Jan 18, 2018 at 3:59 PM, Marco Martin <notmart@...il.com> wrote:
> > Dell laptops send events to intel-vbtn.c
> > 0xCC when the laptop enters in tablet mode and
> > 0xCD when the laptop goes out of it
> >
> > This has been confirmed working on a Dell Inspiron 13-7352
> > and an Inspiron 13-7000
> >
> > I'm not sure intel-vbtn is the right place for it, as it
> > should be dell-specific, but this is the only device driver
> > where those events arrive at all
> > also, it would need a way to query the initial state of the switch
> 
> Yeah, to me sounds like a hack for now.
> So, I would like to hear from everyone: Pali, Mario, Darren?

AFAIK we don't have a public specification for the ACPI interface
that intel-vbtn uses, it's all reverse engineered.

I think the appropriate thing to do would be open a kernel Bugzilla for your
issue and attach:
1) kernel log without your patch (do you get unknown event index?)
2) your DSDT there to review.

You can subscribe us to it.

Also you should subscribe Alex Hung, who has done lots of work on intel-vbtn
and intel-hid.

> 
> > CC:platform-driver-x86@...r.kernel.org
> > CC:Matthew Garrett <mjg59@...f.ucam.org>
> > CC:"Pali Rohár" <pali.rohar@...il.com>
> > CC:Darren Hart <dvhart@...radead.org>
> > CC:Andy Shevchenko <andy@...radead.org>
> >
> > Signed-off-by: Marco Martin <notmart@...il.com>
> > ---
> >  drivers/platform/x86/intel-vbtn.c | 12 +++++++++++-
> >  1 file changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/platform/x86/intel-vbtn.c b/drivers/platform/x86/intel-vbtn.c
> > index 146d02f..1fa63e8 100644
> > --- a/drivers/platform/x86/intel-vbtn.c
> > +++ b/drivers/platform/x86/intel-vbtn.c
> > @@ -61,6 +61,10 @@ static int intel_vbtn_input_setup(struct platform_device
> *device)
> >         priv->input_dev->name = "Intel Virtual Button driver";
> >         priv->input_dev->id.bustype = BUS_HOST;
> >
> > +       input_set_capability(priv->input_dev, EV_SW, SW_TABLET_MODE);
> > +       /*TODO: query initial state (and if the switch is present*/
> > +       input_report_switch(priv->input_dev, SW_TABLET_MODE, 0);
> > +
> >         ret = input_register_device(priv->input_dev);
> >         if (ret)
> >                 goto err_free_device;
> > @@ -84,7 +88,13 @@ static void notify_handler(acpi_handle handle, u32 event,
> void *context)
> >         struct platform_device *device = context;
> >         struct intel_vbtn_priv *priv = dev_get_drvdata(&device->dev);
> >
> > -       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))
> >                 dev_info(&device->dev, "unknown event index 0x%x\n",
> >                          event);
> >  }
> > --
> > 2.7.4
> >
> 
> 
> 
> --
> With Best Regards,
> Andy Shevchenko

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ