All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Greg Kroah-Hartman <greg@kroah.com>,
	David Cohen <david.a.cohen@linux.intel.com>,
	Felipe Balbi <balbi@ti.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
	stable <stable@vger.kernel.org>,
	Mathias Nyman <mathias.nyman@linux.intel.com>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Subject: Re: [PATCH] pinctrl: baytrail: show output gpio state correctly on Intel Baytrail
Date: Fri, 14 Nov 2014 11:53:40 +0200	[thread overview]
Message-ID: <20141114095340.GZ1454@lahna.fi.intel.com> (raw)
In-Reply-To: <CACRpkdZg9-h+SVEe1mDHWm2kCfR3wc6uCvaLJsXpJm7xNL=r-w@mail.gmail.com>

+Rafael

On Fri, Nov 14, 2014 at 10:39:07AM +0100, Linus Walleij wrote:
> On Tue, Nov 4, 2014 at 7:57 PM, Mika Westerberg
> <mika.westerberg@linux.intel.com> wrote:
> > On Tue, Nov 04, 2014 at 10:05:26AM -0800, David Cohen wrote:
> 
> >> It looks we have an implicit dependency to GPIO driver in Bay Trail, and
> >> having this window until load the module is not acceptable to fulfill
> >> this implicit dependency.
> >
> > It is not implicit at all.
> >
> > The user of the GPIO in ACPI DSDT table says something like:
> >
> >         Name (_DEP, Package () { \_SB.GPO2 })
> >
> > or similar. That is *explicit* dependency. Here \_SB.GPO2 is one of the
> > GPIO banks.
> 
> That's very nice for ACPI. But what do you expect the Linux kernel to
> do with that?

It should prevent the driver from probing until all the devices listed
in _DEP have drivers probed.

However, it turned out that this is not that straightforward after all
:-( For one, it looks like _DEP is used also for non-operation region
dependencies. This is not in the ACPI spec but we have seen this in real
machines out there.

Other thing I heard, is that handling all these dependencies in driver
core might be nightmare to maintain.

> Basically that is just like getting an -EPROBE_DEFER from the
> gpiochip when the gpiod_get() call is issued, and you have to wait
> because the gpiochip is not probed yet. We can solve that at runtime
> right?

Yes we can if the driver core prevents probing the driver.

> I had a discussion with Greg the other day that we have no way of
> expressing inside the kernel that a resource such as a GPIO, a pin,
> a clk or a regulator is used by some module. It's just a synchronous
> gpiod_get() or whatever call, then there is a warning if you remove
> a gpiochip with gpios still in use.
> 
> What is needed to make use of such a dependency mechanism is
> a way to graph the dependencies between kernel drivers and
> the resources (gpios, clocks, regulators...) they provide to other
> drivers, so this information can be used when probing, removing,
> powering up/down the cluster.
> 
> That problem needs to be solved in the device core, until then there
> is not way to actually use that ACPI _DEP property for what I can
> tell.

I agree.

> (On a side note: whoever came up with the idea that ACPI props
> be 4 characters wide and start with an underscore and this
> backslash obfuscation needs to... think differently.)
> 
> Yours,
> Linus Walleij

  reply	other threads:[~2014-11-14  9:53 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-03 16:55 [PATCH] pinctrl: baytrail: show output gpio state correctly on Intel Baytrail David Cohen
2014-10-13 18:23 ` David Cohen
2014-10-13 18:23   ` David Cohen
2014-10-13 19:14   ` Felipe Balbi
2014-10-13 19:14     ` Felipe Balbi
2014-10-13 19:24     ` David Cohen
2014-10-13 19:26       ` Felipe Balbi
2014-10-13 19:26         ` Felipe Balbi
2014-10-13 19:36         ` Felipe Balbi
2014-10-13 19:36           ` Felipe Balbi
2014-10-13 20:19           ` David Cohen
2014-10-28 10:15           ` Linus Walleij
2014-10-28 14:42             ` Felipe Balbi
2014-10-31  8:12               ` Linus Walleij
2014-10-31 13:20                 ` Felipe Balbi
2014-10-31 16:23                   ` David Cohen
2014-10-31 18:45                     ` David Cohen
2014-11-03  9:24                       ` Mika Westerberg
2014-11-03 15:00                         ` Felipe Balbi
2014-11-03 15:00                           ` Felipe Balbi
2014-11-03 15:27                           ` Mika Westerberg
2014-11-03 15:35                             ` Felipe Balbi
2014-11-03 15:35                               ` Felipe Balbi
2014-11-03 15:42                             ` Mika Westerberg
2014-11-03 15:50                               ` Felipe Balbi
2014-11-03 15:50                                 ` Felipe Balbi
2014-11-03 18:42                                 ` Mika Westerberg
2014-11-03 20:40                                   ` Felipe Balbi
2014-11-03 20:40                                     ` Felipe Balbi
2014-11-04  7:51                                     ` Mika Westerberg
2014-11-04 14:44                                       ` Felipe Balbi
2014-11-04 14:44                                         ` Felipe Balbi
2014-11-03 22:19                                   ` David Cohen
2014-11-04  7:59                                     ` Mika Westerberg
2014-11-04 18:05                                       ` David Cohen
2014-11-04 18:57                                         ` Mika Westerberg
2014-11-04 19:11                                           ` David Cohen
2014-11-04 19:34                                             ` Mika Westerberg
2014-11-04 21:51                                               ` David Cohen
2014-11-05  8:40                                                 ` Mika Westerberg
2014-11-14  9:40                                                 ` Linus Walleij
2014-11-14  9:39                                           ` Linus Walleij
2014-11-14  9:53                                             ` Mika Westerberg [this message]
2014-11-14 23:19                                               ` Rafael J. Wysocki
2014-11-14  9:30                                   ` Linus Walleij
2014-11-03 15:33                   ` Linus Walleij
2014-10-13 20:16         ` David Cohen
2014-10-14 17:54   ` [PATCH v2] " David Cohen
2014-10-14 17:54     ` David Cohen
2014-10-14 18:19     ` Felipe Balbi
2014-10-14 18:19       ` Felipe Balbi
2014-10-28 10:17     ` 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=20141114095340.GZ1454@lahna.fi.intel.com \
    --to=mika.westerberg@linux.intel.com \
    --cc=balbi@ti.com \
    --cc=david.a.cohen@linux.intel.com \
    --cc=greg@kroah.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathias.nyman@linux.intel.com \
    --cc=rafael.j.wysocki@intel.com \
    --cc=stable@vger.kernel.org \
    /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.