From: ykzhao <yakui.zhao@intel.com>
To: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Len Brown <lenb@kernel.org>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>
Subject: Re: [PATCH v3 13/17] ACPI: identify device tree root by null parent pointer, not ACPI_BUS_TYPE
Date: Wed, 23 Sep 2009 11:09:44 +0800 [thread overview]
Message-ID: <1253675384.3609.361.camel@localhost.localdomain> (raw)
In-Reply-To: <20090921192950.21322.63040.stgit@bob.kio>
On Tue, 2009-09-22 at 03:29 +0800, Bjorn Helgaas wrote:
> We can identify the root of the ACPI device tree by the fact that it
> has no parent. This is simpler than passing around ACPI_BUS_TYPE_SYSTEM
> and will help remove special treatment of the device tree root.
>
> Currently, we add the root by hand with ACPI_BUS_TYPE_SYSTEM. If we
> traverse the tree treating the root as just another device and use
> acpi_get_type(), the root shows up as ACPI_TYPE_DEVICE.
>
> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
> ---
> drivers/acpi/scan.c | 20 +++++++++++++-------
> include/acpi/acpi_bus.h | 1 -
> 2 files changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index 27d2dec..0b5aaf0 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -22,6 +22,8 @@ extern struct acpi_device *acpi_root;
> #define ACPI_BUS_HID "LNXSYBUS"
> #define ACPI_BUS_DEVICE_NAME "System Bus"
>
> +#define ACPI_IS_ROOT_DEVICE(device) (!(device)->parent)
the following definition will be better
#define ACPI_IS_ROOT_DEVICE(device) \
(device->handle == ACPI_ROOT_OBJECT)
thanks.
> +
> static LIST_HEAD(acpi_device_list);
> static LIST_HEAD(acpi_bus_id_list);
> DEFINE_MUTEX(acpi_device_lock);
> @@ -955,10 +957,12 @@ static void acpi_device_get_busid(struct acpi_device *device)
> * The device's Bus ID is simply the object name.
> * TBD: Shouldn't this value be unique (within the ACPI namespace)?
> */
> - switch (device->device_type) {
> - case ACPI_BUS_TYPE_SYSTEM:
> + if (ACPI_IS_ROOT_DEVICE(device)) {
> strcpy(device->pnp.bus_id, "ACPI");
> - break;
> + return;
> + }
> +
> + switch (device->device_type) {
> case ACPI_BUS_TYPE_POWER_BUTTON:
> strcpy(device->pnp.bus_id, "PWRF");
> break;
> @@ -1093,6 +1097,11 @@ static void acpi_device_set_id(struct acpi_device *device)
>
> switch (device->device_type) {
> case ACPI_BUS_TYPE_DEVICE:
> + if (ACPI_IS_ROOT_DEVICE(device)) {
> + hid = ACPI_SYSTEM_HID;
> + break;
> + }
> +
> status = acpi_get_object_info(device->handle, &info);
> if (ACPI_FAILURE(status)) {
> printk(KERN_ERR PREFIX "%s: Error reading device info\n", __func__);
> @@ -1129,9 +1138,6 @@ static void acpi_device_set_id(struct acpi_device *device)
> case ACPI_BUS_TYPE_PROCESSOR:
> hid = ACPI_PROCESSOR_OBJECT_HID;
> break;
> - case ACPI_BUS_TYPE_SYSTEM:
> - hid = ACPI_SYSTEM_HID;
> - break;
> case ACPI_BUS_TYPE_THERMAL:
> hid = ACPI_THERMAL_HID;
> break;
> @@ -1643,7 +1649,7 @@ int __init acpi_scan_init(void)
> * Create the root device in the bus's device tree
> */
> result = acpi_add_single_object(&acpi_root, ACPI_ROOT_OBJECT,
> - ACPI_BUS_TYPE_SYSTEM, &ops);
> + ACPI_BUS_TYPE_DEVICE, &ops);
> if (result)
> goto Done;
>
> diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
> index 8e39b3e..ef1cb23 100644
> --- a/include/acpi/acpi_bus.h
> +++ b/include/acpi/acpi_bus.h
> @@ -70,7 +70,6 @@ enum acpi_bus_device_type {
> ACPI_BUS_TYPE_POWER,
> ACPI_BUS_TYPE_PROCESSOR,
> ACPI_BUS_TYPE_THERMAL,
> - ACPI_BUS_TYPE_SYSTEM,
> ACPI_BUS_TYPE_POWER_BUTTON,
> ACPI_BUS_TYPE_SLEEP_BUTTON,
> ACPI_BUS_DEVICE_TYPE_COUNT
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2009-09-23 3:09 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-21 19:28 [PATCH v3 00/17] ACPI: cleanups for hotplug Bjorn Helgaas
2009-09-21 19:28 ` [PATCH v3 01/17] ACPICA: fixup after acpi_get_object_info() change Bjorn Helgaas
2009-09-21 19:28 ` [PATCH v3 02/17] ACPI: add debug for device addition Bjorn Helgaas
2009-09-21 19:28 ` [PATCH v3 03/17] ACPI: remove unused acpi_bus_scan_fixed() argument Bjorn Helgaas
2009-09-21 19:29 ` [PATCH v3 04/17] ACPI: remove redundant "handle" and "parent" arguments Bjorn Helgaas
2009-09-21 19:29 ` [PATCH v3 05/17] ACPI: save device_type in acpi_device Bjorn Helgaas
2009-09-21 19:29 ` [PATCH v3 06/17] ACPI: use device_type rather than comparing HID Bjorn Helgaas
2009-09-21 19:29 ` [PATCH v3 07/17] ACPI: remove acpi_device_set_context() "type" argument Bjorn Helgaas
2009-09-21 19:29 ` [PATCH v3 08/17] ACPI: remove redundant "type" arguments Bjorn Helgaas
2009-09-21 19:29 ` [PATCH v3 09/17] ACPI: remove unnecessary argument checking Bjorn Helgaas
2009-09-21 19:29 ` [PATCH v3 10/17] ACPI: add acpi_bus_get_parent() and remove "parent" arguments Bjorn Helgaas
2009-09-21 19:29 ` [PATCH v3 11/17] ACPI: convert acpi_bus_scan() to operate on an acpi_handle Bjorn Helgaas
2009-09-21 19:29 ` [PATCH v3 12/17] ACPI: enumerate namespace before adding functional fixed hardware devices Bjorn Helgaas
2009-09-21 19:29 ` [PATCH v3 13/17] ACPI: identify device tree root by null parent pointer, not ACPI_BUS_TYPE Bjorn Helgaas
2009-09-23 3:09 ` ykzhao [this message]
2009-09-23 16:14 ` Bjorn Helgaas
2009-09-24 2:10 ` ykzhao
2009-09-24 3:31 ` Bjorn Helgaas
2009-09-21 19:29 ` [PATCH v3 14/17] ACPI: use acpi_walk_namespace() to enumerate devices Bjorn Helgaas
2009-09-21 19:30 ` [PATCH v3 15/17] ACPI: add acpi_bus_get_status_handle() Bjorn Helgaas
2009-09-21 19:30 ` [PATCH v3 16/17] ACPI: factor out device type and status checking Bjorn Helgaas
2009-09-21 19:30 ` [PATCH v3 17/17] ACPI: handle re-enumeration, when acpi_devices might already exist 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=1253675384.3609.361.camel@localhost.localdomain \
--to=yakui.zhao@intel.com \
--cc=bjorn.helgaas@hp.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox