All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mario Limonciello <mario.limonciello@dell.com>
To: dvhart@infradead.org, Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
	platform-driver-x86@vger.kernel.org,
	Andy Lutomirski <luto@kernel.org>,
	quasisec@google.com, pali.rohar@gmail.com, rjw@rjwysocki.net,
	mjg59@google.com, hch@lst.de, Greg KH <greg@kroah.com>,
	Alan Cox <gnomes@lxorguk.ukuu.org.uk>,
	Mario Limonciello <mario.limonciello@dell.com>
Subject: [PATCH v9 01/17] platform/x86: wmi: Add new method wmidev_evaluate_method
Date: Tue, 17 Oct 2017 13:21:45 -0500	[thread overview]
Message-ID: <3ee262c740c8ab1fb6adb9c79050c6aefb75596c.1508259916.git.mario.limonciello@dell.com> (raw)
In-Reply-To: <cover.1508259916.git.mario.limonciello@dell.com>
In-Reply-To: <cover.1508259916.git.mario.limonciello@dell.com>

Drivers properly using the wmibus can pass their wmi_device
pointer rather than the GUID back to the WMI bus to evaluate
the proper methods.

Any "new" drivers added that use the WMI bus should use this
rather than the old wmi_evaluate_method that would take the
GUID.

Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
Reviewed-by: Edward O'Callaghan <quasisec@google.com>
---
 drivers/platform/x86/wmi.c | 28 ++++++++++++++++++++++++----
 include/linux/wmi.h        |  6 ++++++
 2 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index 7a05843aff19..4d73a87c2ddf 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -200,6 +200,28 @@ static acpi_status wmi_method_enable(struct wmi_block *wblock, int enable)
  */
 acpi_status wmi_evaluate_method(const char *guid_string, u8 instance,
 u32 method_id, const struct acpi_buffer *in, struct acpi_buffer *out)
+{
+	struct wmi_block *wblock = NULL;
+
+	if (!find_guid(guid_string, &wblock))
+		return AE_ERROR;
+	return wmidev_evaluate_method(&wblock->dev, instance, method_id,
+				      in, out);
+}
+EXPORT_SYMBOL_GPL(wmi_evaluate_method);
+
+/**
+ * wmidev_evaluate_method - Evaluate a WMI method
+ * @wdev: A wmi bus device from a driver
+ * @instance: Instance index
+ * @method_id: Method ID to call
+ * &in: Buffer containing input for the method call
+ * &out: Empty buffer to return the method results
+ *
+ * Call an ACPI-WMI method
+ */
+acpi_status wmidev_evaluate_method(struct wmi_device *wdev, u8 instance,
+	u32 method_id, const struct acpi_buffer *in, struct acpi_buffer *out)
 {
 	struct guid_block *block = NULL;
 	struct wmi_block *wblock = NULL;
@@ -209,9 +231,7 @@ u32 method_id, const struct acpi_buffer *in, struct acpi_buffer *out)
 	union acpi_object params[3];
 	char method[5] = "WM";
 
-	if (!find_guid(guid_string, &wblock))
-		return AE_ERROR;
-
+	wblock = container_of(wdev, struct wmi_block, dev);
 	block = &wblock->gblock;
 	handle = wblock->acpi_device->handle;
 
@@ -246,7 +266,7 @@ u32 method_id, const struct acpi_buffer *in, struct acpi_buffer *out)
 
 	return status;
 }
-EXPORT_SYMBOL_GPL(wmi_evaluate_method);
+EXPORT_SYMBOL_GPL(wmidev_evaluate_method);
 
 static acpi_status __query_block(struct wmi_block *wblock, u8 instance,
 				 struct acpi_buffer *out)
diff --git a/include/linux/wmi.h b/include/linux/wmi.h
index cd0d7734dc49..2cd10c3b89e9 100644
--- a/include/linux/wmi.h
+++ b/include/linux/wmi.h
@@ -26,6 +26,12 @@ struct wmi_device {
 	bool setable;
 };
 
+/* evaluate the ACPI method associated with this device */
+extern acpi_status wmidev_evaluate_method(struct wmi_device *wdev,
+					  u8 instance, u32 method_id,
+					  const struct acpi_buffer *in,
+					  struct acpi_buffer *out);
+
 /* Caller must kfree the result. */
 extern union acpi_object *wmidev_block_query(struct wmi_device *wdev,
 					     u8 instance);
