linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	Alexandre Courbot <gnurou@gmail.com>,
	linux-gpio@vger.kernel.org, Hans de Goede <hdegoede@redhat.com>,
	linux-kernel@vger.kernel.org,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Jarkko Nikula <jarkko.nikula@linux.intel.com>,
	linux-acpi@vger.kernel.org, Irina Tirdea <irina.tirdea@intel.com>,
	Bastien Nocera <hadess@hadess.net>
Subject: Re: [PATCH v1 4/8] gpio: acpi: Even more tighten up ACPI GPIO lookups
Date: Tue, 28 Mar 2017 19:31:24 +0300	[thread overview]
Message-ID: <1490718684.708.37.camel@linux.intel.com> (raw)
In-Reply-To: <20170323201241.GB2502@dtor-ws>

On Thu, 2017-03-23 at 13:12 -0700, Dmitry Torokhov wrote:
> On Thu, Mar 23, 2017 at 09:46:14PM +0200, Andy Shevchenko wrote:
> > The commit 10cf4899f8af ("gpiolib: tighten up ACPI legacy gpio
> > lookups")
> > prevents to getting same resource twice if the driver asks twice
> > using same
> 
> s/same/different/
> 
> > connection ID.

Oh, yeah, though it didn't fix a potential issue described below.

> > But the whole idea of fallback might bring some problems. Imagine
> > the case when
> > we have two versions of BIOS/hardware where in one _DSD is
> > introduced along
> > with GPIO resources, but the other one uses just plain GPIO resource
> > for
> > another purpose
> > 
> > Case 1:
> > 
> >     Device (DEVX)
> >     {
> >         ...
> >         Name (_CRS, ResourceTemplate ()
> >         {
> >             GpioIo (Exclusive, PullUp, 0, 0, IoRestrictionInputOnly,
> >                     "\\_SB.GPO0", 0, ResourceConsumer) {15}
> >         })
> >         Name (_DSD, Package ()
> >         {
> >             ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
> >             Package ()
> >             {
> >                 Package () {"some-gpios", Package() {^DEVX, 0, 0, 0
> > }},
> >             }
> >         })
> >     }
> > 
> > Case 2:
> > 
> >     Device (DEVX)
> >     {
> >         ...
> >         Name (_CRS, ResourceTemplate ()
> >         {
> >             GpioIo (Exclusive, PullUp, 0, 0, IoRestrictionInputOnly,
> >                     "\\_SB.GPO0", 0, ResourceConsumer) {27}
> >         })
> >     }
> > 
> > To prevent the possible misconfiguration tighten up even more ACPI
> > GPIO lookups
> > for case without connection ID provided.

> I wonder if this will break Goodix. Irina, Bastien?

It would be helpful if anyone can test it.

Btw, which particular driver do you have in mind that might be broken
after such change? Ah, Goodix is a vendor of touchscreens, right?

I'm going through drivers which are using ACPI enumeration and
gpiod_get() API to create mapping tables. I didn't touch drivers/input/
folder yet.

So, potential problems might be there:

drivers/input/touchscreen/elants_i2c.c
drivers/input/touchscreen/goodix.c
drivers/input/touchscreen/melfas_mip4.c
drivers/input/touchscreen/raydium_i2c_ts.c
drivers/input/touchscreen/silead.c
drivers/input/touchscreen/surface3_spi.c

(except silead which Hans tested few times)

> > In the past the issue had been triggered by "use mctrl_gpio helpers"
> > series
> > [1,2].
> > 
> > Besides above, removal of the main logic of
> > acpi_can_fallback_to_crs()
> > eliminates a potential memory leak when the same device has been
> > unbound and
> > bound again.
> 
> Where? We'll reuse lookup table as ACPI device is still the same.

I used to have issues with unbind/bind cycle with pointer to struct
device * (IIRC platform device), but you probably right since pointer to
struct acpi_device is used here in your change.

I will remove this paragraph from commit message.

Thanks for review!

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

  parent reply	other threads:[~2017-03-28 16:33 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-23 19:46 [PATCH v1 0/8] gpio: acpi: Make it working Andy Shevchenko
2017-03-23 19:46 ` [PATCH v1 1/8] gpiolib: Export gpiod_configure_flags() to internal users Andy Shevchenko
2017-03-23 19:46 ` [PATCH v1 2/8] gpio: acpi: Align acpi_find_gpio() with DT version Andy Shevchenko
2017-03-23 20:13   ` Dmitry Torokhov
2017-03-23 19:46 ` [PATCH v1 3/8] gpio: acpi: Do sanity check for GpioInt in acpi_find_gpio() Andy Shevchenko
2017-03-23 20:19   ` Dmitry Torokhov
2017-03-23 19:46 ` [PATCH v1 4/8] gpio: acpi: Even more tighten up ACPI GPIO lookups Andy Shevchenko
2017-03-23 20:12   ` Dmitry Torokhov
2017-03-24 10:46     ` Bastien Nocera
2017-03-28 16:31     ` Andy Shevchenko [this message]
2017-03-29  7:04       ` Dmitry Torokhov
2017-03-23 19:46 ` [PATCH v1 5/8] gpio: acpi: Synchronize acpi_find_gpio() and acpi_gpio_count() Andy Shevchenko
2017-03-24 15:55   ` Mika Westerberg
2017-03-23 19:46 ` [PATCH v1 6/8] gpio: acpi: Explain how to get GPIO descriptors in ACPI case Andy Shevchenko
2017-03-23 20:28   ` Dmitry Torokhov
2017-03-28 16:39     ` Andy Shevchenko
2017-03-29  7:12       ` Dmitry Torokhov
2017-03-29 15:04         ` Andy Shevchenko
2017-04-04 16:11           ` Andy Shevchenko
2017-04-04 17:31             ` Dmitry Torokhov
2017-04-04 17:59               ` Andy Shevchenko
2017-04-04 18:21                 ` Dmitry Torokhov
2017-03-23 19:46 ` [PATCH v1 7/8] gpio: acpi: Factor out acpi_gpio_to_gpiod_flags() helper Andy Shevchenko
2017-03-23 19:46 ` [PATCH v1 8/8] gpio: acpi: Override GPIO initialization flags Andy Shevchenko
2017-03-24 13:48 ` [PATCH v1 0/8] gpio: acpi: Make it working Jarkko Nikula
2017-03-24 16:01 ` Mika Westerberg
2017-03-28 13:24 ` Linus Walleij

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=1490718684.708.37.camel@linux.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=gnurou@gmail.com \
    --cc=hadess@hadess.net \
    --cc=hdegoede@redhat.com \
    --cc=irina.tirdea@intel.com \
    --cc=jarkko.nikula@linux.intel.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@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 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).