All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Mark Rutland <mark.rutland@arm.com>
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	linux-acpi@vger.kernel.org, rafael@kernel.org,
	broonie@kernel.org, robh@kernel.org, ahs3@redhat.com
Subject: Re: [RFC 00/15] ACPI graph support
Date: Wed, 12 Oct 2016 03:18:05 +0200	[thread overview]
Message-ID: <2993052.nM4cQRt3uc@vostro.rjw.lan> (raw)
In-Reply-To: <20161011122815.GB24347@remoulade>

On Tuesday, October 11, 2016 01:28:15 PM Mark Rutland wrote:
> On Wed, Oct 05, 2016 at 02:41:29PM +0300, Mika Westerberg wrote:
> > The whole purpose of PRP0001 ID is to allow DT bindings to be reused in
> > ACPI systems, so that the drivers can just call device_property_* and
> > get the properties regardless of the underlying firmware interface.
> > 
> > Are you saying that's not wanted?
> 
> Yes; at least from my PoV.
> 
> I have argued that this is the wrong level of abstraction multiple times,
> across many threads, and in person at conferences.
> 
> To be clear, I have no issue with the general concept of _DSD; describing
> intra-device properties with key-value pairs make sense. I am more than happy
> for _DSD bindings to be inspired by DT bindings, but I am less than happy with
> artificially tying the two together, and pretending that they are the same
> thing when they aren't.

Basically, we're trying to address a technical problem which is to avoid
having two different code paths, one for DT and one for ACPI, in every driver
(and in every piece of every subsystem that happens to take configuration
information from the outside of the kernel).

Today, Linux is the only OS really having this problem, so nobody else cares
realistically.  That may change in the future, but when exactly is rather hard
to say.

> > > It is an RFC and my comment is that I do not like the direction
> > > this ACPI->_DSD->DT is taking, I would like to understand where
> > > this is intended to stop because I am getting worried.
> > 
> > I understand that if there is already an existing native ACPI way of
> > doing things, that should be used. However, we do not have such thing
> > for remote endpoints used between camera components,
> 
> As I have said before, this kind of thing should be handled by the ASWG. This
> is a larger matter than a single device binding, there are related concerns to
> be addressed (e.g. power management), and there are others who deal in ACPI who
> need visibility of the issue, and need to have input.
> 
> > and on the other hand there is an exiting DT binding which only requires
> > small changes to the v4l2 framework (convert it to use fwnodes) to get the
> > thing supported on both DT and ACPI systems.
> 
> So we're blindly copying the DT binding, outside of the view of the ASWG and
> other ACPI users, in a manner that's only going to work with Linux.

I don't think that anyone is talking about copying DT bindings blindly.
At least I'm not FWIW.

> At this point, why bother with ACPI at all?

Because that's the only thing we can get from the firmware in many cases.

We are trying to make it possible to run Linux on systems that ship with
a different OS and with ACPI tables in the firmware without an option to
replace them with anything else.  In those cases, really, a lot of stuff
expected by the Linux kernel code using DT today is going to be missing,
because the other OSes expect to have drivers shipped along with the
platform with the specific knowledge on it based on the specific device
IDs used in it.  In such cases, it is not a problem if there are many
drivers handling the same piece of hardware in the ecosystem as long as
they match different ACPI/PNP device IDs.

That would be a problem in Linux, though, so we need to get the HW
configuration information to the drivers we have somehow.

Generally, there are two ways that can be done.  One is to put all of the
information needed and missing from the firmware-provided ACPI tables into the
kernel itself (which is rather not attractive, from a single-binary distro
kernel perspective, for example).  Another one is to be able to put that
*missing* information into something like an initrd matching the kernel that
will go with it.  It has to be on top of the firmware-provided ACPI stuff,
because usually we don't have enough information allowing us to replace it
with, say, a DT as a whole.

Another use case is when the board ships with ACPI tables in the firmware
and you want to extend it by adding some devices to it and you need to
describe those devices to the kernel somehow.  In that case, you only
really care about Linux and following DT is the most straightforward way.

It may not be possible to follow DT exactly for technical reasons (where
PM and similar are involved etc), but OTOH do we really have to reinvent
every piece of stuff already covered by DT just for the sake of it?

