From: Alexey Starikovskiy <aystarik@gmail.com>
To: Lin Ming <ming.m.lin@intel.com>
Cc: Len Brown <lenb@kernel.org>,
"Moore, Robert" <robert.moore@intel.com>,
linux-acpi <linux-acpi@vger.kernel.org>
Subject: Re: [PATCH 7/8] acpi: avoid using internal acpica structures
Date: Wed, 26 Nov 2008 11:12:52 +0300 [thread overview]
Message-ID: <492D0504.8010301@gmail.com> (raw)
In-Reply-To: <1227668177.7702.99.camel@minggr.sh.intel.com>
At least, this patch should be split in two -- for each file it touches.
Second, please don't return failure status from this function, as all
functions under
the EC scope should be tried, and not only ones before first failure.
Thanks,
Alex.
Lin Ming wrote:
> Avoid using internal acpica structures acpi_namespace_node and acpi_operand_object
> Call acpi_get_name or acpi_get_object_info to get node name and method arg count
>
> Signed-off-by: Lin Ming <ming.m.lin@intel.com>
> ---
> drivers/acpi/ec.c | 13 +++++++++++--
> drivers/misc/sony-laptop.c | 15 +++++++++------
> 2 files changed, 20 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> index 591b4f6..2f4828f 100644
> --- a/drivers/acpi/ec.c
> +++ b/drivers/acpi/ec.c
> @@ -754,10 +754,19 @@ static acpi_status
> acpi_ec_register_query_methods(acpi_handle handle, u32 level,
> void *context, void **return_value)
> {
> - struct acpi_namespace_node *node = handle;
> + char node_name[5];
> + struct acpi_buffer buffer = { sizeof(node_name), node_name };
> struct acpi_ec *ec = context;
> int value = 0;
> - if (sscanf(node->name.ascii, "_Q%x", &value) == 1) {
> + acpi_status status;
> +
> + status = acpi_get_name(handle, ACPI_SINGLE_NAME, &buffer);
> +
> + if (ACPI_FAILURE(status)) {
> + return status;
> + }
> +
> + if (sscanf(node_name, "_Q%x", &value) == 1) {
> acpi_ec_add_query_handler(ec, value, handle, NULL, NULL);
> }
> return AE_OK;
> diff --git a/drivers/misc/sony-laptop.c b/drivers/misc/sony-laptop.c
> index 7bcb810..dd9c16f 100644
> --- a/drivers/misc/sony-laptop.c
> +++ b/drivers/misc/sony-laptop.c
> @@ -935,14 +935,17 @@ static void sony_acpi_notify(acpi_handle handle, u32 event, void *data)
> static acpi_status sony_walk_callback(acpi_handle handle, u32 level,
> void *context, void **return_value)
> {
> - struct acpi_namespace_node *node;
> - union acpi_operand_object *operand;
> + struct acpi_device_info *info;
> + struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
>
> - node = (struct acpi_namespace_node *)handle;
> - operand = (union acpi_operand_object *)node->object;
> + if (ACPI_SUCCESS(acpi_get_object_info(handle, &buffer))) {
> + info = buffer.pointer;
>
> - printk(KERN_WARNING DRV_PFX "method: name: %4.4s, args %X\n", node->name.ascii,
> - (u32) operand->method.param_count);
> + printk(KERN_WARNING DRV_PFX "method: name: %4.4s, args %X\n",
> + (char *)info->name, info->param_count);
> +
> + kfree(buffer.pointer);
> + }
>
> return AE_OK;
> }
>
>
> --
> 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
>
--
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:[~2008-11-26 8:12 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-26 2:56 [PATCH 7/8] acpi: avoid using internal acpica structures Lin Ming
2008-11-26 8:12 ` Alexey Starikovskiy [this message]
2008-11-26 9:44 ` Lin Ming
2008-11-26 10:31 ` Alexey Starikovskiy
[not found] ` <d3f22a0811261702q39d89093y52d22c3e9ea0e488@mail.gmail.com>
2008-11-27 1:03 ` Lin Ming
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=492D0504.8010301@gmail.com \
--to=aystarik@gmail.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=ming.m.lin@intel.com \
--cc=robert.moore@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox