linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
	Bastien Nocera <hadess@hadess.net>,
	Alexandre Courbot <acourbot@nvidia.com>,
	Lejun Zhu <lejun.zhu@linux.intel.com>
Subject: [PATCH 0/3] Input: soc_button_array fixes and question
Date: Tue, 10 May 2016 17:37:50 +0200	[thread overview]
Message-ID: <1462894673-26560-1-git-send-email-benjamin.tissoires@redhat.com> (raw)

Hi,

This series has been triggered by the Surface 3 I have been given.
The way Microsoft follows its own specs is always intriguing. As
written in drivers/platform/x86/surfacepro3_button.c, the PNP0C40
ACPI device which should follow the specification doesn't have any
GPIO listed (thus the first 2 patches).

Also, the actual ACPI device that has the GPIO described is declared
as an I2C one, even if there is no such device attached to the bus.
This particular device could use the soc_button_array driver after a
little bit of ACPI magic (patches to follow, later), but each GPIO in
this device is declared twice (as Int and Io), so the 3rd patch.

Here is my question mentioned in $subject:

Why are we using gpiod_get_index(dev, KBUILD_MODNAME, acpi_index, GPIOD_ASIS);
in soc_button_lookup_gpio()?

>From what I can test here, it works the first time, but if we rmmod the module
and modprobe it again, it leads to a page fault.

My understanding is to use gpiod_get_index(dev, NULL, acpi_index, GPIOD_ASIS);
instead, which survives a module removal.

However, I do not have the ACPI spec for this and I do not have real hardware
following this spec, so I am just speculating with my Surface 3.

Cheers,
Benjamin

Benjamin Tissoires (3):
  Input - soc_button_array: use gpio_is_valid()
  Input - soc_button_array: bail out earlier if gpiod_count is null
  Input - soc_button_array: make sure one GPIO is not assigned twice

 drivers/input/misc/soc_button_array.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

-- 
2.5.0

             reply	other threads:[~2016-05-10 15:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-10 15:37 Benjamin Tissoires [this message]
2016-05-10 15:37 ` [PATCH 1/3] Input - soc_button_array: use gpio_is_valid() Benjamin Tissoires
2016-05-10 15:56   ` Fabio Estevam
2016-05-10 16:33     ` Benjamin Tissoires
2016-05-10 15:37 ` [PATCH 2/3] Input - soc_button_array: bail out earlier if gpiod_count is null Benjamin Tissoires
2016-05-10 15:37 ` [PATCH 3/3] Input - soc_button_array: make sure one GPIO is not assigned twice Benjamin Tissoires
2016-05-13 15:57 ` [PATCH 0/3] Input: soc_button_array fixes and question Benjamin Tissoires

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=1462894673-26560-1-git-send-email-benjamin.tissoires@redhat.com \
    --to=benjamin.tissoires@redhat.com \
    --cc=acourbot@nvidia.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=hadess@hadess.net \
    --cc=lejun.zhu@linux.intel.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=yongjun_wei@trendmicro.com.cn \
    /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).