All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>,
	Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>,
	Matthew Garrett <mjg59@srcf.ucam.org>,
	linux-pci@vger.kernel.org, linux-pm@lists.linux-foundation.org,
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
	Len Brown <lenb@kernel.org>
Subject: [PATCH 1/7] ACPI / PCI: Make acpi_pci_run_osc() use capbuf to return the result
Date: Sat, 31 Jul 2010 00:24:09 +0200	[thread overview]
Message-ID: <201007310024.10174.rjw@sisk.pl> (raw)
In-Reply-To: <201007310020.56546.rjw@sisk.pl>

From: Rafael J. Wysocki <rjw@sisk.pl>

There is no reason why acpi_pci_run_osc() should use a separate
argument to return the _OSC result, since there is a place for it
in the buffer passed via capbuf, as none of the callers needs to
preserve the original contents of that buffer, so drop the third
argument of acpi_pci_run_osc() and modify the callers accordingly.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
 drivers/acpi/pci_root.c |   17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

Index: linux-2.6/drivers/acpi/pci_root.c
===================================================================
--- linux-2.6.orig/drivers/acpi/pci_root.c
+++ linux-2.6/drivers/acpi/pci_root.c
@@ -206,8 +206,7 @@ static void acpi_pci_bridge_scan(struct 
 
 static u8 pci_osc_uuid_str[] = "33DB4D5B-1FF7-401C-9657-7441C03DD766";
 
-static acpi_status acpi_pci_run_osc(acpi_handle handle,
-				    const u32 *capbuf, u32 *retval)
+static acpi_status acpi_pci_run_osc(acpi_handle handle, u32 *capbuf)
 {
 	struct acpi_osc_context context = {
 		.uuid_str = pci_osc_uuid_str,
@@ -219,7 +218,7 @@ static acpi_status acpi_pci_run_osc(acpi
 
 	status = acpi_run_osc(handle, &context);
 	if (ACPI_SUCCESS(status)) {
-		*retval = *((u32 *)(context.ret.pointer + 8));
+		capbuf[OSC_CONTROL_TYPE] = ((u32 *)context.ret.pointer)[2];
 		kfree(context.ret.pointer);
 	}
 	return status;
@@ -228,7 +227,7 @@ static acpi_status acpi_pci_run_osc(acpi
 static acpi_status acpi_pci_query_osc(struct acpi_pci_root *root, u32 flags)
 {
 	acpi_status status;
-	u32 support_set, result, capbuf[3];
+	u32 support_set, capbuf[3];
 
 	/* do _OSC query for all possible controls */
 	support_set = root->osc_support_set | (flags & OSC_PCI_SUPPORT_MASKS);
@@ -236,10 +235,10 @@ static acpi_status acpi_pci_query_osc(st
 	capbuf[OSC_SUPPORT_TYPE] = support_set;
 	capbuf[OSC_CONTROL_TYPE] = OSC_PCI_CONTROL_MASKS;
 
-	status = acpi_pci_run_osc(root->device->handle, capbuf, &result);
+	status = acpi_pci_run_osc(root->device->handle, capbuf);
 	if (ACPI_SUCCESS(status)) {
 		root->osc_support_set = support_set;
-		root->osc_control_qry = result;
+		root->osc_control_qry = capbuf[OSC_CONTROL_TYPE];
 		root->osc_queried = 1;
 	}
 	return status;
@@ -373,7 +372,7 @@ EXPORT_SYMBOL_GPL(acpi_get_pci_dev);
 acpi_status acpi_pci_osc_control_set(acpi_handle handle, u32 flags)
 {
 	acpi_status status;
-	u32 control_req, result, capbuf[3];
+	u32 control_req, capbuf[3];
 	acpi_handle tmp;
 	struct acpi_pci_root *root;
 
@@ -410,9 +409,9 @@ acpi_status acpi_pci_osc_control_set(acp
 	capbuf[OSC_QUERY_TYPE] = 0;
 	capbuf[OSC_SUPPORT_TYPE] = root->osc_support_set;
 	capbuf[OSC_CONTROL_TYPE] = root->osc_control_set | control_req;
-	status = acpi_pci_run_osc(handle, capbuf, &result);
+	status = acpi_pci_run_osc(handle, capbuf);
 	if (ACPI_SUCCESS(status))
-		root->osc_control_set = result;
+		root->osc_control_set = capbuf[OSC_CONTROL_TYPE];
 out:
 	mutex_unlock(&osc_lock);
 	return status;


  parent reply	other threads:[~2010-07-30 22:40 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-30 22:20 [PATCH 0/7] ACPI / PCI / PCIe: Rework _OSC handling Rafael J. Wysocki
2010-07-30 22:24 ` [PATCH 1/7] ACPI / PCI: Make acpi_pci_run_osc() use capbuf to return the result Rafael J. Wysocki
2010-07-30 22:24 ` Rafael J. Wysocki [this message]
2010-08-02  9:16   ` Hidetoshi Seto
2010-08-02  9:16   ` Hidetoshi Seto
2010-08-02 14:12     ` Rafael J. Wysocki
2010-08-02 14:12     ` Rafael J. Wysocki
2010-07-30 22:26 ` [PATCH 2/7] ACPI / PCI: Introduce acpi_pci_root_osc_query() Rafael J. Wysocki
2010-07-30 22:26 ` Rafael J. Wysocki
2010-08-02  9:18   ` Hidetoshi Seto
2010-08-02  9:18   ` Hidetoshi Seto
2010-08-02 14:13     ` Rafael J. Wysocki
2010-08-02 14:13     ` Rafael J. Wysocki
2010-07-30 22:32 ` [PATCH 3/7] PCI / PCIe: Ask BIOS for control of all native services at once (v5) Rafael J. Wysocki
2010-08-02  9:20   ` Hidetoshi Seto
2010-08-02 14:15     ` Rafael J. Wysocki
2010-08-02 14:15     ` Rafael J. Wysocki
2010-08-02  9:20   ` Hidetoshi Seto
2010-07-30 22:32 ` Rafael J. Wysocki
2010-07-30 22:34 ` [PATCH 4/7] PCI / PCIe: Disable PCIe port services during port initialization Rafael J. Wysocki
2010-08-02  9:21   ` Hidetoshi Seto
2010-08-02  9:21   ` Hidetoshi Seto
2010-07-30 22:34 ` Rafael J. Wysocki
2010-07-30 22:35 ` [PATCH 5/7] PCI / PCIe: Remove the port driver module exit routine Rafael J. Wysocki
2010-07-30 22:35 ` Rafael J. Wysocki
2010-08-02  9:21   ` Hidetoshi Seto
2010-08-02  9:21   ` Hidetoshi Seto
2010-08-02 14:18     ` Rafael J. Wysocki
2010-08-02 14:18     ` Rafael J. Wysocki
2010-07-30 22:36 ` [PATCH 6/7] ACPI / PCI: Do not preserve _OSC control bits returned by a query Rafael J. Wysocki
2010-07-30 22:36 ` Rafael J. Wysocki
2010-08-02  9:22   ` Hidetoshi Seto
2010-08-02  9:22   ` Hidetoshi Seto
2010-07-30 22:37 ` [PATCH 7/7] ACPI / PCI: Reorder checks in acpi_pci_osc_control_set() Rafael J. Wysocki
2010-08-02  9:23   ` Hidetoshi Seto
2010-08-02  9:23   ` Hidetoshi Seto
2010-07-30 22:37 ` 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=201007310024.10174.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=jbarnes@virtuousgeek.org \
    --cc=kaneshige.kenji@jp.fujitsu.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=seto.hidetoshi@jp.fujitsu.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.