Thanks,
Rafael


  reply	other threads:[~2016-10-12  1:11 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-04 22:45 [RFC 00/15] ACPI graph support Sakari Ailus
2016-10-04 22:45 ` [RFC 01/15] ACPI / property: Add possiblity to retrieve parent firmware node Sakari Ailus
2016-10-04 22:45 ` [RFC 02/15] device property: Add fwnode_get_parent() Sakari Ailus
2016-10-04 22:45 ` [RFC 03/15] ACPI / property: Add fwnode_get_next_child_node() Sakari Ailus
2016-10-04 22:45 ` [RFC 04/15] device property: Add fwnode_get_named_child_node() Sakari Ailus
2016-10-04 22:45 ` [RFC 05/15] ACPI / property: Add support for remote endpoints Sakari Ailus
2016-10-04 22:45 ` [RFC 06/15] device " Sakari Ailus
2016-10-04 22:45 ` [RFC 07/15] device property: Add fwnode_handle_get() Sakari Ailus
2016-10-04 22:45 ` [RFC 08/15] of: Add of_fwnode_handle() to convert device nodes to fwnode_handle Sakari Ailus
2016-10-04 22:45 ` [RFC 09/15] driver core: Arrange headers alphabetically Sakari Ailus
2016-10-04 22:45 ` [RFC 10/15] of: No need to include property.h, fwnode.h is sufficient Sakari Ailus
2016-10-04 22:45 ` [RFC 11/15] device property: Obtain device's fwnode independently of FW type Sakari Ailus
2016-10-04 22:45 ` [RFC 12/15] device property: Add support for fwnode endpoints Sakari Ailus
2016-10-04 22:45 ` [RFC 13/15] of: Add nop implementation of of_get_next_parent() Sakari Ailus
2016-10-04 22:45 ` [RFC 14/15] device property: Add fwnode_get_next_parent() Sakari Ailus
2016-10-04 22:45 ` [RFC 15/15] ACPI / DSD: Document references, ports and endpoints Sakari Ailus
2016-10-05  9:22 ` [RFC 00/15] ACPI graph support Lorenzo Pieralisi
2016-10-05 11:41   ` Mika Westerberg
2016-10-05 15:06     ` Lorenzo Pieralisi
2016-10-05 15:32       ` Mika Westerberg
2016-10-05 16:18         ` Lorenzo Pieralisi
2016-10-05 20:33           ` Rafael J. Wysocki
2016-10-06  8:57             ` Lorenzo Pieralisi
2016-10-06  9:11               ` Mika Westerberg
2016-10-06  9:57                 ` Lorenzo Pieralisi
2016-10-06 11:19                   ` Mika Westerberg
2016-10-06 15:31                     ` Mark Brown
2016-10-06 16:00                       ` Rafael J. Wysocki
2016-10-06 16:14                         ` Mark Brown
2016-10-06 17:02                           ` Rafael J. Wysocki
2016-10-11 12:44                         ` Mark Rutland
2016-10-12  0:19                           ` Rafael J. Wysocki
2016-10-06 12:30                   ` Rafael J. Wysocki
2016-10-06 10:40                 ` Mark Brown
2016-10-06 12:26                   ` Mika Westerberg
2016-10-06 13:15                   ` Rafael J. Wysocki
2016-10-06 15:23                     ` Mark Brown
2016-10-06 15:56                       ` Rafael J. Wysocki
2016-10-06 15:57                       ` Sudeep Holla
2016-10-06 12:26               ` Rafael J. Wysocki
2016-10-06 21:37                 ` Mark Brown
2016-10-10 23:44                   ` Rafael J. Wysocki
2016-10-11 12:11                     ` Rafael J. Wysocki
2016-10-11 13:05                       ` Mark Brown
2016-10-11 12:44                     ` Mark Brown
2016-10-11 13:32                       ` Mark Rutland
2016-10-12  0:32                       ` Rafael J. Wysocki
2016-10-12 12:05                         ` Mark Brown
2016-10-12 12:26                           ` Rafael J. Wysocki
2016-10-11 13:01                   ` Mark Rutland
2016-10-11 13:26                     ` Mark Brown
2016-10-11 12:56                 ` Mark Rutland
2016-10-06 22:02             ` Sakari Ailus
2016-10-11 12:35         ` Mark Rutland
2016-10-12  9:00           ` Mika Westerberg
2016-10-12 10:28             ` Mark Brown
2016-10-12 11:12               ` Mika Westerberg
2016-10-12 11:25                 ` Rafael J. Wysocki
2016-10-12 16:00                   ` Mark Brown
2016-10-12 11:14               ` Rafael J. Wysocki
2016-10-12 12:32                 ` Mark Brown
2016-10-12 12:42                   ` Rafael J. Wysocki
2016-10-12 14:59                     ` Mark Brown
2016-10-12 17:50                       ` Rafael J. Wysocki
2016-10-06 21:58       ` Sakari Ailus
2016-10-05 15:21     ` Mark Brown
2016-10-05 15:30     ` Sudeep Holla
2016-10-05 18:14       ` Mika Westerberg
2016-10-05 20:18       ` Rafael J. Wysocki
2016-10-06 10:29         ` Sudeep Holla
2016-10-06 13:04           ` Rafael J. Wysocki
2016-10-06 14:20             ` Sudeep Holla
2016-10-06 17:05               ` Rafael J. Wysocki
2016-10-06 17:20                 ` Sudeep Holla
2016-10-11  0:05                   ` Rafael J. Wysocki
2016-10-11  8:57                     ` Sudeep Holla
2016-10-11 11:59                       ` Rafael J. Wysocki
2016-10-11 13:15                         ` Mark Brown
2016-10-12  0:35                           ` Rafael J. Wysocki
2016-10-06 17:20               ` Al Stone
2016-10-06 20:14                 ` Mark Brown
2016-10-06 20:54                   ` Al Stone
2016-10-11 12:28     ` Mark Rutland
2016-10-12  1:18       ` Rafael J. Wysocki [this message]
2016-10-06 21:10   ` Sakari Ailus
2016-10-11 13:30     ` Mark Rutland

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=2993052.nM4cQRt3uc@vostro.rjw.lan \
    --to=rjw@rjwysocki.net \
    --cc=ahs3@redhat.com \
    --cc=broonie@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rafael@kernel.org \
    --cc=robh@kernel.org \
    --cc=sakari.ailus@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.