From: Daniel Scally <djrscally@gmail.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>, lenb@kernel.org
Cc: linux-acpi@vger.kernel.org,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Kieran Bingham <kieran.bingham@ideasonboard.com>
Subject: Re: acpi_device_notify() binding devices that don't seem like they should be bound
Date: Tue, 8 Dec 2020 23:48:52 +0000 [thread overview]
Message-ID: <858bb2b0-e2b4-f0d4-0088-7106fec3cb8f@gmail.com> (raw)
In-Reply-To: <1409ba0c-1580-dc09-e6fe-a0c9bcda6462@gmail.com>
Hello again
On 06/12/2020 00:00, Daniel Scally wrote:
> INT3472:08 is not an acpi device that seems to be a good candidate for
> binding to 0000:00:00.0; it just happens to be the first child of
> PNP0A08:08 that shares _ADR 0 and has _STA not set to 0.
>
> The comment within acpi_find_child_device() does imply that there should
> only ever be a single child device with the same _ADR as the parent, so
> I suppose this is possibly a case of poor ACPI tables confusing the code
> a bit; given both PNP0A08:00 and _all_ of the INT3472 devices have _ADR
> set to zero (as indeed do the machine's cameras), but I'm not
> knowledgeable enough on ACPI to know whether that's to spec (or at least
> accounted for). The INT3472 devices themselves do not actually seem to
> represent a physical device (atleast, not in this case...sometimes they
> do...), rather they're a dummy being used to simply group some GPIO
> lines under a common _CRS. The sensors are called out as dependent on
> these "devices" in their _DEP method, which is already a horrible way of
> doing things so more broken ACPI being to blame wouldn't surprise me.
>
> The other problem that that raises is that there seems to be _no_ good
> candidate for binding to 0000:00:00.0 that's a child of PNP0A08:00 - the
> only devices sharing _ADR 0 and having _STA != 0 are those two INT3472
> entries and the machine's cameras.
After some more reading, I'm pretty confident that this is the problem
now - I.E. that those devices having _ADR of 0 is what's causing this
issue to materialise, and that those values should be set to something
more appropriate. Still unsure about the best approach to fix it though
from a kernel point of view; there doesn't seem to be anything out of
whack in the logic, and I believe (correct me if I'm wrong) there can be
legitimate instances of child devices sharing _ADR=0 with the parent, so
the problem becomes how to identify the illegitimate instances so that
they can be discarded. My experience in this is really limited, so I
lean towards the conclusion that hard-coding exceptions somewhere might
be necessary to handle this without resorting to patched ACPI tables.
Whether that's within acpi_find_child_device() to prevent matching
occurring there, or else setting the adev->pnp.bus_address to some
alternate value after creation to compensate.
I recognise that that's a horrible answer though, so I'm really hoping
that someone has an idea for how to handle this in a better way.
next prev parent reply other threads:[~2020-12-08 23:49 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-06 0:00 acpi_device_notify() binding devices that don't seem like they should be bound Daniel Scally
2020-12-08 23:48 ` Daniel Scally [this message]
2020-12-09 9:54 ` Daniel Scally
2020-12-09 15:43 ` Rafael J. Wysocki
2020-12-09 16:20 ` Daniel Scally
2020-12-09 16:53 ` Rafael J. Wysocki
2020-12-10 0:06 ` Daniel Scally
2020-12-10 13:53 ` Rafael J. Wysocki
2020-12-10 15:02 ` Daniel Scally
2020-12-10 16:05 ` Rafael J. Wysocki
2020-12-10 16:07 ` Daniel Scally
2020-12-10 16:59 ` Rafael J. Wysocki
2020-12-10 22:46 ` Daniel Scally
2020-12-11 16:58 ` Rafael J. Wysocki
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=858bb2b0-e2b4-f0d4-0088-7106fec3cb8f@gmail.com \
--to=djrscally@gmail.com \
--cc=kieran.bingham@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=rjw@rjwysocki.net \
/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.