All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <bjorn.helgaas@hp.com>
To: Len Brown <lenb@kernel.org>
Cc: linux-acpi@vger.kernel.org,
	Hugh Dickins <hugh.dickins@tiscali.co.uk>,
	Valdis Kletnieks <Valdis.Kletnieks@vt.edu>,
	Lin Ming <ming.m.lin@intel.com>,
	Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH 05/10] ACPI: make sure every acpi_device has an ID
Date: Mon, 24 Aug 2009 10:38:55 -0600	[thread overview]
Message-ID: <20090824163855.28131.76369.stgit@bob.kio> (raw)
In-Reply-To: <20090824163659.28131.96400.stgit@bob.kio>

This makes sure every acpi_device has at least one ID.  If we build an
acpi_device for a namespace node with no _HID or _CID, we sometimes
synthesize an ID like "LNXCPU" or "LNXVIDEO".  If we don't even have
that, give it a default "device" ID.

Note that this means things like:
    /sys/devices/LNXSYSTM:00/LNXSYBUS:00/HWP0001:00/HWP0002:04/device:00
(a PCI slot SxFy device) will have "hid" and "modprobe" entries, where
they didn't before.  These aren't very useful (a HID of "device" doesn't
tell you what *kind* of device it is, so it doesn't help find a driver),
but I don't think they're harmful.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
---
 drivers/acpi/scan.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 8a7616f..88f39e1 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -1094,6 +1094,16 @@ static void acpi_device_set_id(struct acpi_device *device)
 		break;
 	}
 
+	/*
+	 * We build acpi_devices for some objects that don't have _HID or _CID,
+	 * e.g., PCI bridges and slots.  Drivers can't bind to these objects,
+	 * but we do use them indirectly by traversing the acpi_device tree.
+	 * This generic ID isn't useful for driver binding, but it provides
+	 * the useful property that "every acpi_device has an ID."
+	 */
+	if (!hid && !cid_list && !cid_add)
+		hid = "device";
+
 	if (hid) {
 		strcpy(device->pnp.hardware_id, hid);
 		device->flags.hardware_id = 1;


  parent reply	other threads:[~2009-08-24 16:38 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-24 16:38 [PATCH 00/10] make every acpi_device have a HID Bjorn Helgaas
2009-08-24 16:38 ` [PATCH 01/10] ACPI: fix leak in debug code Bjorn Helgaas
2009-08-24 16:38 ` [PATCH 02/10] ACPI: add ACPI_IS_ROOT_DEVICE() Bjorn Helgaas
2009-08-24 16:38 ` [PATCH 03/10] ACPI: fix synthetic HID for \_SB_ Bjorn Helgaas
2009-08-24 16:38 ` [PATCH 04/10] ACPI: use acpi_device_hid() when possible Bjorn Helgaas
2009-08-24 16:38 ` Bjorn Helgaas [this message]
2009-08-24 16:39 ` [PATCH 06/10] ACPI: maintain a single list of _HID and _CID IDs Bjorn Helgaas
2009-08-24 16:39 ` [PATCH 07/10] ACPI: remove acpi_device.flags.compatible_ids Bjorn Helgaas
2009-08-24 16:39 ` [PATCH 08/10] ACPI: remove acpi_device.flags.hardware_id Bjorn Helgaas
2009-08-24 16:39 ` [PATCH 09/10] ACPI: remove acpi_device_uid() and related stuff Bjorn Helgaas
2009-08-24 16:39 ` [PATCH 10/10] ACPI: simplify building device HID/CID list Bjorn Helgaas

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=20090824163855.28131.76369.stgit@bob.kio \
    --to=bjorn.helgaas@hp.com \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=bzolnier@gmail.com \
    --cc=hugh.dickins@tiscali.co.uk \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=ming.m.lin@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.