-- 
2.14.1

  reply	other threads:[~2017-10-17 18:26 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-17 18:21 [PATCH v9 00/17] Introduce support for Dell SMBIOS over WMI Mario Limonciello
2017-10-17 18:21 ` Mario Limonciello [this message]
2017-10-17 18:41   ` [PATCH v9 01/17] platform/x86: wmi: Add new method wmidev_evaluate_method Pali Rohár
2017-10-17 18:21 ` [PATCH v9 02/17] platform/x86: dell-wmi: increase severity of some failures Mario Limonciello
2017-10-17 18:42   ` Pali Rohár
2017-10-17 18:21 ` [PATCH v9 03/17] platform/x86: dell-wmi: clean up wmi descriptor check Mario Limonciello
2017-10-17 18:44   ` Pali Rohár
2017-10-17 19:31     ` Mario.Limonciello
2017-10-17 19:31       ` Mario.Limonciello
2017-10-17 18:21 ` [PATCH v9 04/17] platform/x86: dell-wmi: allow 32k return size in the descriptor Mario Limonciello
2017-10-17 18:46   ` Pali Rohár
2017-10-17 18:56     ` Mario.Limonciello
2017-10-17 18:56       ` Mario.Limonciello
2017-10-17 18:21 ` [PATCH v9 05/17] platform/x86: dell-wmi-descriptor: split WMI descriptor into it's own driver Mario Limonciello
2017-10-17 18:59   ` Pali Rohár
2017-10-17 20:22     ` Mario.Limonciello
2017-10-17 20:22       ` Mario.Limonciello
2017-10-17 18:21 ` [PATCH v9 06/17] platform/x86: wmi: Don't allow drivers to get each other's GUIDs Mario Limonciello
2017-10-17 19:00   ` Pali Rohár
2017-10-17 18:21 ` [PATCH v9 07/17] platform/x86: dell-smbios: only run if proper oem string is detected Mario Limonciello
2017-10-17 19:03   ` Pali Rohár
2017-10-17 19:10     ` Mario.Limonciello
2017-10-17 19:10       ` Mario.Limonciello
2017-10-17 19:19       ` Mario.Limonciello
2017-10-17 19:19         ` Mario.Limonciello
2017-10-17 19:25         ` Pali Rohár
2017-10-17 19:29           ` Mario.Limonciello
2017-10-17 19:29             ` Mario.Limonciello
2017-10-17 18:21 ` [PATCH v9 08/17] platform/x86: dell-smbios: Add a sysfs interface for SMBIOS tokens Mario Limonciello
2017-10-17 18:21 ` [PATCH v9 09/17] platform/x86: dell-smbios: Introduce dispatcher for SMM calls Mario Limonciello
2017-10-17 18:21 ` [PATCH v9 10/17] platform/x86: dell-smbios-wmi: Add new WMI dispatcher driver Mario Limonciello
2017-10-17 19:10   ` Pali Rohár
2017-10-17 18:21 ` [PATCH v9 11/17] platform/x86: dell-smbios-smm: test for WSMT Mario Limonciello
2017-10-17 19:22   ` Pali Rohár
2017-10-18 19:09     ` Darren Hart
2017-10-18 19:10       ` Mario.Limonciello
2017-10-18 19:10         ` Mario.Limonciello
2017-10-17 18:21 ` [PATCH v9 12/17] platform/x86: dell-smbios: Add filtering support Mario Limonciello
2017-10-17 18:21 ` [PATCH v9 13/17] platform/x86: wmi: Add sysfs attribute for required_buffer_size Mario Limonciello
2017-10-17 18:21 ` [PATCH v9 14/17] platform/x86: wmi: create userspace interface for drivers Mario Limonciello
2017-10-17 18:21 ` [PATCH v9 15/17] platform/x86: dell-smbios-wmi: introduce userspace interface Mario Limonciello
2017-10-17 18:22 ` [PATCH v9 16/17] platform/x86: shuffle headers to export for userspace Mario Limonciello
2017-10-17 18:22 ` [PATCH v9 17/17] tools/wmi: add a sample for dell smbios communication over WMI Mario Limonciello
2017-10-18  2:33   ` Edward O'Callaghan
2017-10-18  7:29   ` Pali Rohár
2017-10-18 13:55     ` Mario.Limonciello
2017-10-18 13:55       ` Mario.Limonciello
2017-10-18 22:27       ` Mario.Limonciello
2017-10-18 22:27         ` Mario.Limonciello
2017-10-19  3:12         ` Edward O'Callaghan

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=3ee262c740c8ab1fb6adb9c79050c6aefb75596c.1508259916.git.mario.limonciello@dell.com \
    --to=mario.limonciello@dell.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=dvhart@infradead.org \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=greg@kroah.com \
    --cc=hch@lst.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mjg59@google.com \
    --cc=pali.rohar@gmail.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=quasisec@google.com \
    --cc=rjw@rjwysocki.net \
    /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.