From: Shawn Guo <shawn.guo@linaro.org>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Jeffrey Hugo <jhugo@codeaurora.org>,
Linus Walleij <linus.walleij@linaro.org>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Bartosz Golaszewski <bgolaszewski@baylibre.com>,
Bjorn Andersson <bjorn.andersson@linaro.org>,
"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH] gpiolib: acpi: support override broken GPIO number in ACPI table
Date: Tue, 2 Mar 2021 08:44:47 +0800 [thread overview]
Message-ID: <20210302004446.GF24428@dragon> (raw)
In-Reply-To: <YDzb5llywkzbGEF+@smile.fi.intel.com>
+ Jeffrey
On Mon, Mar 01, 2021 at 02:19:50PM +0200, Andy Shevchenko wrote:
> On Sat, Feb 27, 2021 at 11:46:42AM +0800, Shawn Guo wrote:
> > On Fri, Feb 26, 2021 at 12:57:37PM +0200, Andy Shevchenko wrote:
> > > On Fri, Feb 26, 2021 at 11:39 AM Shawn Guo <shawn.guo@linaro.org> wrote:
> > > >
> > > > On Fri, Feb 26, 2021 at 11:12:07AM +0200, Andy Shevchenko wrote:
> > > > > On Fri, Feb 26, 2021 at 5:42 AM Shawn Guo <shawn.guo@linaro.org> wrote:
> > > > > >
> > > > > > Running kernel with ACPI on Lenovo Flex 5G laptop, touchpad is just
> > > > > > not working. That's because the GpioInt number of TSC2 node in ACPI
> > > > > > table is simply wrong, and the number even exceeds the maximum GPIO
> > > > > > lines. As the touchpad works fine with Windows on the same machine,
> > > > > > presumably this is something Windows-ism. Although it's obviously
> > > > > > a specification violation, believe of that Microsoft will fix this in
> > > > > > the near future is not really realistic.
> > > > > >
> > > > > > It adds the support of overriding broken GPIO number in ACPI table
> > > > > > on particular machines, which are matched using DMI info. Such
> > > > > > mechanism for fixing up broken firmware and ACPI table is not uncommon
> > > > > > in kernel. And hopefully it can be useful for other machines that get
> > > > > > broken GPIO number coded in ACPI table.
> > > > >
> > > > > Thanks for the report and patch.
> > > > >
> > > > > First of all, have you reported the issue to Lenovo? At least they
> > > > > will know that they did wrong.
> > > >
> > > > Yes, we are reporting this to Lenovo, but to be honest, we are not sure
> > > > how much they will care about it, as they are shipping the laptop with
> > > > Windows only.
> > > >
> > > > > Second, is it possible to have somewhere output of `acpidump -o
> > > > > flex5g.dat` (the flex5g.dat file)?
> > > >
> > > > https://raw.githubusercontent.com/aarch64-laptops/build/master/misc/lenovo-flex-5g/dsdt.dsl
> > > >
> > > > > And as Mika said once to one of mine patches "since you know the
> > > > > number ahead there is no need to pollute GPIO ACPI library core with
> > > > > this quirk". But in any case I would like to see the ACPI tables
> > > > > first.
> > > >
> > > > Oh, so you had something similar already? Could you point me to the
> > > > patch and discussion?
> > >
> > > Similar, but might be not the same:
> > > - patches in the upstream [1] (v3 applied), discussion [2]
> > > - new version with some additional fixes [3]
> >
> > Thanks for all the pointers. It looks to me that it's the same problem
> > - the GPIO number in ACPI table is broken and needs an override from
> > kernel.
>
> Not exactly. On Galileo Gen 2 platform it's broken in understandable way.
> In your case it's different and I'm not sure at all that's considered "broken"
> in the MS' eyes.
At least, I was told by Jeffrey that MS admits this is something needs
to be fixed in the future.
>
> > So I think what we need is a generic solution to a problem
> > not uncommon. Rather than asking all different drivers to resolve the
> > same problem all over the kernel, I believe GPIO ACPI library is just
> > the right place.
> >
> > Looking at your platform and problem, I realise that to be a generic
> > solution, my patch needs an additional device identification matching,
> > as one GPIO number that is broken for one device could be correct for
> > another. I will improve it, so that your problem can be resolved by
> > simply adding a new entry to acpi_gpio_pin_override_table[].
>
> Before any steps further I really want to see more information about that IP
> and how firmware applied the numbering scheme.
Deduced by those working GPIO numbers in ACPI table and how Linux kernel
is working, I think the GPIO is numbered without any bank thing. All
available pins are just numbered linearly, and every pin can be
configured in GPIO mode.
>
> If it's confidential, you may sent any insights privately.
Unfortunately, all those documents are confidential to me as well.
Shawn
next prev parent reply other threads:[~2021-03-02 11:21 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-26 3:39 [PATCH] gpiolib: acpi: support override broken GPIO number in ACPI table Shawn Guo
2021-02-26 9:12 ` Andy Shevchenko
2021-02-26 9:39 ` Shawn Guo
2021-02-26 10:57 ` Andy Shevchenko
2021-02-26 11:19 ` Andy Shevchenko
2021-02-27 3:19 ` Shawn Guo
2021-03-01 12:17 ` Andy Shevchenko
2021-03-02 0:27 ` Shawn Guo
2021-03-02 12:21 ` Andy Shevchenko
2021-03-03 5:02 ` Jeffrey Hugo
2021-03-03 8:06 ` Andy Shevchenko
2021-03-03 8:45 ` Shawn Guo
2021-03-03 9:42 ` Andy Shevchenko
2021-03-03 17:08 ` Jeffrey Hugo
2021-03-03 9:43 ` Shawn Guo
2021-03-03 15:10 ` Jeffrey Hugo
2021-03-03 15:57 ` Bjorn Andersson
2021-03-03 17:32 ` Andy Shevchenko
2021-03-04 6:37 ` Shawn Guo
2021-03-04 6:59 ` Shawn Guo
2021-02-27 3:46 ` Shawn Guo
2021-03-01 12:19 ` Andy Shevchenko
2021-03-02 0:44 ` Shawn Guo [this message]
2021-03-02 10:36 ` Andy Shevchenko
2021-03-03 9:47 ` Andy Shevchenko
2021-03-04 19:32 ` Hans de Goede
2021-03-04 20:16 ` Andy Shevchenko
2021-03-05 1:14 ` Shawn Guo
2021-03-05 9:10 ` Hans de Goede
2021-03-05 10:08 ` Andy Shevchenko
2021-03-05 10:10 ` Andy Shevchenko
2021-03-05 11:26 ` Shawn Guo
2021-03-05 12:12 ` Hans de Goede
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=20210302004446.GF24428@dragon \
--to=shawn.guo@linaro.org \
--cc=andy.shevchenko@gmail.com \
--cc=bgolaszewski@baylibre.com \
--cc=bjorn.andersson@linaro.org \
--cc=jhugo@codeaurora.org \
--cc=linus.walleij@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.