From patchwork Mon Sep 28 21:30:48 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ike Panhc X-Patchwork-Id: 50448 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n8SLV2os012647 for ; Mon, 28 Sep 2009 21:31:02 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752747AbZI1Va4 (ORCPT ); Mon, 28 Sep 2009 17:30:56 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753109AbZI1Va4 (ORCPT ); Mon, 28 Sep 2009 17:30:56 -0400 Received: from adelie.canonical.com ([91.189.90.139]:38448 "EHLO adelie.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752747AbZI1Va4 (ORCPT ); Mon, 28 Sep 2009 17:30:56 -0400 Received: from hutte.canonical.com ([91.189.90.181]) by adelie.canonical.com with esmtp (Exim 4.69 #1 (Debian)) id 1MsNoA-0001vU-8g; Mon, 28 Sep 2009 22:30:58 +0100 Received: from 61-229-178-135.dynamic.hinet.net ([61.229.178.135] helo=canonical.com) by hutte.canonical.com with esmtpsa (TLS-1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.69) (envelope-from ) id 1MsNo8-0005wa-KW; Mon, 28 Sep 2009 22:30:58 +0100 From: Ike Panhc To: linux-acpi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH] ACPI: Add EC event managerment functions into header file Date: Tue, 29 Sep 2009 05:30:48 +0800 Message-Id: <1254173448-18362-1-git-send-email-ike.pan@canonical.com> X-Mailer: git-send-email 1.6.0.4 Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org There are two functions for add/remove EC query handler functions, which exported without any definition in header files Patch against current checkout of linux-acpi 2.6.31 is below. In this patch, the following definitions has been added into include/linux/acpi.h - typedef: acpi_ec_query_func - struct: acpi_ec - fucntions: acpi_ec_add_query_handler, acpi_ec_remove_query_handler And the following definitions has been removed from driver/acpi/ec.c - typedef: acpi_ec_query_func - struct: acpi_ec So that, the following externs and typedef could be remove from drivers/acpi/sbshc.c - typedef: acpi_ec_query_func - externs: acpi_ec_add_query_handler, acpi_ec_remove_query_handler Signed-off-by: Ike Panhc --- drivers/acpi/ec.c | 22 +++++----------------- drivers/acpi/sbshc.c | 8 -------- include/linux/acpi.h | 21 +++++++++++++++++++++ 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index f707960..8950c4f 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c @@ -43,6 +43,7 @@ #include #include #include +#include #define ACPI_EC_CLASS "embedded_controller" #define ACPI_EC_DEVICE_NAME "Embedded Controller" @@ -80,10 +81,6 @@ enum { * OpReg are installed */ }; -/* If we find an EC via the ECDT, we need to keep a ptr to its context */ -/* External interfaces use first EC only, so remember */ -typedef int (*acpi_ec_query_func) (void *data); - struct acpi_ec_query_handler { struct list_head node; acpi_ec_query_func func; @@ -104,19 +101,10 @@ struct transaction { bool done; }; -static struct acpi_ec { - acpi_handle handle; - unsigned long gpe; - unsigned long command_addr; - unsigned long data_addr; - unsigned long global_lock; - unsigned long flags; - struct mutex lock; - wait_queue_head_t wait; - struct list_head list; - struct transaction *curr; - spinlock_t curr_lock; -} *boot_ec, *first_ec; +/* If we find an EC via the ECDT, we need to keep a ptr to its context */ +/* External interfaces use first EC only, so remember */ +static struct acpi_ec *boot_ec; +static struct acpi_ec *first_ec; static int EC_FLAGS_MSI; /* Out-of-spec MSI controller */ diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c index d933980..d5550a5 100644 --- a/drivers/acpi/sbshc.c +++ b/drivers/acpi/sbshc.c @@ -250,12 +250,6 @@ static int smbus_alarm(void *context) return 0; } -typedef int (*acpi_ec_query_func) (void *data); - -extern int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit, - acpi_handle handle, acpi_ec_query_func func, - void *data); - static int acpi_smbus_hc_add(struct acpi_device *device) { int status; @@ -292,8 +286,6 @@ static int acpi_smbus_hc_add(struct acpi_device *device) return 0; } -extern void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit); - static int acpi_smbus_hc_remove(struct acpi_device *device, int type) { struct acpi_smb_hc *hc; diff --git a/include/linux/acpi.h b/include/linux/acpi.h index dfcd920..259eacb 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -145,12 +145,33 @@ struct acpi_pci_driver { int acpi_pci_register_driver(struct acpi_pci_driver *driver); void acpi_pci_unregister_driver(struct acpi_pci_driver *driver); +typedef int (*acpi_ec_query_func) (void *data); + +struct acpi_ec { + acpi_handle handle; + unsigned long gpe; + unsigned long command_addr; + unsigned long data_addr; + unsigned long global_lock; + unsigned long flags; + struct mutex lock; + wait_queue_head_t wait; + struct list_head list; + struct transaction *curr; + spinlock_t curr_lock; +}; + extern int ec_read(u8 addr, u8 *val); extern int ec_write(u8 addr, u8 val); extern int ec_transaction(u8 command, const u8 *wdata, unsigned wdata_len, u8 *rdata, unsigned rdata_len, int force_poll); +extern int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit, + acpi_handle handle, + acpi_ec_query_func func, void *data); +extern void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit); + #if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)