All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lan Tianyu <tianyu.lan@intel.com>
To: Feng Tang <feng.tang@intel.com>
Cc: len.brown@intel.com, linux-acpi@vger.kernel.org, mjg@redhat.com,
	gregkh@linuxfoundation.org, Bob Moore <robert.moore@intel.com>
Subject: Re: [PATCH 1/2] ACPI: Use ACPICA native way to decode the PLD buffer
Date: Wed, 22 Aug 2012 15:05:38 +0800	[thread overview]
Message-ID: <503484C2.8070106@intel.com> (raw)
In-Reply-To: <1345616676-30915-1-git-send-email-feng.tang@intel.com>

On 2012年08月22日 14:24, Feng Tang wrote:
> This patch is on top of the ACPICA 20120816 release, which implemented
> a native way to decode PLD buffer, so use it instead of leting upper
> level users do the decoding.
> 
> Signed-off-by: Feng Tang <feng.tang@intel.com>
> Signed-off-by: Bob Moore <robert.moore@intel.com>
> ---
>  drivers/acpi/utils.c    |   11 +++++++----
>  include/acpi/acpi_bus.h |   31 +------------------------------
>  2 files changed, 8 insertions(+), 34 deletions(-)
> 
> diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
> index 3e87c9c..e697bf2 100644
> --- a/drivers/acpi/utils.c
> +++ b/drivers/acpi/utils.c
> @@ -384,7 +384,7 @@ acpi_evaluate_reference(acpi_handle handle,
>  EXPORT_SYMBOL(acpi_evaluate_reference);
>  
>  acpi_status
> -acpi_get_physical_device_location(acpi_handle handle, struct acpi_pld *pld)
> +acpi_get_physical_device_location(acpi_handle handle, struct acpi_pld_info **pld)
Sorry. I have not found the definition of struct acpi_pld_info or is
there something I have missed?
>  {
>  	acpi_status status;
>  	struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
> @@ -400,13 +400,16 @@ acpi_get_physical_device_location(acpi_handle handle, struct acpi_pld *pld)
>  	if (!output || output->type != ACPI_TYPE_PACKAGE
>  	    || !output->package.count
>  	    || output->package.elements[0].type != ACPI_TYPE_BUFFER
> -	    || output->package.elements[0].buffer.length > sizeof(*pld)) {
> +	    || output->package.elements[0].buffer.length > 16) {
>  		status = AE_TYPE;
>  		goto out;
>  	}
>  
> -	memcpy(pld, output->package.elements[0].buffer.pointer,
> -	       output->package.elements[0].buffer.length);
> +	status = acpi_decode_pld_buffer(
> +			output->package.elements[0].buffer.pointer,
> +			output->package.elements[0].buffer.length,
> +			pld);
> +
>  out:
>  	kfree(buffer.pointer);
>  	return status;
> diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
> index bde976e..0c1fcd4 100644
> --- a/include/acpi/acpi_bus.h
> +++ b/include/acpi/acpi_bus.h
> @@ -54,37 +54,8 @@ acpi_status
>  acpi_evaluate_hotplug_ost(acpi_handle handle, u32 source_event,
>  			u32 status_code, struct acpi_buffer *status_buf);
>  
> -struct acpi_pld {
> -	unsigned int revision:7; /* 0 */
> -	unsigned int ignore_colour:1; /* 7 */
> -	unsigned int colour:24; /* 8 */
> -	unsigned int width:16; /* 32 */
> -	unsigned int height:16; /* 48 */
> -	unsigned int user_visible:1; /* 64 */
> -	unsigned int dock:1; /* 65 */
> -	unsigned int lid:1; /* 66 */
> -	unsigned int panel:3; /* 67 */
> -	unsigned int vertical_pos:2; /* 70 */
> -	unsigned int horizontal_pos:2; /* 72 */
> -	unsigned int shape:4; /* 74 */
> -	unsigned int group_orientation:1; /* 78 */
> -	unsigned int group_token:8; /* 79 */
> -	unsigned int group_position:8; /* 87 */
> -	unsigned int bay:1; /* 95 */
> -	unsigned int ejectable:1; /* 96 */
> -	unsigned int ospm_eject_required:1; /* 97 */
> -	unsigned int cabinet_number:8; /* 98 */
> -	unsigned int card_cage_number:8; /* 106 */
> -	unsigned int reference:1; /* 114 */
> -	unsigned int rotation:4; /* 115 */
> -	unsigned int order:5; /* 119 */
> -	unsigned int reserved:4; /* 124 */
> -	unsigned int vertical_offset:16; /* 128 */
> -	unsigned int horizontal_offset:16; /* 144 */
> -} __attribute__((__packed__));
> -
>  acpi_status
> -acpi_get_physical_device_location(acpi_handle handle, struct acpi_pld *pld);
> +acpi_get_physical_device_location(acpi_handle handle, struct acpi_pld_info **pld);
>  #ifdef CONFIG_ACPI
>  
>  #include <linux/proc_fs.h>
> 


-- 
Best regards
Tianyu Lan
--
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

  parent reply	other threads:[~2012-08-22  7:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-22  6:24 [PATCH 1/2] ACPI: Use ACPICA native way to decode the PLD buffer Feng Tang
2012-08-22  6:24 ` [PATCH 2/2] usb-acpi: Comply with the ACPI API change Feng Tang
2012-08-22  7:05 ` Lan Tianyu [this message]
2012-08-22  7:16   ` [PATCH 1/2] ACPI: Use ACPICA native way to decode the PLD buffer Feng Tang
2012-08-22  8:35 ` [PATCH V2 " Feng Tang
2012-09-21  4:32   ` Len Brown

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=503484C2.8070106@intel.com \
    --to=tianyu.lan@intel.com \
    --cc=feng.tang@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=mjg@redhat.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 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.