From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Hans de Goede <hdegoede@redhat.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Daniel Vetter <daniel@ffwll.ch>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
"russianneuromancer @ ya . ru" <russianneuromancer@ya.ru>,
Gregor Riepl <onitake@gmail.com>,
linux-input@vger.kernel.org,
Linus Walleij <linus.walleij@linaro.org>
Subject: Re: [PATCH v2] Input: silead - Do not try to directly access the GPIO when using ACPI pm
Date: Fri, 10 Mar 2017 13:33:45 +0200 [thread overview]
Message-ID: <1489145625.20145.182.camel@linux.intel.com> (raw)
In-Reply-To: <97099577-181d-ac94-4d9e-ab5ca64f9ff6@redhat.com>
On Thu, 2017-03-09 at 19:48 +0100, Hans de Goede wrote:
> Hi,
>
> On 09-03-17 15:45, Hans de Goede wrote:
> > Hi,
> >
> > On 09-03-17 15:03, Andy Shevchenko wrote:
> > > On Thu, 2017-03-09 at 14:57 +0100, Hans de Goede wrote:
> Ok, so there is one problem with the extcon-intel-int3496.c
> together with your gpio patches:
>
> [ 2382.484415] gpio gpiochip1: (INT33FF:01): gpiochip_lock_as_irq:
> tried to flag a GPIO set as output for IRQ
> [ 2382.484425] gpio gpiochip1: (INT33FF:01): unable to lock HW IRQ 3
> for IRQ
> [ 2382.484429] genirq: Failed to request resources for INT3496:00 (irq
> 174) on irqchip chv-gpio
> [ 2382.484518] intel-int3496 INT3496:00: can't request IRQ for USB ID
> GPIO: -22
> [ 2382.500359] intel-int3496: probe of INT3496:00 failed with error
> -22
By the way did not you see a warning from gpiolib-acpi.c that flags are
overridden by firmware?
>
> This can be fixed / worked around by doing this:
>
>
> --- a/drivers/extcon/extcon-intel-int3496.c
> +++ b/drivers/extcon/extcon-intel-int3496.c
> @@ -113,6 +113,7 @@ static int int3496_probe(struct platform_device
> *pdev)
> dev_err(dev, "can't request USB ID GPIO: %d\n", ret);
> return ret;
> }
> + gpiod_direction_input(data->gpio_usb_id);
(1)
>
> data->usb_id_irq = gpiod_to_irq(data->gpio_usb_id);
> if (data->usb_id_irq < 0) {
>
> But the gpio is requested as:
>
> data->gpio_usb_id = devm_gpiod_get(dev, "id", GPIOD_IN);
>
> Note the GPIOD_IN I think the new behavior is caused by:
>
> https://bitbucket.org/andy-shev/linux/commits/ba458eb945879a66eac75de6
> 9a4e7312c4f44cc7
>
> Of which I'm not sure it is a good idea, as the dsdt of my
> cube iwork8 air shows:
>
> Device (OTG2)
> {
> Name (_HID, "INT3496") // _HID: Hardware ID
> Name (_CID, "INT3496") // _CID: Compatible ID
>
> Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
> {
> Name (ABUF, ResourceTemplate ()
> {
> GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,
> IoRestrictionOutputOnly,
> "\\_SB.GPO1", 0x00, ResourceConsumer, ,
> )
> { // Pin list
> 0x0003
> }
This is definitely bug in firmware.
> GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,
> IoRestrictionOutputOnly,
> "\\_SB.GPO3", 0x00, ResourceConsumer, ,
> )
> { // Pin list
> 0x002E
> }
> })
> Return (ABUF) /* \_SB_.PCI0.OTG2._CRS.ABUF */
> }
>
> }
>
> The dstd-s out there in the wild do not always get this right.
Yeah and here is the dilemma of making life easier to the user and
provoke vendors to abuse standards, or say "no".
In this particular case it is even worse since driver is in upstream and
it's working. (2)
>
> With my workaround from above the extcon-intel-int3496 driver
> does work properly again, so I see 2 options here:
>
> 1) Let drivers workaround known broken IoRestriction in dstd-s
> by using gpiod_direction_...
I see two options here (at least):
a) override DSDT completely (or in the future perhaps partially);
b) use workaround in the driver.
Taking into consideration (2) I would go with option b) and warn LOUDLY
in (1) that firmware has a bug which we aware of.
> 2) Drop the patch which makes gpiod_get honor the IoRestrictions
I would go 1).
> I've also tested the silead driver and with the new more strict
> gpio code it works as it should as-is (as expected).
Thanks!
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
next prev parent reply other threads:[~2017-03-10 11:35 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-22 20:00 [PATCH v2] Input: silead - Do not try to directly access the GPIO when using ACPI pm Hans de Goede
2017-01-22 22:20 ` Dmitry Torokhov
2017-01-23 10:05 ` Hans de Goede
2017-02-01 17:42 ` Dmitry Torokhov
2017-02-02 10:41 ` Mika Westerberg
2017-02-02 11:57 ` Hans de Goede
2017-02-02 12:10 ` Mika Westerberg
2017-02-02 12:32 ` Mika Westerberg
2017-02-02 12:50 ` Hans de Goede
2017-02-02 13:12 ` Mika Westerberg
2017-02-02 13:27 ` Hans de Goede
2017-02-02 13:44 ` Mika Westerberg
2017-02-02 13:55 ` Hans de Goede
2017-02-02 14:18 ` Mika Westerberg
2017-02-02 14:24 ` Gregor Riepl
2017-03-14 10:21 ` Linus Walleij
2017-03-14 11:07 ` Hans de Goede
2017-03-14 13:09 ` Andy Shevchenko
2017-03-14 18:12 ` Gregor Riepl
2017-02-10 11:52 ` Hans de Goede
2017-02-10 13:02 ` Mika Westerberg
2017-02-12 10:40 ` Hans de Goede
2017-02-13 11:00 ` Andy Shevchenko
2017-02-22 15:52 ` Andy Shevchenko
2017-02-23 14:19 ` Hans de Goede
2017-03-02 11:38 ` Andy Shevchenko
2017-03-02 15:34 ` Hans de Goede
2017-03-03 14:57 ` Andy Shevchenko
2017-03-03 15:19 ` Hans de Goede
2017-03-03 15:23 ` Andy Shevchenko
2017-03-06 9:31 ` Hans de Goede
2017-03-07 11:51 ` Andy Shevchenko
2017-03-07 13:55 ` Hans de Goede
2017-03-08 9:08 ` Hans de Goede
2017-03-08 10:30 ` Andy Shevchenko
2017-03-08 11:27 ` Hans de Goede
2017-03-08 11:46 ` Andy Shevchenko
2017-03-08 17:01 ` Andy Shevchenko
2017-03-08 17:08 ` Hans de Goede
2017-03-08 17:14 ` Andy Shevchenko
2017-03-08 17:05 ` Hans de Goede
2017-03-08 18:25 ` Andy Shevchenko
2017-03-09 13:57 ` Hans de Goede
2017-03-09 14:03 ` Andy Shevchenko
2017-03-09 14:45 ` Hans de Goede
2017-03-09 15:03 ` Andy Shevchenko
2017-03-09 15:40 ` Hans de Goede
2017-03-09 18:48 ` Hans de Goede
2017-03-09 21:32 ` Dmitry Torokhov
2017-03-10 10:35 ` Mika Westerberg
2017-03-10 11:33 ` Andy Shevchenko [this message]
2017-03-10 11:58 ` Andy Shevchenko
2017-03-10 20:49 ` 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=1489145625.20145.182.camel@linux.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=daniel@ffwll.ch \
--cc=dmitry.torokhov@gmail.com \
--cc=hdegoede@redhat.com \
--cc=linus.walleij@linaro.org \
--cc=linux-input@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=onitake@gmail.com \
--cc=russianneuromancer@ya.ru \
/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.